oVirt or RHEV 環境から仮想マシン(イメージ)を VMware 6.5 へ移行する手順【コマンドライン編】

今回はあまり例のない手順かもしれませんが、「oVirt」もしくは「RHEV(Red Hat Enterprise Virtualization)」環境から「VMware」環境へ仮想マシンを移行する手順です。

※VMware vSphere 6.5 の環境で作業をします。

 

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

長期間 VMware だけ、RHEV だけと決めて運用できればいいのですが、企業など大きな組織では状況が変わることがあります。

予算が増えた・減った、運用しにくい・しやすい、人が入れ替わったなど、その時その時の状況に合わせて環境も変えていく必要があります。

 

 

oVirt or RHEV 環境の仮想マシンのファイル形式

VMware、RHEV、oVirt など仮想環境で動く仮想マシンの実態は「ファイル」です。

しかし、「VMware」「RHEV、oVirt」など仮想環境によりファイルの形式が異なります。

 

もっと詳しくいうと、仮想マシンはディスクのイメージファイルを持っています。

イメージとは何かと言いますと、一言で言えば「まるごと」という意味です。

ディスクのイメージファイルとは「ディスクまるごとの情報」という意味です。

 

ディスクまるごととは、「単純に全部のファイルを集めました」ではなく、「ディスクの構成情報、どこに何のデータが入っているかなどの制御情報など含め、とにかく全部まるっとコピーした」という意味です。

つまり、そのまま他のシステムに移行することができます。

 

以下、KVM(RHEV oVirt) と VMware の2種類で主に使われている仮想マシンのディスク形式(フォーマット)です。

RAW

最も高速なファイルベースのイメージ形式(フォーマット)です。

フォーマットは単純で、他のホストに簡単にエクスポートできます。

RAW イメージ形式はパフォーマンスはいいですが、利用できる機能は基本的なものだけに限られます。

(スナップショットなどは不可)

 

QCOW2

QCOW は 「QEMU Copy On Write」の略です。

QEMU イメージ形式(フォーマット)です。

最も用途が多様となる形式で、機能も最も充実しています。

オプションの AES 暗号化、zlib ベースの圧縮、仮想マシンの複数のスナップショットに対するサポート、イメージを小さくするなどのオプションを付ける場合に使用します。

これらは未割り当てのブロックに対応していないファイルシステムで役に立ちます (Windows 上の NTFS 以外のファイルシステム)。

機能が充実している分、パフォーマンスは低下します。

QCOW は、古いバージョンのイメージ形式(フォーマット)です。

 

VMDK

VMDK(Virtual Machine Disk)は、VMware の仮想ディスクのイメージ形式(フォーマット)です。

VMDK は、仮想ディスクのプロビジョニングタイプに応じて、作成されるサイズが変わります。

 

  • シックプロビジョニング → 構成したディスクのサイズ分がアロケーションされる(割り当てられる)
  • シンプロビジョニング  → 実際の使用量のみのサイズがアロケーションされる(割り当てられる)

 

下図は VMware で仮想マシンを構成しているファイル一式です。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順 

 

「cent06-000001.vmdk」と「cent06.vmdk」の2つの「vmdk」ファイルがありますが、「cent06-000001.vmdk」の方に実態があります。→ つまり「xxxx-00000xx.vmdk」の形式の方に実態があります。

 

「cent06.vmdk」の方は

  • 仮想ディスクのプロビジョニングタイプ
  • SCSIコントローラの種類(LSI Logic、Bus Logic など)

など構成情報が記載されています。

 

「cent06.vmdk」の中身です。

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=9f0a0793
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"

 

# Extent description
RW 33554432 VMFS "cent06-flat.vmdk"

 

# The Disk Data Base

#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "2088"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "31a3c023c7f5bebbf73470da9f0a0793"
ddb.uuid = "60 00 C2 96 48 cf 78 30-1c 26 0c 11 99 36 df 68"
ddb.virtualHWVersion = "11"

 

  • cent06.vnram → VMware 社が開発した NVRAM ファイルです。ファイルですが、不揮発性 RAM として BIOS を保持しています。
  • cent06-Snapshot1.vmsn → スナップショットの状態を保持しているファイルです。
  • cent06.vmx → 仮想マシンの設定情報を保持しています。
  • cent06vmsd → メタデータを保持しています。
  • cent06-Snapshot1.vmem → スワップファイルです。

 

スナップショットから見たイメージ形式の違い

  • RAW → スナップショットが取れない
  • QCOW2 → スナップショットが取れる
  • VMDK → スナップショットが取れる

 

RHEV or oVirt から VMware へ仮想マシンを移行する手順

解説が長くなりましたが、ここから RHEV or oVirt から VMware へ仮想マシンを移行する手順について解説します。

 

作業の流れ

まず初めに作業全体の流れです。

 

※備考

  • 【新】仮想マシン ← 移行先の仮想マシンのこと
  • 【旧】仮想マシン ← 移行元の仮想マシンのこと

 

  1. VMware ESXi 上で「【新】仮想マシン」を作成する(HDDは作らない)
  2. RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットを取得する
  3. RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットからクローンを作成する
  4. RHEV or oVirt 上で「【旧】仮想マシン」のクローンをエクスポートする
  5. RHEV or oVirt 上でエクスポートしたイメージを vmdk へ変換する
  6. イメージファイルをデータストアに scp コマンドでアップロードする
  7. 仮想マシンにローカルディスク(vmdk)を割り当てる

 

 

VMware 上で「【新】仮想マシン」を作成する(HDDは作らない)

最初に VMware からの作業になります。

vCenter もしくは ESXi にログインします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

管理画面にログインしたら「新規仮想マシンの作成」をクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「作成タイプの選択」画面が表示されたら「新規仮想マシンの作成」を選択して「次へ」ボタンをクリックします。

 

 

「仮想マシンの名前」を入力して「データセンター」を選択します。

「次へ」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「コンピューティングリソース」を選択して「次へ」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「ストレージの選択」画面で仮想マシンを保存したいストレージを選択して「次へ」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「互換性の選択」画面で「互換対象」を選択します。

「次へ」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「ゲスト OS を選択」画面で「OS」「OSのバージョン」を選択します。

「次へ」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「ハードウェアのカスタマイズ」画面で、CPU・メモリなどを設定し、「ハードディスク」を削除して「次へ」ボタンをクリックします。

※後程ハードディスクを追加します。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「設定の確認」画面で、設定内容を確認して問題がなければ「完了」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

仮想マシンが作成されたことを確認します。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットを取得する

次へ RHEV or oVirt の管理画面上から、【旧】仮想マシン(移行元の仮想マシン)のスナップショットを取得します。

 

oVirt の管理画面にログインします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

対象の「仮想マシン」を選択して右クリックし「スナップショットを作成」をクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

「スナップショットの作成」画面で説明を入力して「OK」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

スナップショットは数十秒で取得できるので、終了するまで待ちます。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットからクローンを作成する

スナップショット取得が完了したら、スナップショットを選択して右クリックして「クローン」をクリックります。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

クローンの設定画面で、値を設定して「OK」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

RHEV or oVirt 上で「【旧】仮想マシン」のクローンをエクスポートする

クローンを選択して右クリックして「エクスポート」をクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

「仮想マシンのエクスポート」画面が表示されるので、「OK」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

エクスポートドメインにエクスポートされたことを確認します。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

RHEV or oVirt 上でエクスポートしたイメージを vmdk へ変換する

RHEV or oVirt 上でエクスポートしたイメージを vmdk へ変換します。

 

初めに oVirt のホストサーバーへログインして root アカウントにスイッチします。

$ ssh ovirt-host-server

$ sudo su - 

 

イメージファイルのコンバート用ツール「qemu-img」をインストールします。

# yum install qemu-img

 

 

対象のイメージファイルを見つけます。

ただ、コマンドラインから対象のイメージを見つけるのは若干難しいです。

私の場合は「images」ディレクトリに移動してから「.ovf」ファイルの中身を見て対象のイメージファイルを確認します。

# cd [エクスポートドメインの仮想ホストが入っているディレクトリ]

# ls
dom_md images master ← こんなディレクトリ構成の中に仮想ホストがエクスポートされています。
# cd images/ ← images ディレクトリに移動します。
# ls -l
合計 16
drwxr-xr-x. 2 vdsm kvm 4096 8月 15 16:15 2017 21ba24f5-5d3b-4e05-b846-9c3245432a10
drwxr-xr-x. 2 vdsm kvm 4096 8月 15 16:15 2017 42624fa8-7cb8-442b-ab3f-29e445234096
drwxr-xr-x. 2 vdsm kvm 4096 8月 16 15:01 2017 42346652-0b87-44fd-a1a4-d38745365346
drwxr-xr-x. 2 vdsm kvm 4096 8月 15 16:15 2017 422424ff-7d91-4656-81b8-04634535f354
# grep "test" */* | less ← images ディレクトリ配下で、grep コマンドで仮想ホスト名を探します。

 

less コマンドで「fileRef」のキーワードを検索し、出てきたパスがイメージファイルのパスになります。

【例】

ovf:fileRef="422424ff-7d91-4656-81b8-04634535f354/25432452-579c-427b-a455-487d544334b4"

この場合は、「25432452-579c-427b-a455-487d544334b4」がイメージファイルになります。

 

oVirt のイメージを vmdk イメージ形式(フォーマット)としてコンバートします。

# qemu-img convert -p -O vmdk 422424ff-7d91-4656-81b8-04634535f354/25432452-579c-427b-a455-487d544334b4 /tmp/test_migration.vmdk ← 「422424ff-7d91-4656-81b8-04634535f354/25432452-579c-427b-a455-487d544334b4」はカレントディレクトリからのイメージファイルへのパスです。

 

オプション

-p   show progress of command (only certain commands)

-O  アウトプットするフォーマット

 

 

qemu-img convert コマンドが完了したら、ファイルができていることを確認します。

# ls -lh /tmp
合計 44G
-rw-r--r--. 1 root root 18G 8月 16 17:49 2017 test_migration.vmdk

 

 

 

イメージファイルをデータストアに scp コマンドでアップロードする

VMware のデータストアは ssh で接続が可能なので、vmdk ファイルを scp コマンドで直接データストアにコピーできます。

もし、ssh のポートが閉じられていたら、開けてください。

また、ssh のサービスが「無効」になっていたら「有効」に設定してください。

 

scpコマンドで .vmdk ファイルをコピーします。

# scp test_migration.vmdk [ESXiホストIPアドレス]:/vmfs/volumes/vm/test_migration

 

仮想マシンにローカルディスク(vmdk)を割り当てる

.vmdk ファイルの scp コピーが完了したら、vCenter もしくは ESXi Hypervisor 管理画面にログインします。

 

すでに新規作成している仮想マシンを選択して右クリックして「設定の編集」をクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware へ移行する手順

 

 

 

下図のように「既存のハードディスク」を選択して「追加」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware 6.5 へ移行する手順 

 

 

「追加」ボタンをクリックすると、「.vmdk」ファイルを選択する画面が表示されるので、データストアにアップロードした「.vmdk」ファイルを選択します。

選択すると、下図のように「.vmdk」が選択された状態になるので「OK」ボタンをクリックします。

oVirt or RHEV 環境から仮想マシン(イメージ)を VMware 6.5 へ移行する手順

 

 

以上で、RHEV or oVirt 環境から VMware ESXi へ「仮想マシン」を移行する手順は完了です。

 

 

 

 

まとめ

コスト面から無料なので「oVirt」を使い始めたけど、日本語の情報がないし、運用管理も大変だし、やっぱり業界スタンダードの「VMware」に切り替えたいという組織は多いのではと思います。

実際に「RHEV」、「oVirt」、「VMware」を運用してみて「VMware」が一番使い勝手がいいと思いました。

(その分料金も掛かりますが)

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。