VMware vCenter 環境上の Linux 仮想マシンを KVM 環境用に変換する

更新 -

Virt-v2v は、外部ハイパーバイザーの仮想マシンを libvirt 管理の KVM、Red Hat Enterprise Virtualization (RHEV)、Red Hat Enterprise Linux OpenStack Platform などで実行できるように変換します。

このナレッジでは、Linux 仮想マシンを Red Hat Enterprise Linux 7 KVM で実行するように、VMware vCenter ハイパーバイザーから変換する方法を説明します。

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

前提条件

リソース要件

virt-v2v を使用して変換するには、最低でも以下のシステムが必要になります。

  • ネットワークの帯域幅が 1Gbps 以上
  • ファイル化される仮想マシンと、変換したターゲットを保存するのに十分なディスク領域
  • 仮想マシンのファイルシステムに十分な空き領域
ファイルシステム 最低限の空き領域
root のファイルシステムまたは c:\ 20 MB
/boot 50 MB
その他のマウントできるファイルシステム 10 MB

準備

virt-v2v は Red Hat Enterprise Linux 64bit ホストシステムから実行します。virt-v2v はホストにインストールする必要があります。virt-v2v をインストールし、ホストシステムを設定するには、以下の手順を実行する必要があります。

ホストシステムを設定する

1. ホストシステム v2vsystem1.example.com に root ユーザーとしてログインします。

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 RPMs
Red Hat Enterprise Linux Supplementary RPMs
Red Hat OpenStack RPMs

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-supplementary-rpms

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

# yum update

8. システムアップデートで新しいカーネルバージョンが提供された場合はそのバージョンでシステムを再起動し、 root 権限で再度ログインします。

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

# yum install virt-v2v

10. 下記行を /root/.bashrc に追加します。

export LIBGUESTFS_BACKEND=direct

11. ログアウトします。

12. (任意) 必要に応じて virtIO ドライバーを有効にします。

virtIO ドライバーを使用すると、ディスク (ブロックデバイス)、ネットワーク、そしてその他の仮想マシンの処理が KVM よりも速くなります。
以前のバージョンの virt-v2v では特定の Linux 仮想マシンにこれらのドライバーをインストールできましたが、Red Hat Enterprise Linux 7 に含まれる virt-v2v のバージョンでは、新しい Linux カーネルまたはドライバーをインストールしようとせず、インストールされていない場合に警告します。

virtIO を有効にして、変換後の仮想マシンのパフォーマンスを向上させるには、オペレーティングシステムを変換するに、パッケージの最低バージョンがインストールされていることを確認する必要があります。

OS のバージョン virtIO に必要なパッケージ
Red Hat Enterprise Linux 3 virtIO ドライバーは利用できません
Red Hat Enterprise Linux 4 2.5.9-89.EL 以降のカーネル
Red Hat Enterprise Linux 5 2.6.18-128.el5 以降のカーネル、2.02.40-6.el5 以降の lvm2、2.4.6-203.el5 以降の selinux-policy-targeted
Red Hat Enterprise Linux 6 以降 virtIO をサポートするすべてのバージョン
Windows /usr/share/virtio-win にドライバーがある場合はインストールされます

これで、virt-v2v コマンドを実行して、仮想マシンを取得、変換し、libvirt 管理の KVM 環境へアップロードできるようになりました。

変換

ここまでの手順で、virt-v2v を使用して、Red Hat Enterprise Linux KVM で実行するように仮想マシンを変換できるようになりました。

ローカルの仮想マシンを変換する一般的なコマンド構文は以下の通りです。

# virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp

# virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest

# virt-v2v -ic vpx://vcenter.example.com/Datacenter/esxi esx_guest -o rhev -os rhev.nfs:/export_domain --network rhevm

重要箇所

v2v 変換処理を実行する前に、仮想マシンを停止してください。

以下のコマンドを実行して仮想マシンを変換してください。コマンドの内容はお使いのシステムによって異なります。この例では、esx.example.com が VMware vCenter サーバー、“esx_guest” が仮想マシンの名前、そして /var/tmp がイメージを保存するローカルリポジトリです。

# virt-v2v -ic vpx://username@esx.example.com/Datacenter/esxi “esx_guest” -o local -os /var/tmp

また、仮想マシンにネットワークインターフェイスが 1 つしかない場合は、--network パラメーターを使用して、ローカルで管理されたネットワークに接続することもできます。

VMware vCenter サーバーで認証する

VMware vCenter サーバーへの接続には認証が必要です。virt-v2v は、VMware vCenter に接続する際のパスワード認証をサポートします。パスワードは変換時、または --password-file オプションを使用して入力できます。

無効な証明書を持つ VMware vCenter サーバーに接続する

非プロダクション環境では、VMware vCenter サーバーに無効な証明書 (自己署名証明書 など) が設定されている場合があります。この場合、以下のように ?no_verify=1 を接続 URI に追加して、証明書チェックを明示的に無効にできます。

...-ic esx://esx.example.com?no_verify=1 ...

⁠完了

変換が完了すると、virt-v2v は、変換前の仮想マシンと同じ名前を持つ新しい仮想マシンの libvirt ドメイン XML ファイルを作成します。新しい仮想マシンは、virt-manager や virsh などの libvirt ツールを使用して起動できます。

libvirt で仮想マシンを管理する方法については、Red Hat Enterprise Linux 7 Virtualization Deployment and Administration Guide を参照してください。

注意

現在、virt-v2v ツールは、仮想マシンのネットワーク設定を再構築できません。変換した仮想マシンがソースとして同じサブネットに接続しない場合、そのネットワーク設定にはアップデートが必要になる場合があります。virt-customize(1) の man ページを併せて参照してください。

参照情報

virt-v2v を使用して仮想マシンを変換する方法については、virt-v2v の man ページと http://libguestfs.org/virt-v2v.1.html を参照してください。