[VM] Converting an Oracle VM VirtualBox VM into an Oracle VM Server image

VirtualBoxのVMイメージを、Oracle VMのイメージに変換する方法をご紹介します。

(1) 事前設定
Virtual BoxでVMを作成します(ここではOracle LinuxのVMを作成しています)。/etc/fstabはLABELを使い、デバイス名をハードコードしている場合はLABELを使うように編集します。

つまり、 
/dev/sda1 /u01 ext3 defaults 1 1
ではなく、 
LABEL=foo /u01 ext3 defaults 1 1
という表記を利用するか、
/dev/VolGroup00/LVfoo /u01 ext3 defaults 1 1
のように論理名を使用します。

これは、異なるハイパーバイザー上では異なるデバイス名を持つ可能性があるためです。例えば、Oracle VMではIDEディスクにしていたのに、Virtual Box VMはSCSIディスクとして扱われる可能性があります。その場合、/dev/sda/dev/hdaと変更することで、OSのブートが容易になります。

(2) VMイメージファイルの変換
変換したいVMイメージがある場合、Virtual VoxのVMを停止し、イメージファイルを変換します。
各VMイメージに対して、以下のコマンドを実行します。

VBoxManage clonehd {VirtualBox VMファイル名} {Oracle VMイメージファイル名} --format raw

(3) vm.cfg ファイルを作成します。
VirtualBoxイメージから変換したVMを実行するために、Oracle VM Server用に vm.cfg ファイルを作成する必要があります。もっとも簡単に作成する方法は、シンプルなhvmのvm.cfgを使って編集することです。以下に例を示します。

acpi = 1
apic = 1
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
disk = ['file:system.img,hda,w', 'file:oracle.img,hdb,w',',hdc:cdrom,r',]
kernel = '/usr/lib/xen/boot/hvmloader'
memory = '1024'
name = 'vmname'
on_crash = 'restart'
on_reboot = 'restart'
pae = 1
serial = 'pty'
timer_mode = '0'
usbdevice = 'tablet'
vcpus = 1
vif = ['bridge=xenbr0,type=ioemu']
vif_other_config = []
vnc = 1
vncconsole = 1
vnclisten = '0.0.0.0'
vncpasswd = ''
vncunused = 1


上記のVMを利用する場合、以下の項目について編集が必要です。
  • disk = (仮想ディスクの在処を追加) 
  • memory = (VMで必要なメモリの量)
  • name = (VMの名前)
  • vif = (bridge=xenbr0 から仮想インターフェースを変更したい場合)
仮想CPUを複数個使う場合など、その他何らかの変更をする場合には、変更にあった編集が必要です。

(4) これらのファイルを Oracle VM Server もしくはサブディレクトリのWebサーバーにコピーし、Oracle VMマネージャーを使ってテンプレートをインポートします。後は、xm create vm.cfg でVMを起動するだけです。

以上で作業は終了です。一部基本的な問題だけを考慮すれば、比較的簡単にVMを変換できます。
勘所は、/etc/fstab でラベルを使ってファイルシステムを構成することです。
その他、ネットワーク構成において問題が発生するかもしれません。きれいに設定したい場合、VMをシャットダウンする前に、/etc/modprobe.conf を変更するか、もしくはvm.cfg の vif の行にVMのMACアドレスを追加する必要があります。
それだけ実施しておけば、たとえ仮想マシンの変更があったとしても、少なくともLinuxでは、問題なく動くでしょう。

原文はこちら。
http://blogs.oracle.com/wim/2011/01/converting_an_oracle_vm_virtua.html

0 件のコメント:

コメントを投稿