記憶域スペースダイレクトを使用した診断データの収集Collect diagnostic data with Storage Spaces Direct

適用対象:Windows Server 2019、Windows Server 2016Applies to: Windows Server 2019, Windows Server 2016

記憶域スペースダイレクトとフェールオーバークラスターのトラブルシューティングに必要なデータを収集するために使用できるさまざまな診断ツールがあります。There are various diagnostic tools that can be used to collect the data needed to troubleshoot Storage Spaces Direct and Failover Cluster. この記事では、 SDDCDiagnosticInfo -クラスターの診断に役立つすべての関連情報を収集するワンタッチツールに注目します。In this article, we will focus on Get-SDDCDiagnosticInfo - a one touch tool that will gather all relevant information to help you diagnose your cluster.

SDDCDiagnosticInfoが密度のログやその他の情報があることから、次に示すトラブルシューティングの情報は、エスカレートされた高度な問題をトラブルシューティングし、にデータを送信する必要がある場合に役立ちます。トリアージ用の Microsoft。Given that the logs and other information that Get-SDDCDiagnosticInfo are dense, the information on troubleshooting presented below will be helpful for troubleshooting advanced issues that have been escalated and that may require data to be sent to Microsoft for triaging.

SDDCDiagnosticInfo をインストールしていますInstalling Get-SDDCDiagnosticInfo

SDDCDiagnosticInfo PowerShell コマンドレット (The Get-SDDCDiagnosticInfo PowerShell cmdlet (a.k.a. PCStorageDiagnosticInfo(以前のテスト-storagehealth) を使用すると、フェールオーバークラスタリング (クラスター、リソース、ネットワーク、ノード)、記憶域スペース (物理ディスク、エンクロージャ) のログを収集し、正常性チェックを実行できます。仮想ディスク)、クラスターの共有ボリューム、SMB ファイル共有、および重複除去。Get-PCStorageDiagnosticInfo, previously known as Test-StorageHealth) can be used to gather logs for and perform health checks for Failover Clustering (Cluster, Resources, Networks, Nodes), Storage Spaces (Physical Disks, Enclosures, Virtual Disks), Cluster Shared Volumes, SMB File Shares, and Deduplication.

スクリプトをインストールする方法は2つあります。どちらも以下のようなものです。There are two methods of installing the script, both of which are outlines below.

PowerShell ギャラリーは、GitHub リポジトリのスナップショットです。The PowerShell Gallery is a snapshot of the GitHub Repo. PowerShell ギャラリーから項目をインストールするには、PowerShellGet モジュールの最新バージョンが必要であることに注意してください。これは、Windows 10、Windows Management Framework (WMF) 5.0、または MSI ベースのインストーラー (PowerShell 3 および4の場合) で使用できます。Note that installing items from the PowerShell Gallery requires the latest version of the PowerShellGet module, which is available in Windows 10, in Windows Management Framework (WMF) 5.0, or in the MSI-based installer (for PowerShell 3 and 4).

モジュールをインストールするには、PowerShell で管理者特権を使用して次のコマンドを実行します。You can install the module by running following command in PowerShell with administrator privileges:

Install-PackageProvider NuGet -Force
Install-Module PrivateCloud.DiagnosticInfo -Force
Import-Module PrivateCloud.DiagnosticInfo -Force

モジュールを更新するには、PowerShell で次のコマンドを実行します。To update the module, run the following command in PowerShell:

Update-Module PrivateCloud.DiagnosticInfo

GitHubGitHub

GitHub リポジトリは、このモジュールの最新バージョンです。ここでは繰り返し反復しているためです。The GitHub Repo is the most up-to-date version of the module, since we are continually iterating here. GitHub からモジュールをインストールするには、アーカイブから最新のモジュールをダウンロードし、PrivateCloud ディレクトリを抽出して、$env:PSModulePath が指す正しい PowerShell モジュールパスに DiagnosticInfo します。To install the module from GitHub, download the latest module from the archive and extract the PrivateCloud.DiagnosticInfo directory to the correct PowerShell modules path pointed by $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 ファイルをダウンロードし、ターゲットサーバーノードに移動して、モジュールをインストールします。If you need to get this module on an offline cluster, download the zip, move it to your target server node, and install the module.

ログの収集Gathering Logs

イベントチャネルを有効にし、インストールプロセスを完了したら、モジュールの SDDCDiagnosticInfo PowerShell コマンドレットを使用して次を取得できます。After you have enabled event channels and completed the installation process, you can use the Get-SDDCDiagnosticInfo PowerShell cmdlet in the module to get:

  • ストレージの正常性に関するレポート、および異常なコンポーネントの詳細Reports on storage health, plus details on unhealthy components
  • プール、ボリューム、重複除去ボリューム別の記憶域容量のレポートReports of storage capacity by pool, volume and deduplicated volume
  • すべてのクラスターノードからのイベントログとエラー報告の概要Event logs from all cluster nodes and a summary error report

記憶域クラスターに "CLUS01" という名前が付いているとします。Assume that your storage cluster has the name "CLUS01".

リモート記憶域クラスターに対して実行するには、次のようにします。To execute against a remote storage cluster:

Get-SDDCDiagnosticInfo -ClusterName CLUS01

クラスター化された記憶域ノードでローカルに実行するには:To execute locally on clustered storage node:

Get-SDDCDiagnosticInfo

指定したフォルダーに結果を保存するには:To save results to a specified folder:

Get-SDDCDiagnosticInfo -WriteToPath D:\Folder 

実際のクラスターでは、次の例のようになります。Here is an example of how this looks on a real cluster:

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

ご覧のとおり、スクリプトは現在のクラスター状態の検証も行います。As you can see, script will also do validation of current cluster state

データコレクション powershell のスクリーンショット

ご覧のように、すべてのデータは SDDCDiagTemp フォルダーに書き込まれています。As you can see, all data are being written to SDDCDiagTemp folder

エクスプローラーのデータのスクリーンショット

スクリプトが完了すると、ユーザーディレクトリに ZIP が作成されます。After script will finish, it will create ZIP in your users directory

powershell でのデータ zip のスクリーンショット

レポートをテキストファイルに生成しましょうLet's generate a report into a text file

#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へのリンクを示します。For reference, here is a link to the sample report and sample zip.

Windows 管理センター (バージョン1812以降) でこれを表示するには、[診断] タブに移動します。次のスクリーンショットに示すように、次のようにします。To view this in Windows Admin Center (version 1812 onwards), navigate to the Diagnostics tab. As you see in the screenshot below, you can

  • 診断ツールのインストールInstall diagnostic tools
  • 更新 (最新ではない場合)Update them (if they are out-of-date),
  • 毎日の診断の実行をスケジュールします (これらはシステムに影響が少ないため、通常はバックグラウンドで5分 < かかり、クラスターで 500 mb を超えることはありません)。Schedule daily diagnostic runs (these have a low impact on your system, usually take <5 minutes in the background, and won't take up more than 500mb on your cluster)
  • 以前に収集した診断情報を自分でサポートまたは分析する必要がある場合は、それを表示します。View previously collected diagnostic information if you need to give it to support or analyze it yourself.

wac diagnostics スクリーンショット

SDDCDiagnosticInfo の出力Get-SDDCDiagnosticInfo output

SDDCDiagnosticInfo の zip 形式の出力に含まれるファイルを次に示します。The following are the files included in the zipped output of Get-SDDCDiagnosticInfo.

正常性の概要レポートHealth Summary Report

正常性の概要レポートは、次の形式で保存されます。The health summary report is saved as:

  • 0_CloudHealthSummary0_CloudHealthSummary.log

このファイルは収集されたすべてのデータを解析した後に生成され、システムの概要を簡単に示すために使用されます。This file is generated after parsing all the data collected and is meant to provide a quick summary of your system. 次のものが含まれます。It contains:

  • システム情報System information
  • 記憶域の正常性の概要 (ノードの数の上限、リソースオンライン、クラスターの共有ボリュームオンライン、異常なコンポーネントなど)Storage health overview (number of nodes up, resources online, cluster shared volumes online, unhealthy components, etc.)
  • 異常なコンポーネント (オフライン、失敗、またはオンラインの保留中のクラスターリソース) の詳細Details on unhealthy components (cluster resources that are offline, failed, or online pending)
  • ファームウェアとドライバーの情報Firmware and driver information
  • プール、物理ディスク、ボリュームの詳細Pool, physical disk, and volume details
  • ストレージのパフォーマンス (パフォーマンスカウンターが収集されます)Storage Performance (performance counters are collected)

このレポートは、より有用な情報を含むように継続的に更新されています。This report is being continually updated to include more useful information. 最新情報については、 GitHub の READMEを参照してください。For the latest information, see the GitHub README.

ログと XML ファイルLogs and XML files

このスクリプトは、さまざまなログ収集スクリプトを実行し、出力を xml ファイルとして保存します。The script runs various log gathering scripts and saves the output as xml files. クラスターおよび正常性ログ、システム情報 (MSInfo32)、フィルター処理されていないイベントログ (フェールオーバークラスタリング、非診断、hyper-v、記憶域スペースなど)、および記憶域診断情報 (操作ログ) を収集します。We collect cluster and health logs, system information (MSInfo32), unfiltered event logs (failover clustering, dis diagnostics, hyper-v, storage spaces, and more), and storage diagnostics information (operational logs). 収集される情報の最新情報については、 GitHub の README (収集内容)を参照してください。For the latest information on what information is collected, see the GitHub README (what we collect).

PCStorageDiagnosticInfo から XML ファイルを使用する方法How to consume the XML files from Get-PCStorageDiagnosticInfo

PCStorageDiagnosticInfoコマンドレットによって収集されたデータに含まれている XML ファイルのデータを使用できます。You can consume the data from the XML files provided in data collected by the Get-PCStorageDiagnosticInfo cmdlet. これらのファイルには、仮想ディスク、物理ディスク、基本クラスター情報、およびその他の PowerShell 関連の出力に関する情報が含まれています。These files have information about the virtual disks, physical disks, basic cluster info and other PowerShell related outputs.

これらの出力の結果を表示するには、PowerShell ウィンドウを開き、次の手順を実行します。To see the results of these outputs, open a PowerShell window and run the following steps.

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

次に期待されることWhat to expect next?

SDDC システムの正常性を分析するための多数の機能強化と新しいコマンドレット。A lot of improvements and new cmdlets to analyze SDDC system health. ここで問題を報告することで、表示する内容に関するフィードバックを提供します。Provide feedback on what you'd like to see by filing issues here. また、プル要求を送信することで、スクリプトに対する有益な変更を自由に投稿できます。Also, feel free to contribute helpful changes to the script, by submitting a pull request.