VMWare の仮想ディスク vmdk を raw に変換して XenServer のストレージにインポートするには

May 7, 2009

ここでの vmdk ファイルは OS のイメージではなく、単にデータのみのイメージです。
OS イメージとしての vmdk ファイルを Xen 用の xva ファイルに変換する方法ではありません。

Windows ホストでの変換作業

qemu-img を使って、vmdk から raw 形式に変換

今回は、Windows ホスト上で行っています。コマンドプロントで qemu-img を実行します。D:\Shared は共有フォルダです。

qemu-img.exe convert -f vmdk D:\hdd.vmdk -t raw -O D:\Shared\hdd.img

XenCenter でストレージを作成

インポート先のストレージ(受け皿)を作成します。

  1. XenCenter の [Local storage] を選択します。
  2. [Add Disk…] をクリックします。
  3. 任意の Name とディスクサイズをインポートするイメージのサイズを指定します。これが小さいと途中で失敗してしまいます。
  4. [Add] をクリックして完了。

XenServer にログイン

Windows 共有フォルダをマウント

\\Winhost\Shared が共有されているとします。Windows 上のユーザー名は waccount とします。

# mount.cifs //Winhost/Shared /mnt -o user=waccount

ストレージのUUIDを確認

# xe vdi-list
uuid ( RO) : aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
name-label ( RW): storage
name-description ( RW):
sr-uuid ( RO): xxxxxxxx-yyyy-zzzz-wwww-vvvvvvvvvvvv
virtual-size ( RO): 21474836480
sharable ( RO): false
read-only ( RO): false

さきほどの XenCenter で作成した Storage の Name とname-label が一致する uuid を調べます。

イメージをインポートする

# cd /mnt
# xe vdi-import filename=”hdd.img” uuid=”aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee”

ポイント

一旦、XenServer 上にコピーしようとすると親ホストに割り当てられている記憶領域の容量不足でできない。Windows ではなければ NFS マウントするなりでネットワーク越しにインポートを試みる。

tilfin freelance software engineer