クラスターの診断データを収集する

適用対象: Azure Stack HCI バージョン 22H2 および 21H2、Windows Server 2022、Windows Server 2019、Windows Server 2016

記憶域スペース ダイレクトにはさまざまな診断ツールがあり、Azure Stack HCI および Windows サーバー クラスターのトラブルシューティングに必要なデータを収集するために使用できます。 この記事では、クラスターの診断に役立つ関連情報を収集するための SDDC 診断ツールのインストールと使用の方法について重点的に説明します。

ログとその他の情報は高密度であるため、この記事に記載されている情報は、エスカレーションされて、トリアージのためにデータを Microsoft に送信しなければならないことのある高度な問題のトラブルシューティングに役立ちます。

Windows Admin Center で診断ツールをインストールして使用する

Windows Admin Center (バージョン 1812 以降) を使用して、次のことを行うことができます。

  • SDDC 診断ツールをインストールして最新の状態に保つ
  • 毎日の診断実行のスケジュール (これらはシステムへの影響が小さく、バックグラウンドの実行時間は 5 分未満、クラスターで 500 MB を超えることはありません)
  • サポートに送信するため、または自分で分析する必要がある場合に、以前に収集した診断情報を表示する

SDDC 診断ツールをインストールしてデータの収集を開始するには、次の手順を実行します。

  1. Windows Admin Center を起動し、[ツール] > [診断] を選択します。 診断ツールがまだインストールされていない場合は、 [インストール] ボタンをクリックします。

    [インストール] をクリックして、SDDC 診断ツールをインストールします。

  2. 診断データの収集を開始するには、 [収集] をクリックします。 次の内容のメッセージが表示されます: "Collecting diagnostic information. (診断情報を収集しています。) This may take a few minutes. (これには数分かかることがあります。)" 初期データ収集後、24 時間ごとに自動的にデータを収集する場合は、スライダーをオンに変更します。

    [収集] をクリックして、診断データの収集を開始します。

  3. データ収集が完了すると、次のスクリーンショットのように表示されます。 収集された診断情報を表示するには、 [Download (.zip)](ダウンロード (.zip)) または [Open in Files tool](ファイル ツールで開く) をクリックします。

    診断情報を表示するには、.zip ファイルをダウンロードするか、ファイル ツールで開くことができます。

PowerShell を使用した Get-SDDCDiagnosticInfo のインストール

Get-SDDCDiagnosticInfo PowerShell コマンドレット (Get-PCStorageDiagnosticInfo とも呼ばれ、以前は Test-StorageHealth と呼ばれていた) を使用して、フェールオーバー クラスタリング (クラスター、リソース、ネットワーク、ノード)、記憶域スペース (物理ディスク、エンクロージャ、仮想ディスク)、クラスターの共有ボリューム、SMB ファイル共有、および重複除去のログを収集し、正常性チェックを実行できます。

このスクリプトのインストールには、PowerShell ギャラリーと GitHub の 2 つの方法があります。 この両方について下で説明します。

PowerShell ギャラリーは、GitHub リポジトリのスナップショットです。 PowerShell ギャラリーからアイテムをインストールするには、PowerShellGet モジュールの最新版が必要です。これは、Windows 10、Windows Management Framework (WMF) 5.0、または MSI ベースのインストーラー (PowerShell 3 と 4 用) で利用できます。

このプロセスでは、Microsoft ネットワーク診断ツールの最新バージョンもインストールします。Get-SDDCDiagnosticInfo がこれに依存するためです。 このマニフェスト モジュールには、Microsoft の Microsoft コア ネットワーク製品グループによって管理される、ネットワーク診断およびトラブルシューティング ツールが含まれています。

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 リポジトリはモジュールの最新バージョンです。 GitHub からモジュールをインストールするには、アーカイブから最新のモジュールをダウンロードし、PrivateCloud.DiagnosticInfo ディレクトリを、$env:PSModulePath で示される正しい PowerShell モジュール パスに抽出します。

# 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 を使用してログを収集する

イベント チャネルを有効にし、インストール プロセスを完了したら、モジュールの Get-SDDCDiagnosticInfo PowerShell コマンドレットを使用して次を取得できます。

  • ストレージの正常性に関するレポート、および異常なコンポーネントの詳細
  • プール、ボリューム、重複除去ボリューム別のストレージ容量のレポート
  • すべてのクラスター ノードからのイベント ログとエラー レポートの概要

記憶域クラスターに "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 のデータ 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

このファイルは収集されたすべてのデータを解析した後に生成され、システムの概要を簡単に示すことを意図しています。 その構成要素を次に示します。

  • システム情報
  • Storage の正常性の概要 (稼働中のノードの数、オンラインのリソース、オンラインのクラスターの共有ボリューム、異常なコンポーネントなど)
  • 異常なコンポーネント (オフライン、障害発生、またはオンライン保留中のクラスター リソース) の詳細
  • ファームウェアとドライバーの情報
  • プール、物理ディスク、ボリュームの詳細
  • ストレージのパフォーマンス (パフォーマンス カウンターが収集されます)

このレポートは、さらに有用な情報を含むように継続的に更新されています。 詳しくは、GitHub README をご覧ください。

ログと XML ファイル

このスクリプトは、さまざまなログ収集スクリプトを実行し、出力を xml ファイルとして保存します。 クラスターおよび正常性のログ、システム情報 (MSInfo32)、フィルター処理されていないイベント ログ (フェールオーバー クラスタリング、非診断、Hyper-V、記憶域スペースなど)、および記憶域診断情報 (操作ログ) を収集します。 収集される情報の最新情報については、GitHub README (収集する内容) を参照してください。

Get-SDDCDiagnosticInfo から XML ファイルを使用する方法

Get-SDDCDiagnosticInfo コマンドレットによって収集されたデータで提供される、XML ファイルのデータを使用できます。 これらのファイルには、仮想ディスク、物理ディスク、基本的なクラスター情報、およびその他の PowerShell 関連の出力に関する情報が含まれています。

これらの出力の結果を表示するには、PowerShell ウィンドウを開き、次の手順を実行します。

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

次のステップ

こちらで問題を報告すると、表示する内容に関するフィードバックを送信できます。 また、pull request を送信し、スクリプトへの有益な変更に貢献していただくこともできます。