vCenter 配下の VM数を把握するには?

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

 

PowerCLI : VMが稼動しているホスト情報を確認するには?

CJです。

vSphere 基盤を運用していると、以下のケースにおいて簡単な情報を素早く確認したい時があります。

・特定のホスト上で稼動している VM リストを確認

・VMが稼動中のホストを確認

もちろん、このような情報は GUI (vSphere Web Client) 上からも確認は可能ですが、VM数が数百台の規模とかになると、やはり確認に時間がかかったり、GUI操作に不便を感じるかと思います。その際にはぜひ以下の PowerCLI コマンドを試してみてください。

テスト環境

VMware PowerCLI 6.5.1 build 5377412 です。

Get-PowerCLIVersion

特定のホスト上で稼動している VM リストを確認

 

少し工夫して “host1.cjnotes.com”ホスト上で稼動しているVMで、電源ONかつVM名に “CJ” が入っているVMリストを確認してみます。

Get-VM | Where {$_.Name -eq “host1.cjnotes.com”} | get-vm | Where {$_.PowerState -eq “PoweredOn” -and $_.Name -like “CJ*”} | sort

すると、このようにVM情報が簡単に確認できます。

VMが稼動中のホストを確認

こちらも同じくVMが電源ONであり、VM名に “CJ” が含まれているVMリストのホスト情報を確認してみます。

 

Get-VM | Where {$_.PowerState -eq “PoweredOn” -and $_.Name -like “CJ*”} | sort | select Name,PowerState,VMHost

すると、このように各VMが稼動中のホスト情報も確認できます。

 

 

今回は割愛させていただいていますが、上記コマンドを CSVファイルなどへエクスポートすることも可能です。 メンテナンスなど、作業前後の状態を取得するケースでも有効なコマンドかと思いますので、ぜひお試しください。

最新の VMware PowerCLI をインストールには?

CJです。

vSphere環境を運用していると GUIもいいですが、やはりコマンドで操作したいケースもたくさんあります。その際に有効に使えるのが、VMware PowerCLI (以下、PowerCLI)ツールです。

ところで、最近 PowerCLIの入手方法が変わったこと、知ってますか?

今までだと、以下のようにVMwareサイト (myvmware)より、パッケージをダウンロードして、サーバーにインストールすることで該当のPowerCLIが使えました。

しかし、配布方法が、PowerCLI 6.5.1 バージョンより Microsoft PowerShell の配布モデル(PowerShell Gallery からインストールする方法)に合わせられているようです。

今回、PowerCLI 6.5.1 をインストールしたいサーバーは “Windows Server 2012 R2” を想定にしているとします。2012R2 では、デフォルトで WindowsPowerShell version 4 がインストールされていますが、このバージョンでは PowerCLI 6.5.1 をインストールするためのモジュールが入ってない状態です。そのため、まずは WindowsPowerShell バージョンを更新(4→5)し、その後に PowerCLI 6.5.1 をインストールする簡単な流れとなります。

では、早速スクリーンショットをベースで見ていきましょう。

1.まずは現在の Windwos PowerShell バージョン(ver.4) を確認しましょう。

$psversiontable.psversion コマンドにてバージョンが確認可能です。

2. Microsoft サイトより、Windows Management Framework 5.0をダウンロードします。

“Download” ボタンをクリックし、

“Win8.1AndW2K12R2-KB3134758-x64.msu”の Checkbox にCheckinしてファイルをダウンロードしてください。その後、ファイルを実行すると、

このように、”…インストールしますか?” とポップアップされます。

OSバージョンに互換性がないパッケージバージョンの場合は、次へ進めない旨のメッセージがポップアップされます。以降は、規約に同意して次へインストール進めていけばOKです。

3. インストール完了後、バージョンを確認すると ver.5 になっていることが確認できます。

4. これで VMware.PowerCLI がインストール可能な状態となりました。

以下のコマンドで PowerCLI モジュールがサーチできることを確認してください。

Find-Module -Name VMware.PowerCLI

5. VMware.PowerCLI モジュールも確認できましたし、次へローカルシステム上に使用可能な VMware モジュールがあるか確認します。

Get-Module VMware* -ListAvailable

では続いて、以下のコマンドにてモジュールをインストールしましょう。

Install-Module -Name VMware.PowerCLI

“…モジュールをインストールしますか?” と表示されたら “Y” でインストールへ進めてください。これで VMware PowerCLI 6.5.1 インストールが完了しました。

先ほどの 使用可能な VMware モジュールを確認してみると、いくつかのモジュールが表示されることが確認できるかと思います。

6. 最後に、vSAN 関連コマンドが表示されることも確認してみてください。

Get-Command -Name *vsan*

現時点の最新バージョンである PowerCLI 6.5.1 で追加された “Get-VsanView” などが表示されることも確認できます。

最新のPowerCLI (vSAN 関連機能など)を使いたいが、VMwareサイトでは見当たらず、迷っている方に少しでも役に立てればと思います。

 

[参考情報]

Welcome PowerCLI to the PowerShell Gallery – Install Process Updates

https://msdn.microsoft.com/en-us/powershell/scripting/setup/windows-powershell-system-requirements