Powershell を使用して、物理ディスク リソースのサイズと使用可能な領域を取得しようとしています。
このコードを 1 台の Windows Server 2008 R2 ボックス (監視サーバー) で実行し、同じドメインの 3 つのリモート クラスターでリソースをポーリングします。クラスターのうち 2 つは Windows Server 2008 R2 も実行していますが、1 つは Windows Server 2012 (x64) を実行しています。返されたデータは、監視アプリの一部としてデータベースに挿入されます。
現在、私が使用しているコードは次のとおりです。
$clusters = "cluster1.domain.local","cluster2.domain.local","cluster3.domain.local"
foreach ( $cluster in $clusters) {
$resources = Get-ClusterResource -Cluster $cluster | where-object {$_.ResourceType -match "Physical Disk"}
foreach ( $resource in $resources) {
$details = Get-ClusterResource -Cluster $cluster -Name $resource.Name | fc *
<how to get disk size & space from $details?>
}
}
「Get-ClusterResource | fc *」によって返されるデータには、物理ディスクのサイズや空き容量が含まれていないため、この情報を取得する方法がわかりません。返される情報は、すべてのクラスター リソースに共通です。例は、こちら(例 2) で確認できます。以下の例 3 はほぼ役に立ちましたが、ディスク サイズや空き容量は含まれていません。
この質問を確認しましたが、回答では WMI クエリが使用されています。これを試すと、あらゆる種類のセキュリティと互換性の問題が発生します。特に、監視アプリは純粋な PowerShell を使用して Exchange メールボックスのサイズと DFS レプリケーション バックログをチェックしているため、可能であれば単純な PowerShell に固執することをお勧めします。
クラスターの共有ボリュームにクエリを実行しようとしているわけではないことに注意してください。それらには独自の個別の PowerShell 機能があり、問題なく動作しています。それを機能させることができないのは、特に物理ディスクリソース用です。
物理ディスクは多くのリソース タイプの 1 つであることを理解しているため、一般的な Get-ClusterResource コマンドはディスク固有のものを返しません。ディスク容量/空き容量
任意の支援をいただければ幸いです、ありがとう
サム
Ansgar Wiechers のアップデート
あなたの目的は何ですか?すでに指定されているように、監視が必要な複数のシステムからデータを収集する一連の「データ コレクター」PowerShell スクリプトを作成し、このデータをデータベースに挿入して、アラートを提供し、履歴を保持し、監視機能を全般的に強化します。現在の監視ツールのスイートは、必要なものの 90% をカバーしていますが、いくつかの小さなことを見逃しているだけです。この方法を使用して修正したいと考えています。
CSV パラメータではなく物理ディスク パラメータが必要なのはなぜですか? クラスターで使用されるディスクの種類は CSV だけではないためです。例として、2 サーバー、7 インスタンス、31 ボリュームの SQL クラスターがあります。すべてのボリュームの空きディスク容量を監視することは必須です。理由は明らかだと思います。この監視は現在手動で行われており、履歴保持が不足しています
どの物理ディスクの? 私が指定するものは何でも。理想的なソリューションは、使用中の (つまり、「使用可能」ではない) クラスター ディスク リソースを監視できることです。SQL クラスターの DTC ボリュームやクォーラム ボリュームなどの「役に立たない」ディスクを監視するつもりはありませんが、監視することを選択した場合、これらを監視できない理由はありません。
また、クラスタ メンバーの物理ディスク情報を監視する代わりに、クラスタを介してこの情報を取得する必要があるのはなぜですか? SNMP MIB を介してこの情報の一部を取得することは可能ですが、情報の取得、解釈、および変換ははるかに困難です。これについて詳しく説明することはできますが、それでは質問の焦点がずれてしまいます。Powershell が私の好みの方法であると言えば十分です。