記憶域スペース ダイレクトのパフォーマンス履歴
パフォーマンス履歴は、ホスト サーバー、ドライブ、ボリューム、仮想マシンなど、記憶域スペース ダイレクト管理者がコンピューティング、メモリ、ネットワーク、記憶域の履歴測定値に簡単にアクセスできる新機能です。 パフォーマンス履歴は自動的に収集され、クラスターに最大 1 年間保存されます。
重要
これは Windows Server 2019 の新機能です。 Windows Server 2016 では使用できません。
開始
パフォーマンス履歴は、既定では、Windows Server 2019 の記憶域スペース ダイレクトによって収集されます。 何もインストール、構成、または開始する必要はありません。 インターネット接続、System Center、外部データベースは必要ありません。
クラスターのパフォーマンス履歴をグラフィカルに表示するには、Windows Admin Center を使用します。
プログラムでクエリを実行して処理するには、新しい Get-ClusterPerf
コマンドレットを使用します。 「PowerShell での使用法」を参照してください。
収集される情報
パフォーマンス履歴は、次の 7 種類のオブジェクトに対して収集されます。
オブジェクトの各種類には、多くの系列があります。たとえば、ClusterNode.Cpu.Usage
はサーバーごとに収集されます。
各オブジェクトの種類に対して収集される内容とそれらの解釈方法の詳細については、次のサブトピックを参照してください。
Object | 系列 |
---|---|
ドライブ | ドライブに対して収集される情報 |
ネットワーク アダプター | ネットワーク アダプターに対して収集される情報 |
サーバー | サーバーに対して収集される情報 |
バーチャル ハード ディスク | 仮想ハード ディスクに対して収集される情報 |
仮想マシン | 仮想マシンに対して収集される情報 |
ボリューム | ボリュームに対して収集される情報 |
クラスター | クラスターに対して収集される情報 |
多くの系列は、ピア オブジェクト間で親に集約されます。たとえば、NetAdapter.Bandwidth.Inbound
はネットワーク アダプターごとに個別に収集され、サーバー全体に集約されます。同様に、ClusterNode.Cpu.Usage
はクラスター全体に集約されるなどです。
期限
パフォーマンス履歴は最大 1 年間保存され、粒度は徐々に小さくなります。 最新の 1 時間の測定値は、10 秒ごとに使用できます。 その後は、平均化または合計することで、より粒度が細かく、より長時間の系列に統合されます。 直近の日については、5 分ごとの計測が可能です。直近の 1 週間は 15 分ごとに測定値を使用できます。
Windows Admin Center では、グラフの上の右上にある期間を選択できます。
PowerShell では -TimeFrame
パラメーターを使用します。
使用可能な期間を次に示します。
期間 | 測定頻度 | リテンション期間 |
---|---|---|
LastHour |
10 秒ごと | 1 時間 |
LastDay |
5 分おき | 25 時間 |
LastWeek |
15 分ごと | 8 日 |
LastMonth |
1 時間ごと | 35 日 |
LastYear |
1 日ごと | 400 日 |
PowerShell での使用法
コマンドレット Get-ClusterPerformanceHistory
を使用して、PowerShell でパフォーマンス履歴のクエリを実行して処理します。
Get-ClusterPerformanceHistory
ヒント
Get-ClusterPerf エイリアスを使用すると、キーストロークが短縮されます。
例
最後の 1 時間の仮想マシン MyVM の CPU 使用率を取得します。
Get-VM "MyVM" | Get-ClusterPerf -VMSeriesName "VM.Cpu.Usage" -TimeFrame LastHour
より高度な例としては、ピーク値の検索、平均値の計算、トレンド ラインのプロット、外れ値検出の実行などのスターター コードを提供する、公開されたサンプル スクリプトを参照してください。
オブジェクトの指定
パイプラインで必要なオブジェクトを指定できます。 これは、次の 7 種類のオブジェクトで動作します。
パイプラインからのオブジェクト | 例 |
---|---|
Get-PhysicalDisk |
Get-PhysicalDisk -SerialNumber "XYZ456" | Get-ClusterPerf |
Get-NetAdapter |
Get-NetAdapter "Ethernet" | Get-ClusterPerf |
Get-ClusterNode |
Get-ClusterNode "Server123" | Get-ClusterPerf |
Get-VHD |
Get-VHD "C:\ClusterStorage\MyVolume\MyVHD.vhdx" | Get-ClusterPerf |
Get-VM |
Get-VM "MyVM" | Get-ClusterPerf |
Get-Volume |
Get-Volume -FriendlyName "MyVolume" | Get-ClusterPerf |
Get-Cluster |
Get-Cluster "MyCluster" | Get-ClusterPerf |
指定しない場合は、クラスター全体のパフォーマンス履歴が返されます。
系列の指定
次のパラメーターを使用して、必要な系列を指定できます。
パラメーター | 例 | List |
---|---|---|
-PhysicalDiskSeriesName |
"PhysicalDisk.Iops.Read" |
ドライブに対して収集される情報 |
-NetAdapterSeriesName |
"NetAdapter.Bandwidth.Outbound" |
ネットワーク アダプターに対して収集される情報 |
-ClusterNodeSeriesName |
"ClusterNode.Cpu.Usage" |
サーバーに対して収集される情報 |
-VHDSeriesName |
"Vhd.Size.Current" |
仮想ハード ディスクに対して収集される情報 |
-VMSeriesName |
"Vm.Memory.Assigned" |
仮想マシンに対して収集される情報 |
-VolumeSeriesName |
"Volume.Latency.Write" |
ボリュームに対して収集される情報 |
-ClusterSeriesName |
"PhysicalDisk.Size.Total" |
クラスターに対して収集される情報 |
ヒント
タブ補完を使用して、使用可能な系列を検出します。
指定しない場合は、指定したオブジェクトで使用できるすべての系列が返されます。
期間の指定
-TimeFrame
パラメーターを使用して、必要な履歴の期間を指定できます。
ヒント
タブ補完を使用して、使用可能な期間を検出します。
指定しない場合は、測定値 MostRecent
が返されます。
しくみ
パフォーマンス履歴の記憶域
記憶域スペース ダイレクトが有効になると、その直後に、ClusterPerformanceHistory
という名前の約 10 GB のボリュームが作成され、そこに Extensible Storage Engine (Microsoft JET とも呼ばれる) のインスタンスがプロビジョニングされます。 この軽量データベースには、管理者の関与や管理なしにパフォーマンスの履歴を保存します。
ボリュームは 記憶域スペースによってバックアップされ、クラスター内のノードの数に応じて、単純なミラー、双方向ミラー、または 3 方向ミラーのいずれかの回復性を使用します。 これは、記憶域スペース ダイレクトの他のボリュームと同様に、ドライブやサーバーに障害が発生しても修復されます。
ボリュームでは ReFS を使用しますが、クラスターの共有ボリューム (CSV) ではないため、クラスター グループの所有者ノードにのみ表示されます。 このボリュームは、自動的に作成される以外に特別な点は何もありません。表示、参照、サイズ変更、または削除 (これは推奨されません) は行えます。 問題が発生した場合は、「トラブルシューティング」を参照してください。
オブジェクト検出とデータ収集
パフォーマンス履歴は、クラスター内の任意の場所にある仮想マシンなどの関連オブジェクトを自動的に検出し、そのパフォーマンス カウンターのストリーミングを開始します。 カウンターは集計され、同期され、データベースに挿入されます。 ストリーミングは継続的に実行され、システムへの影響を最小限に抑えるために最適化されています。
収集は、高い可用性を備えたヘルス サービスが担当します。稼働中のノードがダウンしても、しばらくすると、クラスター内の別のノードで再開されます。 パフォーマンス履歴は一時的に消失することがありますが、自動的に再開されます。 PowerShell で Get-ClusterResource Health
を実行すると、ヘルス サービスとその所有者ノードを確認できます。
測定ギャップの処理
「期間」で説明したよう に、測定値がより多くの時間にまたがる粒度の低い系列に統合された場合、データの欠損期間は除外されます。 たとえば、サーバーが 30 分間停止し、その後 30 分間、CPU が 50% で動作した場合、1 時間の ClusterNode.Cpu.Usage
平均は 50% として正しく記録されます (25% ではありません)。
拡張性とカスタマイズ
パフォーマンス履歴はスクリプトに対応しています。 PowerShell を使用して、データベースから使用可能な履歴を直接取得し、自動化されたレポートやアラートの作成、保管用の履歴のエクスポート、独自のビジュアライゼーションのロールなどを行えます。便利なスターター コードについては、公開されているサンプル スクリプトを参照してください。
追加のオブジェクト、期間、または系列の履歴を収集することはできません。
測定頻度と保有期間は現在構成できません。
パフォーマンス履歴の開始または停止
この機能を有効に有効にするにはどうすればよいですか。
Stop-ClusterPerformanceHistory
を指定しない限り、パフォーマンス履歴は、既定では有効になっています。
再度有効にするには、次の PowerShell コマンドレットを管理者として実行します。
Start-ClusterPerformanceHistory
この機能を無効にするには、どうすればよいですか。
パフォーマンス履歴の収集を停止するには、次の PowerShell コマンドレットを管理者として実行します。
Stop-ClusterPerformanceHistory
既存の測定値を削除するには、-DeleteHistory
フラグを使用します。
Stop-ClusterPerformanceHistory -DeleteHistory
ヒント
初期展開中は、Enable-ClusterStorageSpacesDirect
の -CollectPerformanceHistory
パラメーターを $False
に設定することによって、パフォーマンス履歴が開始されないようにすることができます。
トラブルシューティング
コマンドレットが機能しない
"The term 'Get-ClusterPerf' is not recognized as the name of a cmdlet" というエラーメッセージが表示されます。これは、機能が使用できないか、インストールされていないことを意味します。 Windows Server 2025 がインストールされていること、フェールオーバー クラスタリングがインストールされていること、および記憶域スペース ダイレクト実行していることを確認します。
Note
この機能は Windows Server 2016 以前では使用できません。
利用できるデータはありません。
図に示すように "No data available" と表示されている場合のトラブルシューティングを紹介します。
オブジェクトが新しく追加または作成された場合は、検出されるまで待機します (最大 15 分)。
ページを更新するか、次のバックグラウンド更新を待ちます (最大 30 秒)。
たとえば、クラスター化されていない仮想マシンや、クラスターの共有ボリューム (CSV) ファイル システムを使用していないボリュームなど、特殊なオブジェクトの一部はパフォーマンス履歴から除外されます。 詳細については、「ボリュームのパフォーマンス履歴」など、オブジェクトの種類のサブトピックを確認してください。
問題が引き続き発生する場合は、管理者として PowerShell を開き、
Get-ClusterPerf
コマンドレットを実行します。 このコマンドレットには、ClusterPerformanceHistory ボリュームがない場合など、一般的な問題を特定するためのトラブルシューティング ロジックが含まれており、改善手順を提供します。前の手順のコマンドで何も返されない場合は、PowerShell で
Stop-ClusterResource Health ; Start-ClusterResource Health
を実行して、ヘルス サービス (パフォーマンス履歴を収集する) を再起動してみることができます。