VMware からゲストを OVA ファイルとしてエクスポートして、KVM にインポートする

更新 -

概要

このナレッジでは、virt-v2v コマンドを使用して、VMware (vCenter + ESX(i)) ゲストを qcow2 フォーマットに変換して KVM ハイパーバイザーにインポートする方法を説明します。変換する前に、VMware ゲストを Open Virtualization Format (.ova ファイル 1 つ) にエクスポートする必要があります。

virt-v2v ツールの概要、サポートされる変換、その他の仮想マシンの変換タイプへのリンクは、Converting Virtual Machines from Other Hypervisors to KVM with virt-v2v を参照してください。

このナレッジでは詳細な手順を説明しますが、続行する前に以下の環境がある (またはアクセスできる) ことを確認してください。

  • 以下が設定されている Red Hat Enterprise Linux 7.1 物理システム
    - Server RPM パッケージリポジトリーにアクセスするために必要な Red Hat サブスクリプション
    - Optional RPM パッケージリポジトリーにアクセスするために必要な Red Hat サブスクリプション
    - Supplementary RPM パッケージリポジトリーにアクセスするために必要な Red Hat サブスクリプション
    - virt-v2v パッケージおよびその依存関係をインストールするのに必要な Red Hat サブスクリプション
    - .ova ファイルの保存するために必要なストレージプールディスク領域とネットワークアクセス
    - KVM の作業環境
  • VMware インストールの管理信用情報およびネットワークアクセス
  • 変換するゲスト名
  • 信頼でき確認済みのバックアップ

注意: お使いのシステム名は、このナレッジで使用している名前とは異なります。お使いの環境に一致するようにコマンド例を変更する必要があります。

このナレッジでは以下のシステム名が使用されています。

  • Red Hat Enterprise Linux 7.1 システム: virthost1
  • エクスポートするゲスト仮想マシン: guestvm1

注意: ターゲットの仮想マシンは、.ova ファイルにエクスポートする前にシャットダウンまたはオフラインにする必要があります。

virthost1 システムを設定する

1. root ユーザーとして virthost1 にログインします。
2. Red Hat サブスクリプション管理にシステムを登録します。

# subscription-manager register

Red Hat サブスクリプション管理の認証情報を入力して続行します。

3. 以下のコマンドを実行して、利用できるプールの一覧を取得して保存します。

# subscription-manager list --available > /tmp/pools_available

4. /tmp/pools_available ファイルを開いて、以下のパッケージグループにアクセスを提供するサブスクリプションの Pool ID を書き留めます。

Red Hat Enterprise Linux Server RPM
Red Hat Enterprise Linux Optional RPM
Red Hat Enterprise Linux Supplementary RPM

5. 以下のように、その Pool ID 値を追加してコマンドを実行します。

# subscription-manager subscribe --pool=8a85f4923cf494ef013ddc6045a541c8

6. これでシステムにサブスクリプションが登録されました。すべてのリポジトリーを無効にして、この手順に必要なリポジトリーだけを再度有効にします。

# subscription-manager repos --disable=*
# subscription-manager repos --enable rhel-7-server-rpms
# subscription-manager repos --enable rhel-7-server-optional-rpms
# subscription-manager repos --enable rhel-7-server-supplementary-rpms
# subscription-manager repos --enable rhel-7-server-v2vwin-1-rpms

7. システムアップデートを実行します。

# yum update

8.システムアップデートに提供した場合に、新しいカーネルバージョンでシステムを再起動し、root ユーザーとして再度ログインします。

9.virt-v2v パッケージと依存関係をインストールします。

# yum install virt-v2v

VMware ゲストをエクスポートする

VMware ゲストをエクスポートする方法は VMware 製品によって異なります。オフラインゲスト (ここでは guestvm1) を選択し、その OVF テンプレート ([File] -> [Export] メニューなど) をエクスポートします。.ova ファイルを 1 つエクスポートするオプションを選択します。この手順でご不明な点がある場合はベンダーまでお問い合わせください。

ゲストを guestvm1.ova ファイルにエクスポートしたら、そのファイルを virthost1 システムに移動します。

ゲストを変換してインポートする

root でゲストを変換してインポートするには、以下のようなコマンドを実行します。

  • guestvm1.ova は、エクスポートしたゲストファイルの名前です。
  • guestpool は、virsh pool-list コマンドを実行して取得したストレージプールの名前です。
# virt-v2v -i ova guestvm1.ova -o libvirt -of qcow2 -os guestpool

以下のような出力結果が表示されます。

[   0.0] Opening the source -i ova guestvm1.ova
[   0.0] Creating an overlay to protect the source from being modified
[   1.0] Opening the overlay
[   4.0] Initializing the target -o libvirt -os guestpool
[   4.0] Inspecting the overlay
[  10.0] Checking for sufficient free disk space in the guest
[  10.0] Estimating space required on target for each disk
[  10.0] Converting Red Hat Enterprise Linux release 6 (Update 6) to run on KVM
virt-v2v:This guest has virtio drivers installed.
[  14.0] Mapping filesystem data to avoid copying unused and blank areas
[  14.0] Closing the overlay
[  14.0] Copying disk 1/1 to /media/guests/guestvm1-sda (qcow2)
    (100.00/100%)
[  28.0] Creating output metadata
Pool guests refreshed

Domain guestvm1 defined from /tmp/v2vlibvirt4fe796.xml

以下のコマンドを実行して、新しい guestvm1 ゲストをインポートしたことを確認してください。

virsh list --all

これで、ゲストを変換してインポートできました。変換前のゲストを削除したり、アクティブなサービスを移行したりする前に、インポートしたゲストを起動して問題がないか確認してください。

詳細と例については virt-v2v man ページを参照してください。