openSUSE上にXenで検証環境を構築:仮想化技術の可能性も考えてみる

原和久(moonlinx)
2009-06-23 16:04:01
  • このエントリーをはてなブックマークに追加

ゲストドメインに仮想ネットワークカードを追加する

 ゲストドメインの仮想ネットワークカードの追加は、ゲストドメイン作成時に行いますが、ゲストドメイン作成後でもゲストドメインのハードウェア設定で可能です。

 この設定はGUI版YaSTから行えるほか、スクリプトベースでも設定可能です。ゲストマシンのコンフィグスクリプトは「/etc/xen/vm」配下に作成されます。

 ただし、スクリプトを書き換えても、YaST版仮想マシン管理とは同期されていないので、どの方法で仮想マシンを管理するか、統一するのが良いでしょう。

 また、NICのMACアドレスに関しては、上位6桁はXenSourceが取得している「00.16.3e」に設定されます。下位6桁は指定がない場合、ランダムで付与されますが、無用なトラブルを招かないためにも、明示的に指定するほうが良いでしょう。

ゲストマシンのコンフィグスクリプト例

 name="opensuse11" 
 uuid="9a26cdf7-321b-4213-54cd-d6341d3c428a" 
 memory=384 
 maxmem=384 
 vcpus=1 
 on_poweroff="destroy" 
 on_reboot="restart" 
 on_crash="destroy" 
 localtime=0 
 keymap="ja" 
 builder="linux" 
 bootloader="/usr/lib/xen/boot/domUloader.py" 
 bootargs="--entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen" 
 extra=" " 
 disk=[ 'file:/var/lib/xen/images/opensuse11/disk0,xvda,w', ] 
 vif=[ 'mac=00:16:3e:00:00:00,bridge=eth0', 'mac=00:16:3e:00:00:01,bridge=eth1', ] 
 vfb=['type=vnc,vncunused=1']

 上記スクリプト内の「vif=」の箇所が、ネットワークカードの設定になります。

 では次に仮想マシンの複製について解説します。

仮想マシンを複製する

 「Xenで検証環境を構築する」の冒頭で仮想マシンの複製について少し触れましたが、実際にどのように複製するかを紹介しましょう。

 まずは、仮想マシンのディスク本体を別名で複製します。

下準備

 まず、物理的に仮想ディスクを複製できるだけのHDD容量があるか確認します。仮想マシンのディスクイメージは非常に大きいので、無計画に複製を作りすぎないよう注意します。

 確認ができたら、複製する対象の仮想マシンをシャットダウンします。

複製する

 Xenの仮想ディスクは、デフォルトでは「/var/lib/xen/images/VM_Name/」配下に保存されています。コピーするターゲットのマシン名のディレクトリをそのままコピーしてしまうのが、一番楽でしょう。

 筆者の環境では、opensuse11という仮想マシンが既にあったので、それをopensuse_11-2という名前で複製しています。

 # cd /var/lib/xen/images/ 
 # cp -r opensuse11 opensuse11-2 

コンフィグスクリプトを作成する

 ディスクイメージを複製しただけでは、仮想マシンを起動することができません。よって、コンフィグスクリプトも複製する必要があります。

 コンフィグスクリプトは「/etc/xen/vm/」配下にあります。ここに、今回の場合はopensuese11というコンフィグファイルがあるので、これを複製します。なお、xmlファイルを複製する必要はありません。

 # cp opensuse11 opensuse11-2 

コンフィグファイルを編集する

 編集するのは次の4個所です。

  • 仮想マシンの名前
  • UUID
  • 仮想ディスクへのパス
  • MACアドレス

 上記は同じ仮想環境内で、必ず一意の値になるようにします。

 name="opensuse11-2" 
 uuid="9a26cdf7-321b-4213-54cd-d6341d3c428b" 
 memory=384 
 maxmem=384 
 vcpus=1 
 on_poweroff="destroy" 
 on_reboot="restart" 
 on_crash="destroy" 
 localtime=0 
 keymap="ja" 
 builder="linux" 
 bootloader="/usr/lib/xen/boot/domUloader.py" 
 bootargs="--entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen" 
 extra=" " 
 disk=[ 'file:/var/lib/xen/images/opensuse11-2/disk0,xvda,w', ] 
 vif=[ 'mac=00:16:3e:00:00:02,bridge=eth0', 'mac=00:16:3e:00:00:03,bridge=eth1', ] 
 vfb=['type=vnc,vncunused=1'] 

 以上で複製は完了です。では次に複製したマシンを起動してみましょう。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]