Jan 022009
CentOS 5.2のXen環境にDomain-U Debian(sid)を構築してみた。
ディスクはイメージファイルではなく、論理ボリューム区画を割り当てている。
論理ボリューム区画にしてみたのは、将来ディスク領域が不足したときDomain0で割り当てを増やし(lvextend)、DomainUでファイルシステムをオンラインリサイズ(ext2online)できないものかと考えたから。
論理ボリュームの割り当てとフォーマット
vg00はCentOSセットアップ時に作成したボリュームグループ。
# lvcreate -L 96M -n debian_boot vg00 # lvcreate -L 1024M -n debian_swap vg00 # lvcreate -L 8192M -n debian_root vg00 # mke2fs -j /dev/vg00/debian_boot # mke2fs -j /dev/vg00/debian_root # mkswap /dev/vg00/debian_swap
論理ボリュームをマウント
# mkdir /mnt/debian # mount /dev/vg00/debian_root /mnt/debian # mkdir /mnt/debian/boot # mount /dev/vg00/debian_boot /mnt/debian/boot
debootstrapコマンドの準備
debootstrapコマンドをインストール。rpmパッケージ管理外のファイルが/usr/binや/usr/lib直下に配置されるが良しとする。
# cd /usr/local/src # wget -N http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3.2_all.deb # yum -y install binutils # ar -x debootstrap_0.3.3.2_all.deb # cd / # zcat /usr/local/src/data.tar.gz | tar xvp
Debianインストール
debootstrapコマンドで論理ボリューム上にDebianをインストール。
# /usr/sbin/debootstrap --arch amd64 sid /mnt/debian http://ftp.jp.debian.org/debian
セットアップ
セットアップのためインストールしたDebianにchrootする。
# chroot /mnt/debian # mount -t proc proc /proc
# /etc/fstab: static file system information. # /dev/sda1 /boot ext3 ro,nosuid,nodev 0 2 /dev/sda2 / ext3 defaults 0 1 /dev/sda3 none swap sw 0 0 proc /proc proc defaults 0 0
# aptitude install linux-image-xen-amd64
以下を追加。ラベルは重複しないものを適当に割り当てた。
h0:12345:respawn:/sbin/getty 38400 hvc0 x0:12345:respawn:/sbin/getty 38400 xvc0
ちなみにDebian sidの場合、hvcもxvcも/etc/securettyには定義済み(以下、抜粋)。
# Standard hypervisor virtual console hvc0 # Oldstyle Xen console xvc0
boot=/dev/sda default=0 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Debian (2.6.26-1-xen-amd64) root (hd0,0) kernel /vmlinuz-2.6.26-1-xen-amd64 ro root=/dev/sda2 xencons=xvc console=xvc0 initrd /initrd.img-2.6.26-1-xen-amd64
kernelパラメータにXen用コンソール定義、xvcを追加している。
# cd /boot/grub # ln -s grub.conf menu.lst
(hd0) /dev/sda
DomainU設定ファイル作成
/etc/xen/debianで作成
name = "debian" uuid = "4917533f-38ac-4650-a342-dd468650b2d3" maxmem = 384 memory = 384 vcpus = 1 bootloader = "/usr/bin/pygrub" disk = [ 'phy:vg00/debian_boot,sda1,w', 'phy:vg00/debian_root,sda2,w', 'phy:vg00/debian_swap,sda3,w' ] vif = [ "mac=00:16:3e:27:ea:aa,bridge=xenbr0" ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart'
uuidはuuidgenを使って生成。
vifのMACアドレスは『19.22. MAC アドレス生成の為のスクリプト作成』に掲載されているmacgen.pyスクリプトを用意して生成。
最初の目的であるファイルシステム拡張がおこなえるかどうかは後日。
参考サイト
- Xen 3.0 User Manual – 6. Storage and File System Management
- D.3. Unix/Linux システムからの Debian GNU/Linux のインストール
- Domain Uのコンソールが表示されない時の対処法 – int128 Geek Not Found
- Xen and the linux console (PDF)
Sorry, the comment form is closed at this time.