VMware vSphere PowerCLIのGet-HardDiskコマンドレットで全仮想マシンの全仮想ディスクの一覧を抽出する
とても便利な機能で私もよく利用します。
しかし以前から、仮想ディスクの一覧を取得できたらいいなと思っていました。
調べたら仮想ディスクの一覧を取得するコマンドがあるんですね。
PowerCLIのGet-HardDiskコマンドレットが使えます。
これで、指定した仮想マシンに紐づいている仮想ディスクの一覧が表示されます。
Get-HardDisk -VM <仮想マシン名>
全部の仮想マシンの全仮想ディスクの一覧は、こんな感じで抽出できます。
コマンドは改行無しの1行で入力します。
VMware PowerCLI 6.5 Release 1 build 4624819 |
PowerCLI C:\> Get-VM |Get-HardDisk |Select-Object {$_.Parent,$_.Name,$_.CapacityGB,$_.StorageFormat} $_.Parent,$_.Name,$_.CapacityGB,$_.StorageFormat ------------------------------------------------ {VM-SERVER01, ハード ディスク 1, 100, EagerZeroedThick} {VM-SERVER01, ハード ディスク 2, 800, EagerZeroedThick} {TEST-SV01, ハード ディスク 1, 80, Thin} {TEST-SV01, ハード ディスク 2, 200, Thin} {TEST-SV01, ハード ディスク 3, 400, Thin} PowerCLI C:\> |
Get-VMで仮想マシン名の一覧を抽出し、パイプでGet-HardDiskに送ります。
その結果をさらにSelect-Objectにパイプで送り、必要な項目を表示します。
今回は以下の4つの項目を抽出しています。
項目名 | 説明 |
Parent | 仮想ディスクの親となる仮想マシン名です。 |
Name | 仮想ディスク名です。vCenter Serverの仮想マシンの編集画面で見える、ハードディスク1とか、ハードディスク2とかのあれです。 |
CapacityGB | 仮想ディスクのサイズ(GB)です。CapacityKBの指定もできます。シンタイプの仮想ディスクの場合は、プロビジョニングされた値を示します。 |
StorageFormat | シンかシックかわかります。私の試した環境ではThinとEagerZeroedThickのどちらかでしたが、ZeroedThickもあるんでしょうね。 |
ZeroedThickは仮想ディスクを作成した時点で一部のブロックがゼロ埋めされます。
全仮想マシンの全仮想ディスク一覧をCSV形式に抽出するコマンドの例です。
Get-VM |Get-HardDisk |Export-Csv -Encoding Default -Path C:\Temp\Get-HardDisk.csv |
CSV形式にエクスポートするともっと多くの項目が出力されます。
例えばFilenameには、仮想ディスクを配置するデータストア、ディレクトリ、ファイル名が出力されます。
こんな感じです。
[VM-SERVER01] VM-SERVER01/VM-SERVER01.vmdk [VM-SERVER01] VM-SERVER01/VM-SERVER01_1.vmdk [VM-SERVER01] VM-SERVER01/VM-SERVER01_2.vmdk |
Get-HardDiskコマンドレットも便利ですね。