Linux/CentOS + Xen

CentOS + Xen

CentOSをインストール

下記のようにインストール

  • 開発ツールにチェック
  • 仮想化にチェック
  • 「ファイアウオールの設定」では「ファイアウォールなし(O)」
  • 「SELinuxを有効にしますか?(S)」では「無効」

ゲストOSのインストール

# virt-install \
-n SVVCO51 \
-f /var/lib/xen/images/SVVCO501.img \
-s 20 \
-r 256 \
-l ftp://ftp.riken.jp/Linux/centos/5.2/os/i386 \
--nographics

仮想マシンマネージャを起動

[アプリケーション]→[システムツール]→[Virtual Machine Manager]

DomainUにFreeBSDを入れる

FreeBSDをまずは普通にインストールし、cvsupをインストール

Xen対応ソースを入手

# cp /usr/share/examples/cvsup/stable-supfile /etc/xen-supfile
*default host=CHANGE_THIS.FreeBSD.org
             ↓
*default host=cvsup.jp.FreeBSD.org
*default release=cvs tag=RELENG_7
             ↓ 
*default release=cvs tag=.
# cvsup /etc/xen-supfile

ディスクイメージファイルの用意

ディスクイメージ用のファイル領域を確保。確保する容量は適宜調整(この場合、1024byte * 10M blockで、10GB確保している)

# dd if=/dev/zero of=freebsd.img bs=1k count=10M 

書き出したファイル"freebsd.img"を、デバイス/dev/md0とする

# mdconfig -a -t vnode -f freebsd.img -u 0 

ラベルの初期化

# bsdlabel -w /dev/md0 

ラベル編集

# bsdlabel -e /dev/md0 
---------------------------------------------------------------------------
# /dev/md0:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  3670000        0    4.2BSD     2048 16384 28552 
  b:   524288  3670000      swap                    
  c:  4194304        0    unused        0     0         # "raw" part, don't edit

ファイルシステムを初期化

# newfs /dev/md0a
# newfs /dev/md0b
# newfs /dev/md0c

ディスクイメージを/mntディレクトリにマウント

# mount /dev/md0a /mnt

Xen対応ソースをビルド・ディスクイメージ内にインストール

# cd /usr/src
# make buildworld
# make installworld DESTDIR=/mnt

Xen対応カーネルをビルド・インストール

# make buildkernel KERNCONF=XEN
# make installkernel KERNCONF=XEN DESTDIR=/mnt
# make distribution DESTDIR=/mnt

/mnt/etc/fstab を以下のようにする。

デバイス名の数字"769"は変更可能(Xenの設定ファイルで指定する予定の値)

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/xbd769b            none            swap    sw              0       0
/dev/xbd769a            /               ufs     rw              1       1

/mnt/etc/ttys で ttyv の行をコメントアウトして、次のような行を足す。

xc0     "/usr/libexec/getty Pc"         vt100   on  secure
# cp /mnt/boot/kernel/kernel freebsd.kern
# umount /mnt
# mdconfig -d -u 0

freebsd.imgと、freebsd.kernの2つのファイルをDom0 環境へコピー

Dom0 環境へコピーした。xen の設定は

name = "freebsd_test"
kernel ="/freebsd/freebsd.kern"
uuid = "e788b52c-e71c-d317-ccac-98be22e9c86a"
maxmem = 256
memory = 128
vcpus = 1
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [  ]
disk = [ "file:/freebsd/images/freebsd.img,hda1,w" ]
vif = [ "mac=00:16:3e:a3:3d:df,bridge=xenbr0" ]
extra = "boot_verbose"
extra += ",boot_single"
extra += ",kern.hz=100"
extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"

※uidは適当に設定する。

※vif内のmac=以降はMACアドレスの指定。後半48bit[a3:3d:df]を、ランダムの値で設定する。

※xbd769は、FreeBSDのディスクイメージ内の設定ファイル"fstab"内で指定した数字と合わせる。

xenコマンド

vmの一覧

xm list 
xm create -c vm001 

vmの起動

xm create vm001 

console接続

xm console vm001 

hostに

Crtl + ] 
shutdown 
xm shutdown vm001 

強制終了

xm destroy vm001 

再起動

xm reboot vm001