今回はあまり例のない手順かもしれませんが、「oVirt」もしくは「RHEV(Red Hat Enterprise Virtualization)」環境から「VMware」環境へ仮想マシンを移行する手順です。
※VMware vSphere 6.5 の環境で作業をします。
長期間 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 で仮想マシンを構成しているファイル一式です。
「cent06-000001.vmdk」と「cent06.vmdk」の2つの「vmdk」ファイルがありますが、「cent06-000001.vmdk」の方に実態があります。→ つまり「xxxx-00000xx.vmdk」の形式の方に実態があります。
「cent06.vmdk」の方は
- 仮想ディスクのプロビジョニングタイプ
- SCSIコントローラの種類(LSI Logic、Bus Logic など)
など構成情報が記載されています。
「cent06.vmdk」の中身です。
# Disk DescriptorFile
# Extent description
# The Disk Data Base #DDB ddb.adapterType = “lsilogic” |
- 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 へ仮想マシンを移行する手順について解説します。
作業の流れ
まず初めに作業全体の流れです。
※備考
- 【新】仮想マシン ← 移行先の仮想マシンのこと
- 【旧】仮想マシン ← 移行元の仮想マシンのこと
- VMware ESXi 上で「【新】仮想マシン」を作成する(HDDは作らない)
- RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットを取得する
- RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットからクローンを作成する
- RHEV or oVirt 上で「【旧】仮想マシン」のクローンをエクスポートする
- RHEV or oVirt 上でエクスポートしたイメージを vmdk へ変換する
- イメージファイルをデータストアに scp コマンドでアップロードする
- 仮想マシンにローカルディスク(vmdk)を割り当てる
VMware 上で「【新】仮想マシン」を作成する(HDDは作らない)
最初に VMware からの作業になります。
vCenter もしくは ESXi にログインします。
管理画面にログインしたら「新規仮想マシンの作成」をクリックします。
「作成タイプの選択」画面が表示されたら「新規仮想マシンの作成」を選択して「次へ」ボタンをクリックします。
「仮想マシンの名前」を入力して「データセンター」を選択します。
「次へ」ボタンをクリックします。
「コンピューティングリソース」を選択して「次へ」ボタンをクリックします。
「ストレージの選択」画面で仮想マシンを保存したいストレージを選択して「次へ」ボタンをクリックします。
「互換性の選択」画面で「互換対象」を選択します。
「次へ」ボタンをクリックします。
「ゲスト OS を選択」画面で「OS」と「OSのバージョン」を選択します。
「次へ」ボタンをクリックします。
「ハードウェアのカスタマイズ」画面で、CPU・メモリなどを設定し、「ハードディスク」を削除して「次へ」ボタンをクリックします。
※後程ハードディスクを追加します。
「設定の確認」画面で、設定内容を確認して問題がなければ「完了」ボタンをクリックします。
仮想マシンが作成されたことを確認します。
RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットを取得する
次へ RHEV or oVirt の管理画面上から、【旧】仮想マシン(移行元の仮想マシン)のスナップショットを取得します。
oVirt の管理画面にログインします。
対象の「仮想マシン」を選択して右クリックし「スナップショットを作成」をクリックします。
「スナップショットの作成」画面で説明を入力して「OK」ボタンをクリックします。
スナップショットは数十秒で取得できるので、終了するまで待ちます。
RHEV or oVirt 上で「【旧】仮想マシン」のスナップショットからクローンを作成する
スナップショット取得が完了したら、スナップショットを選択して右クリックして「クローン」をクリックります。
クローンの設定画面で、値を設定して「OK」ボタンをクリックします。
RHEV or oVirt 上で「【旧】仮想マシン」のクローンをエクスポートする
クローンを選択して右クリックして「エクスポート」をクリックします。
「仮想マシンのエクスポート」画面が表示されるので、「OK」ボタンをクリックします。
エクスポートドメインにエクスポートされたことを確認します。
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 |
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 |
イメージファイルをデータストアに 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 管理画面にログインします。
すでに新規作成している仮想マシンを選択して右クリックして「設定の編集」をクリックします。
下図のように「既存のハードディスク」を選択して「追加」ボタンをクリックします。
「追加」ボタンをクリックすると、「.vmdk」ファイルを選択する画面が表示されるので、データストアにアップロードした「.vmdk」ファイルを選択します。
選択すると、下図のように「.vmdk」が選択された状態になるので「OK」ボタンをクリックします。
以上で、RHEV or oVirt 環境から VMware ESXi へ「仮想マシン」を移行する手順は完了です。
まとめ
コスト面から無料なので「oVirt」を使い始めたけど、日本語の情報がないし、運用管理も大変だし、やっぱり業界スタンダードの「VMware」に切り替えたいという組織は多いのではと思います。
実際に「RHEV」、「oVirt」、「VMware」を運用してみて「VMware」が一番使い勝手がいいと思いました。
(その分料金も掛かりますが)
コメント