xen環境構築
xenの環境構築手順
環境
OS : Debian(squeeze)
xenのインストール
必要なものをaptでインストールします。
# aptitude update # aptitude install bridge-utils debootstra # aptitude install xen-linux-system-2.6.32-5-xen-amd64 # aptitude install xen-tools # aptitude install linux-headers-2.6.32-5-common-xen
xend-config.sxpの編集
# cp -p /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.orig # vi /etc/xen/xend-config.sxp ------------------------------------------------ # (network-script network-bridge) ↓ (network-script network-bridge) ------------------------------------------------
grubの修正
起動順番を変更します。
まずは現状をチェック。
$ grep menuentry /boot/grub/grub.cfg ------------------------------------------------ menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64' --class debian --class gnu-linux --class gnu --class os --class xen { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os --class xen { ------------------------------------------------
何もしないとDebian GNU/Linux, with Linux 2.6.32-5-xen-amd64が起動します。
Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64が通常起動するように修正します。
# mv -i /etc/grub.d/10_linux /etc/grub.d/21_linux # update-grub ------------------------------------------------ Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64 Found initrd image: /boot/initrd.img-2.6.32-5-xen-amd64 Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64 Found initrd image: /boot/initrd.img-2.6.32-5-xen-amd64 Found linux image: /boot/vmlinuz-2.6.32-5-amd64 Found initrd image: /boot/initrd.img-2.6.32-5-amd64 done ------------------------------------------------
起動順番を確認。
$ grep menuentry /boot/grub/grub.cfg ------------------------------------------------ menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64' --class debian --class gnu-linux --class gnu --class os --class xen { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os --class xen { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os { menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { ------------------------------------------------
Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64が最初に起動されるようになりました。
save/restore動作の変更
xenの終了時にログを残さないようにします
# vi /etc/default/xendomains ------------------------------------------------ #XENDOMAINS_RESTORE=true XENDOMAINS_RESTORE=false #XENDOMAINS_SAVE=/var/lib/xen/save XENDOMAINS_SAVE="" ------------------------------------------------
再起動
# reboot
再起動後にxm listを実行してみます
# xm list ------------------------------------------------ Name ID Mem VCPUs State Time(s) Domain-0 0 7192 8 r----- 9.1 ------------------------------------------------
これでDomain-0が完了しました。
Domain-U (guests)作成ファイルの修正
# vi /etc/xen-tools/xen-tools.conf 環境に合わせて変更します。 ------------------------------------------------ size = 50Gb # Disk image size. memory = 512Mb # Memory size swap = 2Gb # Swap size # Default gateway and netmask for new VMs gateway = x.x.x.x netmask = 255.255.255.0 # When creating an image, interactively setup root password passwd = 1 # Let xen-create-image use pygrub, so that the grub from the VM is used, which means you no longer need to store kernels outside the VMs. Keeps things very flexible. pygrub=1 ------------------------------------------------
Domain-Uの作成
ipアドレスとホスト名を指定して実行します。
# xen-create-image --ip xxx.xxx.xxx.xxx --hostname hoge --passwd
これでDomain-Uが作成できました。
Domain-Uの自動起動
Domain-0が起動した際に自動で起動するように設定します。
Domain-0での作業します。
起動ファイルをxen-ryutekiとします。
xendが起動した後に起動するようにして、xendが終了するよりも前に終了するようにします。
# vi /etc/init.d/xen-ryuteki ------------------------------------------------ #!/bin/sh ### BEGIN INIT INFO # Provides: xen-ryuteki # Required-Start: $network xend # Required-Stop: xend # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: xen-ryuteki start/stop script # Description: Start and stop xen-ryuteki # placed in /etc/init.d. ### END INIT INFO domain=ryuteki case "$1" in start) xm create ${domain}.cfg ;; stop) xm shutdown $domain ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac ------------------------------------------------
自動起動の設定
# update-rc.d xen-ryuteki defaults
参考URL
こちらを参考にしました。
http://wiki.debian.org/Xen