Сбор диагностических данных для кластеров
Область применения: Azure Stack HCI, версии 22H2 и 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Внимание
Azure Stack HCI теперь является частью Azure Local. Однако старые версии Azure Stack HCI, например 22H2, будут продолжать ссылаться на Azure Stack HCI и не отражают изменение имени. Подробнее.
В Storage Spaces Direct существуют различные диагностические средства, которые можно использовать для сбора данных, необходимых для устранения неполадок кластеров Azure Stack HCI и Windows Server. В этой статье мы сосредоточимся на установке и использовании средств диагностики SDDC для сбора соответствующих сведений для диагностики кластера.
Так как журналы и другая информация перегружены деталями, сведения, представленные в этой статье, полезны для устранения сложных проблем, которые были переданы на более высокий уровень и могут потребовать отправки данных в корпорацию Майкрософт для рассмотрения.
Установка и использование средств диагностики в Windows Admin Center
Windows Admin Center (версия 1812) можно использовать для:
- Установите средства диагностики SDDC и сохраните их в актуальном состоянии.
- Планирование ежедневных диагностических запусков (они имеют низкое влияние на систему, обычно занимает менее пяти минут для выполнения в фоновом режиме и не займет более 500 МБ в кластере).
- Просмотрите ранее собранные диагностические сведения, если необходимо предоставить их поддержке персонала или проанализировать их самостоятельно.
Чтобы установить средства диагностики SDDC и начать сбор данных, выполните следующие действия.
Запустите Windows Admin Center и выберите > средств". Если средства диагностика еще не установлены, нажмите кнопку "Установить".
Чтобы начать сбор диагностических данных, нажмите кнопку "Собрать". Появится сообщение " Сбор диагностических сведений. Это может занять несколько минут. После первоначальной коллекции данных, если вы хотите автоматически собирать данные каждые 24 часа, измените ползунок на On.
Сбор данных не завершен, пока не отобразится снимок экрана ниже. Чтобы просмотреть собранные диагностические сведения, нажмите кнопку "Скачать" (.zip) или "Открыть в файлах".
Установка Get-SDDCDiagnosticInfo с помощью PowerShell
Вы можете использовать командлет PowerShell Get-SDDCDiagnosticInfo
(также известный как Get-PCStorageDiagnosticInfo
, ранее известный как Test-StorageHealth
) для сбора журналов и выполнения проверок работоспособности отказоустойчивой кластеризации (кластеры, ресурсы, сети, узлы), пространства хранения (физические диски, корпуса, виртуальные диски), общие тома кластера, общие папки SMB и дедупликации.
Существует два метода установки скрипта: коллекция PowerShell и GitHub. Оба описаны ниже.
Галерея PowerShell
Коллекция PowerShell — это моментальный снимок репозитория GitHub. Обратите внимание, что для установки элементов из коллекции PowerShell требуется последняя версия модуля PowerShellGet, который доступен в Windows 10, в Windows Management Framework (WMF) 5.0 или в установщике на основе MSI (для PowerShell 3 и 4).
Мы устанавливаем последнюю версию средств диагностики сети Майкрософт во время этого процесса, так как Get-SDDCDiagnosticInfo
это зависит от этого. Этот модуль манифеста содержит средство диагностики сети и средства устранения неполадок, которые поддерживаются группой продуктов Microsoft Core Networking в Корпорации Майкрософт.
Модуль можно установить, выполнив следующую команду в PowerShell от имени администратора:
Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag
Чтобы обновить модуль, выполните следующую команду в PowerShell:
Update-Module PrivateCloud.DiagnosticInfo
GitHub
Репозиторий GitHub является самой up-to-датой модуля, так как мы постоянно итерируем здесь. Чтобы установить модуль из GitHub, скачайте последний модуль из архива и извлеките каталог PrivateCloud.DiagnosticsInfo в правильный путь модулей PowerShell, на который указывает $env:PSModulePath
:
# Allowing Tls12 and Tls11 -- e.g. github now requires Tls12
# If this is not set, the Invoke-WebRequest fails with "The request was aborted: Could not create SSL/TLS secure channel."
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$module = 'PrivateCloud.DiagnosticInfo'
Invoke-WebRequest -Uri https://github.com/PowerShell/$module/archive/master.zip -OutFile $env:TEMP\master.zip
Expand-Archive -Path $env:TEMP\master.zip -DestinationPath $env:TEMP -Force
if (Test-Path $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module) {
rm -Recurse $env:SystemRoot\System32\WindowsPowerShell\v1.0\Modules\$module -ErrorAction Stop
Remove-Module $module -ErrorAction SilentlyContinue
} else {
Import-Module $module -ErrorAction SilentlyContinue
}
if (-not ($m = Get-Module $module -ErrorAction SilentlyContinue)) {
$md = "$env:ProgramFiles\WindowsPowerShell\Modules"
} else {
$md = (gi $m.ModuleBase -ErrorAction SilentlyContinue).PsParentPath
Remove-Module $module -ErrorAction SilentlyContinue
rm -Recurse $m.ModuleBase -ErrorAction Stop
}
cp -Recurse $env:TEMP\$module-master\$module $md -Force -ErrorAction Stop
rm -Recurse $env:TEMP\$module-master,$env:TEMP\master.zip
Import-Module $module -Force
Если вам нужно получить этот модуль в автономном кластере, скачайте ZIP-файл, переместите его на целевой узел сервера и установите модуль.
Сбор журналов с помощью PowerShell
После включения каналов событий и завершения процесса установки вы можете использовать командлет PowerShell Get-SDDCDiagnosticInfo
в модуле:
- Отчёты о состоянии хранилища, а также информация о проблемных компонентах.
- Отчеты о емкости хранилища по пулу, объему и обездвойственному объему.
- Журналы событий со всех узлов кластера и сводный отчет об ошибке.
Предположим, что кластер хранилища имеет имя CLUS01.
Чтобы выполнить операции с кластером удаленного хранилища, выполните следующую команду:
Get-SDDCDiagnosticInfo -ClusterName CLUS01
Чтобы выполнить локально на кластеризованном узле хранилища:
Get-SDDCDiagnosticInfo
Чтобы сохранить результаты в указанную папку, выполните указанные действия.
Get-SDDCDiagnosticInfo -WriteToPath D:\Folder
Ниже приведен пример того, как это выглядит в реальном кластере:
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp
Как видно, скрипт также проверяет текущее состояние кластера:
Все данные записываются в папку SDDCDiagTemp:
После завершения скрипта создается ZIP-файл в каталоге пользователя:
Создайте отчет в текстовый файл:
#find the latest diagnostic zip in UserProfile
$DiagZip=(get-childitem $env:USERPROFILE | where Name -like HealthTest*.zip)
$LatestDiagPath=($DiagZip | sort lastwritetime | select -First 1).FullName
#expand to temp directory
New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Expand-Archive -Path $LatestDiagPath -DestinationPath D:\SDDCDiagTemp -Force
#generate report and save to text file
$report=Show-SddcDiagnosticReport -Path D:\SDDCDiagTemp
$report | out-file d:\SDDCReport.txt
Для справки здесь приведена ссылка на пример отчета и zip-файл.
Результат выполнения Get-SDDCDiagnosticInfo
Следующие файлы включены в сжатые выходные данные Get-SDDCDiagnosticInfo
.
Сводка о состоянии здоровья
Сводный отчет о состоянии системы сохраняется как 0_CloudHealthSummary.log.
Этот файл создается после анализа всех собранных данных и предназначен для предоставления краткой сводки по системе. Она содержит:
- Сведения о системе.
- Обзор состояния хранилища (количество работающих узлов, ресурсы в рабочем состоянии, общие тома кластера в рабочем состоянии, неработоспособные компоненты и т. д.).
- Сведения о неработоспособных компонентах (ресурсы кластера, которые находятся в автономном режиме, вышли из строя или ожидают подключения к сети).
- Сведения о встроенном ПО и драйвере.
- Сведения о пуле, физическом диске и томе.
- Производительность хранилища (ведется сбор счетчиков производительности).
Этот отчет постоянно обновляется, чтобы включить более полезную информацию. Последние сведения см. в файле readme на GitHub .
Журналы и XML-файлы
Скрипт запускает различные скрипты сбора журналов и сохраняет выходные данные в виде XML-файлов. Мы собираем журналы событий кластера и работоспособности, сведения о системе (MSInfo32), нефильтрованные журналы событий (отказоустойчивая кластеризация, диагностика дисков, Hyper-V, дисковые пространства и многое другое), а также сведения о диагностике хранилища (журналы работы). Последнюю информацию о том, какие данные собираются, см. в файле readme на GitHub.
Как работать с XML-файлами из Get-SDDCDiagnosticInfo
Вы можете использовать данные из XML-файлов, собранных командлетом Get-SDDCDiagnosticInfo
. Эти файлы содержат сведения о виртуальных дисках, физических дисках, основных сведениях о кластере и других связанных выходных данных PowerShell.
Чтобы просмотреть результаты этих выходных данных, откройте окно PowerShell и выполните следующие команды:
ipmo storage
$d = import-clixml <filename>
$d
Следующие шаги
Поделитесь своими пожеланиями, оставив замечания здесь . Кроме того, вы можете внести полезные изменения в скрипт, отправив pull request.