Linux VM のブロックデバイスを vmware データストアの vmdk ファイルにマップします。

Linux VM のブロックデバイスを vmware データストアの vmdk ファイルにマップします。

開発と準備の目的で、個々の仮想ハードディスク(vmdkコンテナ)のレプリカを作成し、それらを別のシステムに移動/配布する必要があることがよくあります。

稼働中のPOCをハッキングすることはできましたが、現在制御したくない多くの仮想マシンで動作する一般的な方法が必要です。 ESXデータストア(仮想マシンごとに多くの仮想HDDがあります)の物理vmdkファイルにブロックデバイスをマッピングするのに問題があります。

このvmdk検証は、個々の仮想マシンで実行するように設計されており、すべてのESXiホストへのSSHアクセス権を持っています。これにより、vmdkレプリカを作成して検索できます。 (はい、これは非常にハッキーで危険です。)

たとえば、最終的にスクリプトに質問をした場合は、スクリプトがwhat's the corresponding file of /dev/sdd?応答する必要があります。/vmfs/volumes/12345678-12345678-1234-123456789abc/foobar/filenamewithoutsemanticalinformation.vmdk

仮想マシン内の特定のブロックデバイスにマップされたvmdkファイルの実際のパスを確認するには?

VM内のSCSIターゲットIDをvmxファイルのvHDDエントリと一致させる方法についてのアイデアがありますが、これが信頼できる情報であるかどうかはわかりません。

修正する

しばらく使ってみた後、SCSIコントローラとターゲットIDの一致が安定して簡単に制御できるという確信がありました。この場合、信頼できることは、IDがシステムによって変更されず、vmxファイルに名前と番号が指定されているようにゲストに完全に公開されることを意味します。これらのいずれかを使用して、lsscsiブロックデバイスのコントローラとターゲットIDを取得します。その後、<controller>:<target>.filenamevmxファイルをgrepし、結果からファイル名を抽出できます。

正しいvmxファイルを見つけることは新しい問題です。これは、find-grepデータストア内のすべてのvmxファイルで仮想マシンのMACアドレスを検索することによって行われます。これは最善の方法ではなく、大規模なインストールにはお勧めできません。

ベストアンサー1

おすすめ記事