Поделиться через


Сбор диагностических данных для кластеров

Область применения: 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 и начать сбор данных, выполните следующие действия.

  1. Запустите Windows Admin Center и выберите > средств". Если средства диагностика еще не установлены, нажмите кнопку "Установить".

    Нажмите кнопку

  2. Чтобы начать сбор диагностических данных, нажмите кнопку "Собрать". Появится сообщение " Сбор диагностических сведений. Это может занять несколько минут. После первоначальной коллекции данных, если вы хотите автоматически собирать данные каждые 24 часа, измените ползунок на On.

    Нажмите

  3. Сбор данных не завершен, пока не отобразится снимок экрана ниже. Чтобы просмотреть собранные диагностические сведения, нажмите кнопку "Скачать" (.zip) или "Открыть в файлах".

    Чтобы просмотреть диагностические сведения, можно скачать файл .zip или открыть в средстве

Установка Get-SDDCDiagnosticInfo с помощью PowerShell

Вы можете использовать командлет PowerShell Get-SDDCDiagnosticInfo (также известный как Get-PCStorageDiagnosticInfo, ранее известный как Test-StorageHealth) для сбора журналов и выполнения проверок работоспособности отказоустойчивой кластеризации (кластеры, ресурсы, сети, узлы), пространства хранения (физические диски, корпуса, виртуальные диски), общие тома кластера, общие папки SMB и дедупликации.

Существует два метода установки скрипта: коллекция PowerShell и GitHub. Оба описаны ниже.

Коллекция 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

Как видно, скрипт также проверяет текущее состояние кластера:

Снимок экрана: сбор данных PowerShell.

Все данные записываются в папку SDDCDiagTemp:

Данные на снимке экрана Проводника.

После завершения скрипта создается ZIP-файл в каталоге пользователя:

Снимок экрана с архивом данных в PowerShell.

Создайте отчет в текстовый файл:

#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.