Udostępnij za pośrednictwem


Zbieranie danych diagnostycznych dla klastrów

Dotyczy: Azure Stack HCI, wersje 22H2 i 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016

Ważne

Usługa Azure Stack HCI jest teraz częścią usługi Azure Local. Jednak starsze wersje rozwiązania Azure Stack HCI, na przykład 22H2 będą nadal odwoływać się do rozwiązania Azure Stack HCI i nie będą odzwierciedlać zmiany nazwy. Dowiedz się więcej.

W usłudze Miejsca do magazynowania Direct dostępne są różne narzędzia diagnostyczne, których można użyć do zbierania danych potrzebnych do rozwiązywania problemów z klastrami rozwiązania Azure Stack HCI i Windows Server. W tym artykule skoncentrujemy się na instalowaniu i używaniu narzędzi diagnostycznych SDDC w celu zebrania odpowiednich informacji ułatwiających diagnozowanie klastra.

Ponieważ dzienniki i inne informacje są skomplikowane, informacje przedstawione w tym artykule są pomocne w rozwiązywaniu zaawansowanych problemów, które zostały eskalowane i które mogą wymagać przesłania danych do firmy Microsoft w celu ich klasyfikacji.

Instalowanie i używanie narzędzi diagnostycznych w centrum administracyjnym systemu Windows

Możesz użyć programu Windows Admin Center (nowszej wersji 1812), aby:

  • Zainstaluj narzędzia diagnostyczne SDDC i aktualizuj je na bieżąco.
  • Zaplanuj codzienne uruchomienia diagnostyczne (mają one niewielki wpływ na system, zwykle zajmuje mniej niż pięć minut w tle i nie zajmą więcej niż 500 MB w twoim klastrze).
  • Wyświetl wcześniej zebrane informacje diagnostyczne, jeśli musisz przekazać je personelowi pomocy technicznej lub samodzielnie je przeanalizować.

Aby zainstalować narzędzia diagnostyczne SDDC i rozpocząć zbieranie danych, wykonaj następujące kroki:

  1. Uruchom Centrum administracyjne Windows i wybierz Narzędzia > Diagnostyka. Jeśli narzędzia diagnostyczne nie są jeszcze zainstalowane, kliknij przycisk Zainstaluj .

    Kliknij przycisk Zainstaluj, aby zainstalować narzędzia diagnostyczne SDDC.

  2. Aby rozpocząć zbieranie danych diagnostycznych, kliknij pozycję Zbieraj. Powinien zostać wyświetlony komunikat "Zbieranie informacji diagnostycznych. Może to potrwać kilka minut. Jeśli po początkowym zbieraniu danych chcesz automatycznie zbierać dane co 24 godziny, zmień suwak na Włączone.

    Kliknij pozycję Zbieraj, aby zbierać dane diagnostyczne.

  3. Zbieranie danych nie zostanie ukończone, dopóki nie zostanie wyświetlony poniższy zrzut ekranu. Aby wyświetlić zebrane informacje diagnostyczne, wybierz pozycję Pobierz (.zip) lub Otwórz w plikach.

    Aby wyświetlić informacje diagnostyczne, możesz pobrać plik .zip lub otworzyć go w narzędziu Pliki.

Instalowanie Get-SDDCDiagnosticInfo przy użyciu programu PowerShell

Możesz użyć Get-SDDCDiagnosticInfo polecenia cmdlet programu PowerShell (znanego również jako Get-PCStorageDiagnosticInfo, wcześniej jako Test-StorageHealth), aby zebrać dzienniki oraz przeprowadzić kontrole kondycji dla klastrowania przełączania awaryjnego (klaster, zasoby, sieci, węzły), Przestrzeni przechowywania (dyski fizyczne, obudowy, dyski wirtualne), współdzielonych woluminów klastra, udziałów plików SMB i deduplikacji.

Istnieją dwie metody instalowania skryptu: Galeria programu PowerShell i GitHub. Oba elementy zostały opisane poniżej.

Galeria programu PowerShell to migawka repozytorium GitHub. Należy pamiętać, że instalowanie elementów z galerii programu PowerShell wymaga najnowszej wersji modułu PowerShellGet, który jest dostępny w systemie Windows 10, w programie Windows Management Framework (WMF) 5.0 lub w instalatorze opartym na msi (dla programu PowerShell 3 i 4).

W trakcie tego procesu instalujemy najnowszą wersję narzędzi diagnostyki sieci firmy Microsoft, ponieważ Get-SDDCDiagnosticInfo opiera się na tym. Ten moduł manifestu zawiera narzędzie do diagnostyki sieci i rozwiązywania problemów, które jest obsługiwane przez grupę produktów sieciowych microsoft Core w firmie Microsoft.

Moduł można zainstalować, uruchamiając następujące polecenie w programie PowerShell jako administrator:

Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force
Install-Module -Name MSFT.Network.Diag

Aby zaktualizować moduł, uruchom następujące polecenie w programie PowerShell:

Update-Module PrivateCloud.DiagnosticInfo

GitHub

repozytorium GitHub jest najbardziej up-to—data wersji modułu, ponieważ stale iterujemy tutaj. Aby zainstalować moduł z usługi GitHub, pobierz najnowszy moduł z archiwum i wyodrębnij katalog PrivateCloud.DiagnosticInfo do poprawnej ścieżki modułów programu PowerShell wskazywanej przez $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

Jeśli chcesz pobrać ten moduł w klastrze offline, pobierz plik zip, przenieś go do węzła serwera docelowego i zainstaluj moduł.

Zbieranie dzienników za pomocą programu PowerShell

Po włączeniu kanałów zdarzeń i zakończeniu procesu instalacji możesz użyć polecenia PowerShell cmdlet Get-SDDCDiagnosticInfo w module, aby uzyskać następujące informacje:

  • Raporty dotyczące kondycji magazynu oraz szczegółowe informacje na temat składników w złej kondycji.
  • Raporty dotyczące pojemności magazynu według puli, woluminu i woluminu deduplikowanego.
  • Dzienniki zdarzeń ze wszystkich węzłów klastra i raport podsumowujący błędy.

Załóżmy, że klaster magazynu ma nazwę CLUS01.

Aby wykonać działanie względem zdalnego klastra przechowywania:

Get-SDDCDiagnosticInfo -ClusterName CLUS01

Aby wykonać lokalnie na węźle pamięci masowej klastra:

Get-SDDCDiagnosticInfo

Aby zapisać wyniki w określonym folderze:

Get-SDDCDiagnosticInfo -WriteToPath D:\Folder

Oto przykładowy wygląd rzeczywistego klastra:

New-Item -Name SDDCDiagTemp -Path d:\ -ItemType Directory -Force
Get-SddcDiagnosticInfo -ClusterName S2D-Cluster -WriteToPath d:\SDDCDiagTemp

Jak widać, skrypt wykonuje również walidację bieżącego stanu klastra:

Zrzut ekranu programu PowerShell zbierania danych.

Wszystkie dane są zapisywane w folderze SDDCDiagTemp:

Dane w zrzucie ekranu Eksploratora plików.

Po zakończeniu działania skryptu zostanie utworzony plik zip w katalogu użytkownika:

Zrzut ekranu przedstawiający plik zip danych w programie PowerShell.

Wygeneruj raport w pliku tekstowym:

#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

Aby uzyskać informacje, poniżej znajduje się link do przykładowego raportu i przykładowego pliku zip.

Dane wyjściowe Get-SDDCDiagnosticInfo

Następujące pliki zawierają się w spakowanym wyjściu Get-SDDCDiagnosticInfo.

Raport podsumowania kondycji

Raport podsumowania kondycji jest zapisywany jako 0_CloudHealthSummary.log.

Ten plik jest generowany po przeanalizowaniu wszystkich zebranych danych i ma na celu szybkie podsumowanie systemu. Zawiera:

  • Informacje o systemie.
  • Omówienie kondycji magazynu (liczba aktywnych węzłów, zasoby online, udostępnione woluminy klastra online, niezdrowe komponenty itp.).
  • Szczegółowe informacje na temat składników w złej kondycji (zasoby klastra, które są w trybie offline, awarii lub oczekujące na włączenie online).
  • Informacje o oprogramowaniu układowym i sterowniku.
  • Szczegóły puli, dysku fizycznego i wolumenu.
  • Wydajność przechowywania (zbierane są liczniki wydajności).

Ten raport jest stale aktualizowany w celu uwzględnienia bardziej przydatnych informacji. Aby uzyskać najnowsze informacje, zobacz readme usługi GitHub.

Dzienniki i pliki XML

Skrypt uruchamia różne skrypty zbierania dzienników i zapisuje dane wyjściowe jako pliki XML. Zbieramy dzienniki klastrów i kondycji, informacje o systemie (MSInfo32), niefiltrowane dzienniki zdarzeń (klastry w trybie failover, diagnostykę systemu, Hyper-V, przestrzenie dyskowe i więcej), oraz informacje diagnostyczne dotyczące magazynu (dzienniki operacyjne). Aby uzyskać najnowsze informacje na temat zbieranych informacji, zobacz plik readme usługi GitHub (co zbieramy).

Jak przetwarzać pliki XML z polecenia Get-SDDCDiagnosticInfo

Można korzystać z danych z plików XML zawartych w danych zebranych przez polecenie cmdlet Get-SDDCDiagnosticInfo. Te pliki zawierają informacje o dyskach wirtualnych, dyskach fizycznych, podstawowych informacjach o klastrze i innych danych wyjściowych związanych z programem PowerShell.

Aby wyświetlić wyniki tych danych wyjściowych, otwórz okno programu PowerShell i uruchom następujące polecenia:

ipmo storage
$d = import-clixml <filename>
$d

Następne kroki

Przekaż opinię na temat tego, co chciałbyś zobaczyć, przesyłając zgłoszenia tutaj. Ponadto możesz wprowadzać przydatne zmiany w skrypcie, przesyłając pull request.