VMware 仮想インフラストラクチャ リモート CLI で ESX/i 内の未使用のマシン/ディスクを検索する
質問
VMware ESX/i で、VMware 仮想インフラストラクチャ リモート CLI を使用して未使用のマシン/ディスクを見つけるにはどうすればよいですか?ディスク上に膨大なインベントリと多数のファイルがあり、削除の候補となるファイルを見つけたいと考えています。
私がしたいのは、
- ある
vmdk
ディスクは誰かによって使用されていますvmx
ホスト上のマシンかどうか - ある
vmx
マシンはホスト上のインベントリに存在します。
これを見つけるための賢い方法が存在するでしょうか?VIRCLI ではない場合は、他のものでしょうか?それともこれには Virtual Center が必要ですか?
編集: これは、他のホストとマシンやディスクを共有しない単一のホストです。
解決
IC は、それらのディスクが共有され、使用されているかどうかを知りません。 別の ESXi ホストでは、バックエンドに SAN があり、複数のホストが同じストレージ デバイスにアクセスすることが非常に一般的です。この場合、どのホストがどのマシンにアクセスしているかを知る方法はありません。説明したシナリオはホストが 1 台の場合にのみ意味を成します。これは VMware の企業顧客の多くにとって典型的なシナリオではありません。
RCLI またはシェルを使用すると、既存のすべてのマシンを反復処理し、それをディスク上の内容のリストと比較できます。ただし、ホスト間でディスクを共有している場合は、状況はさらに複雑になり、各マシン上のデバイスも同様に反復処理する必要があります。
アップデート: そうです、これはスクリプト/プログラミングに関する非常に難しい質問です ;)
から始めて、 RCLI ドキュメント おそらく使用するようなことをするでしょう vmware-cmd -l
ホスト上に登録されているすべてのマシンをリストします。次に、使用 vifs
設定ファイルをダウンロードし、 grep
仮想ディスクに関する言及を探しているユーザーを通じて (.vmdk
) それらすべてをファイルに保存します。
パート 2 では、再帰的なディレクトリ一覧を実行するスクリプトを作成します。これもまた使用します。 vifs
, 、 ランニング grep
もう一度それについてのみ含めます .vmdk
そして .vmx
ファイル。これで 2 つのリストができました。これらをパイプ処理します。 sort
その後 diff
何を知るための結果 .vmx
ファイルがマシンに登録されていません。 .vmdk
ファイルはアクティブな VM によって使用されていません。そして、削除候補が見つかります:)