CJです。
vSphere基盤を運用する上で、以下の内容について確認したことありませんか?
・Cluster 配下のホスト数
・Cluster 配下のVM数
・PowerOn のVM数
・PowerOff のVM数
そうです、このような内容は計画メンテナンスを行う上で、一度確認したことがあるかと思います。vSphere Web Client を通して GUI でみたり、VMリストをコピーしてメモ帳で行数を把握して VMの数を数えるなどいくつか簡単な方法がありますが、今回は PowerCLIを使った適切・簡単な方法を共有したいと思います。
PowerCLIを起動した後に、以下のコマンドにて現在 vCenter 配下に VMがどれだけあるかみてみましょう。
Get-VM
自分の環境には、上記のように合計 6台のVMが動いている状態です。
では、早速 vCenter 配下で Clusterごとの Host、PowerOn状態の VM の数も以下のコマンドにて確認してみましょう。
Get-Cluster | Select Name, @{N=”Host Count”; E={($_ | Get-VMHost).Count}}, @{N=”VM Count”; E={($_ | Get-VM | Where-Object {$_.PowerState -eq “PoweredOn”}).Count}}
ごらんのように、Clusterごとの Host数および VM数が確認できることがわかります。
PowerOff のVM数を確認するには、以下のコマンドを使います。
Get-Cluster | Select Name, @{N=”Host Count”; E={($_ | Get-VMHost).Count}}, @{N=”VM Count”; E={($_ | Get-VM | Where-Object {$_.PowerState -eq “PoweredOff”}).Count}}
get-vm コマンドで確認したように、自分のテスト環境においては稼働中のVM 6台のみが vCenter 配下にある状態です。本当に PowerOff のVM数も拾えるかどうかを確認するため、VM1台を停止します。
Stop-VM CJVM
VMが停止したので、再度 PowerOn / Off のVM数を確認してみましょう。
きちんと、電源状態に合わせた VMの数が確認できました。
ぜひ、計画メンテナンス時などでご活用ください。
[参照情報]
Powercli Script to measure the count of Host and its Vm’s in a each clusters
https://communities.vmware.com/thread/514432
PowerCLI Reference / PowerState – Enum
https://code.vmware.com/docs/5060/cmdlet-reference#/doc/PowerState.html