VMware Fusionの仮想マシンをVMware Infrastructureに移動する方法
ひさしぶりに書くネタがこんなバッドノウハウかと思うと鬱になりそうです
事の発端は,ただのインストール
30分もあれば終わるはずでした
いつもどおりVMware Infrastructureにログインして,Debian testingのNighty BuildのISOイメージをマウント
あとは待つだけ・・・
ところが???インストーラはちゃんと起動するのに,cdromドライブのドライバがないと怒られて進めない
数ヶ月前のNighty Buildでは問題なかったのに・・・
いろいろやってみたもののよく分からないので,なんとなく思いついた
- VMware Fusionで仮想マシンを作ってエクスポート
- VMware Infrastructureでインポート
という流れでやることに
1のFusionで仮想マシンを作るのは書くことがないので省略します
Fusionの仮想マシンをInfrastructureで使うには,仮想マシンの形式を変換してやる必要があります
変換にはOVF Toolを使います
OVF ToolはWindows 32bit版,Linux 32bit版/64bit版しかないので,今回はFusion内のWindowsでやることにしました
OVF Toolは C:\Program Files\VMware\VMware OVF Tool にインストールされます
ここからは同じエラーに悩む人のために?試行錯誤の記録を残しておきますが,お急ぎの人は最後の結論だけお読み下さい
Infrastructureのメニューを見るとOVF形式でのインポートに対応しているようなので,OVFに変換してみます
仮想マシンにISOイメージなどを接続したままだと
> C:\Program Files\VMware\VMware OVF Tool\ovftool.exe VMXファイル OVFファイルの保存名 Error: - Connected device 'cdrom1'.
と怒られます
> C:\Program Files\VMware\VMware OVF Tool\ovftool.exe VMXファイル OVFファイルの保存名 Opening VMX source: VMXファイル OVF version: 1.0 Name: testing Download Size: Unknown Deployment Sizes: Flat disks: 8.00 GB Sparse disks: Unknown Networks: Name: nat Description: The nat network Virtual Hardware: Family: vmx-07 Disk Types: SCSI-lsilogic Completed successfully
のように表示されれば成功です
OVFが出来たので,Infrastructureにインポートします
ところが,「OVF記述子の解析中にエラーが発生しました。 Unable to parse XML element ‘Envelope’.」
というエラーで進めません
どうやらOVFのバージョンが違うようです
VMware Communitiesのこちらの書き込みによると,Infrastructureの場合はVI形式に変換して,直接デプロイしてやる必要があるようです
新バージョンのvSphere 4ならOVF1.0やOVA形式にも対応しているようです
直接デプロイするということは,Infrastructureに直接つなげるWindowsマシンが必要ですが,使えそうなWindowsがFusionにしかいませんでした
ところがこのWindowsはホストオンリーなネットワークに繋がっていて,ホストのMacとしか通信できないようにしていました
なので一時的にブリッジに変更してやろうとしたのですが・・・つながらない
普段NATかホストオンリーしか使わないので気づいてなかったのですが,どうも vmnet-bridge が動いてないっぽい
調べてみると「/Library/Application\ Support/VMware\ Fusion/boot.sh」というスクリプトを編集するとか「–restart」で再起動するとか書いてるサイトがたくさんありましたが,どうもFusion 2の話の模様
vmnet-bridge というバイナリがあるので,これでブリッジをつくれるのだと思うのですが,1時間ほど粘ったものの使い方がわからずあきらめました(本質じゃないしね)
仕方ないので別の実機のWindowsマシンを急遽用意しました
OVF Toolを入れて,VMX形式の仮想マシンを変換します
データストアやネットワークインタフェースが複数ある場合はオプションで指定してやる必要があります
> C:\Program Files\VMware\VMware OVF Tool\ovftool.exe VMXファイル -ds=データストア -nw=ネットワークインタフェース vmxファイル vi://ユーザ名@ESXサーバの名前orアドレス Opening VMX source: VMXファイル Please enter login information for target vi://ESXサーバの名前orアドレス/ Username: ユーザ名 Password: パスワード Opening VI target: vi://ユーザ名@ESXサーバの名前orアドレス Warning: - The operating system has been mapped to 'Other Linux (32-bit)' from '' (id: 95). Error: - Line 25: Unsupported hardware family 'vmx-07'.
今度はハードウェアファミリ「vmx-07」はサポートしてないと怒られます
たしかに,OVFへの変換結果をみると「Virtual Hardware」の「Family」が「vmx-07」になっています
なので無理矢理「vmx-04」に書き換えてやります
エディタでVMXファイルを開いて,「virtualhw.version」というエントリの値を「4」に書き換えます
これでうまくいくハズです
> C:\Program Files\VMware\VMware OVF Tool\ovftool.exe VMXファイル -ds=データストア -nw=ネットワークインタフェース vmxファイル vi://ユーザ名@ESXサーバの名前orアドレス Opening VMX source: VMXファイル Please enter login information for target vi://ESXサーバの名前orアドレス/ Username: ユーザ名 Password: パスワード Opening VI target: vi://ユーザ名@ESXサーバの名前orアドレス Target: vi://ESXサーバの名前orアドレス/ Disk Transfer Completed Completed successfully
成功するとInfrastructureのインベントリに仮想マシンが追加されています
以上関係ないところで苦労しましたが,結論としては,
- vmxファイルを編集
virtualhw.version = "7" →virtualhw.version = "4"
- vmxをviに変換
> C:\Program Files\VMware\VMware OVF Tool\ovftool.exe -ds=データストア -nw=ネットワークインタフェース vmxファイル vi://ユーザ名@ESXサーバの名前orアドレス
でOKです
Fusion3のブリッジについてはまた後日
あ〜つかれた
#リファレンスには載ってませんでしたが,OVF形式からもVI形式に変換&デプロイできました




