Quitada ブログ HAX

Hatena Blog でも Quitada ブログ

VMware Fusion 上で作成した仮想マシンをコマンドラインで ESX 上に移行

VMware Fusion 5

VMware Fusion 5

以前のブログエントリ「VMware Fusion 上で作成した仮想マシンを VMware ESX 上に移行」で以下のように言及してました。

ドキュメントを見る限り、コマンドライン一発で、VMware Fusion仮想マシンの vmx ファイルと、ESXの URL を指定してやれば(ネットワーク的にお互いにアクセス可能であれば)、直接 VMware Fusion から ESX への仮想マシン移行が可能そうですが

ということで、やってみました。厳密にいうと、直接 VMware Fusion から ESX へ、というよりはコマンドライン(ovftool)で直接 vCenter Server 経由で ESX へ移行をやってみました。

まー、ovftool のドキュメントに書いてあるんですが(英語ですが)、まず以前のブログエントリにあるとおり、VMware FusionVM を ovf エクスポートして、ovftool の移行先の URL に vCenter Server のそれ(vi:// からはじまるやつ)を指定します。以下のような感じ。

ovftool [移行元 ovf ファイルへのパス] vi://[vCenter Server 管理者 ID]@[移行先 vCenter Server のホスト名 or IP]/[移行先 vSphere データセンター名]/host/[移行先 ESX ホスト名 or IP]/Resources/[移行先リソースプール名(なければ指定しなくてもよい)]

当方の使用する環境(VMware vSphere 5)では、リソースプール作ってなくて、vCenter Server のデフォルト(Windows の管理者 ID である Administrator)というテキトーな環境なんで、以下のような感じでデプロイ完了。

% cd /path/to/ovf
% ovftool MyOvfFile.ovf vi://Administrator@192.168.0.1/MyDataCenter/host/192.168.0.2/Resources/

なお、移行先の vCenter Server の URL のパスがどうなっているのかよくわかりません、という場合はパスの途中まで入力して ovftool コマンドを実行してやると、次に何が指定可能か教えてくれるので心配ないです。たとえばこんな感じ。

% ovftool MyOvfFile.ovf vi://Administrator@192.168.0.1/
Opening source: MyOvfFile.ovf.ovf
Opening target: vi://Administrator@192.168.0.1/
Error: Found wrong kind of object (Folder)
Possible completions are:
Datacenter/
Remote Datacenter/
MyDataCenter/

ところで本題からそれますが、ovftool による移行の場合、vSphere Client からの移行と違って、ウィザード形式で移行する環境依存情報(ネットワーク名とか)を入力するようになってないので、移行先の vSphere 環境にあわせて事前に ovf ファイルを編集しておく必要があるようです。quitada がやった限りは、とりあえずネットワーク名を移行先のものにあわせたらうまくいきました。以下の部分です。

  :
  <NetworkSection>
    <Info>The list of logical networks</Info>
    <Network ovf:name="VM Network"> <span class="deco" style="font-weight:bold;">←ここ</span>
      <Description>The VM Network network</Description>
    </Network>
  </NetworkSection>
  :
      <Item>
        <rasd:AddressOnParent>7</rasd:AddressOnParent>
        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
        <rasd:Connection>VM Network</rasd:Connection> <span class="deco" style="font-weight:bold;">←ここ</span>
        <rasd:Description>E1000 ethernet adapter on "VM Network"</rasd:Description>
        <rasd:ElementName>Network adapter 1</rasd:ElementName>
  :