イメージファイルにゲストOSを構築2009/04/20 |
[1] | これまでLVMの論理ボリュームにゲストOSを構築してきましたが、VMware などのように一つのイメージファイルを作成し、
その中へゲストOSを構築してみます。 これまでのやり方だと、普通にCD/DVDからインストールできる、OS標準の機能でアクセスできる、 処理性能が高い、といった利点がある上、元々のカーネルを利用して普通にドメイン0としても起動できます。 ただし、このやり方はゲストOSを増やすときに、雛形を作っておいてもそれなりに作業が発生し、多少面倒です。 また他のXen環境にも移行しにくいです。 対して、イメージファイルを作成してそこへ作る場合、OS標準の機能だけでは イメージファイルを利用できないため処理性能は低下しますが、 バックアップをとるのはイメージファイル一つをコピーするだけであったり、 他のXen環境に移行しやすかったりと、管理がしやすいことが利点です。 また、イメージファイルへのインストール方法ですが、通常はこのやり方はCD/DVDからはインストールできないので、 手作業で環境を構築し、さらに yum でベースシステムをネットワークインストールすることになるので時間がかかりますが、 ここでは(3) の [3] で作成しておいた雛形を使って作成します。 |
[root@ns ~]# mkdir /var/xen [root@ns ~]# dd if=/dev/zero of=/var/xen/lan.img bs=1 count=1 seek=20G 1+0 records in 1+0 records out 1 byte (1 B) copied, 7.8e-05 seconds, 12.8 kB/s [root@ns ~]# dd if=/dev/zero of=/var/xen/lan.swap bs=1 count=1 seek=1G 1+0 records in 1+0 records out 1 byte (1 B) copied, 8e-05 seconds, 12 kB/s [root@ns ~]# [root@ns ~]# mkswap /var/xen/lan.swap Setting up swapspace version 1, size = 1073737 kB [root@ns ~]# mkfs -t ext3 -F /var/xen/lan.img mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 2621440 inodes, 5242880 blocks 262144 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 160 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@ns ~]# mount -o loop /var/xen/lan.img /mnt [root@ns ~]# cp root.tgz /mnt/ # (3)の[3]で作成した雛形をコピー [root@ns ~]# cd /mnt [root@ns mnt]# tar zxvf root.tgz [root@ns mnt]# rm -f root.tgz [root@ns mnt]# cp /root/usr.tgz usr/ # (3)の[3]で作成した雛形をコピー [root@ns mnt]# cd usr [root@ns usr]# tar zxvf usr.tgz [root@ns usr]# rm -f usr.tgz [root@ns usr]# cd ../var [root@ns var]# cp /root/var.tgz ./ # (3)の[3]で作成した雛形をコピー [root@ns var]# tar zxvf var.tgz [root@ns var]# rm -f var.tgz [root@ns var]# cd ../ [root@ns mnt]# vi etc/fstab # 今回は / と swap しか作成していないため、いらない所を削除して以下のようにする /dev/hda1 / ext3 defaults 1 1 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 [root@ns mnt]# vi etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME= lan .server-linux.info # ホスト名変更 GATEWAY=192.168.0.1 [root@ns mnt]# vi etc/sysconfig/network-scripts/ifcfg-eth0 # Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 #HWADDR=00:13:72:0F:00:80 IPADDR=192.168.0. 31 # IPアドレス変更 IPV6ADDR= IPV6PREFIX= NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes [root@ns mnt]# vi etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 lan .server-linux.info lan localhost.localdomain localhost::1 localhost6.localdomain6 localhost6 [root@ns mnt]# [root@ns ~]# umount /mnt [root@ns ~]# cp /etc/xen/www /etc/xen/lan [root@ns ~]# vi /etc/xen/lan # 以下のように変更 kernel = "/boot/vmlinuz-2.6.18-8.1.1.el5xen" ramdisk = "/boot/initrd-2.6.18-8.1.1.el5xen.img" memory = "512" name = " lan "vcpus = "2" nicks = "1" vif = [ 'mac=00:16:3e:00:00: 20 ,bridge=xenbr0' ]disk = [ ' file:/var/xen/lan.img,hda1,w ',' file:/var/xen/lan.swap,hda2,w ' ]root = "/dev/hda1 ro" extra = "3" [root@ns ~]# xm create -c lan CentOS release 5 (Final) Kernel 2.6.18-8.1.3.el5xen on an i686 lan.server-linux.info login: # ゲストOS起動完了 [root@lan ~]# chmod 1777 /tmp # アクセス権修正
|
[2] | 作ったイメージファイルを雛形としてとっておきます。 |
[root@ns ~]# # ホストOS上 [root@ns ~]# cp /var/xen/lan.img /root/root.img [root@ns ~]# cp /var/xen/lan.swap /root/swap.img [root@ns ~]# total 3957992 -rw------- 1 root root 1333 May 11 18:39 anaconda-ks.cfg -rw-r--r-- 1 root root 18026 May 11 18:39 install.log -rw-r--r-- 1 root root 2889 May 11 18:39 install.log.syslog -rw-r--r-- 1 root root 21474836481 May 11 18:39 root.img -rw-r--r-- 1 root root 60396721 May 11 18:39 root.tgz -rw-r--r-- 1 root root 1073741825 May 11 18:39 swap.img -rw-r--r-- 1 root root 299138604 May 11 18:39 usr.tgz -rw-r--r-- 1 root root 88646338 May 11 18:39 var.tgz |
[3] | イメージファイルのゲストOSを追加してみます。 |
[root@ns ~]# cp root.img /var/xen/rx7.img [root@ns ~]# cp swap.img /var/xen/rx7.swap [root@ns ~]# mount -o loop /var/xen/rx7.img /mnt [root@ns ~]# vi /mnt/etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME= rx7 .server-linux.info # ホスト名変更 GATEWAY=192.168.0.1 [root@ns ~]# vi /mnt/etc/sysconfig/network-scripts/ifcfg-eth0 # Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 #HWADDR=00:13:72:0F:00:80 IPADDR=192.168.0. 32 # IPアドレス変更 IPV6ADDR= IPV6PREFIX= NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes [root@ns ~]# umount /mnt [root@ns ~]# cp /etc/xen/lan /etc/xen/rx7 [root@ns ~]# vi /etc/xen/rx7 # 以下のように変更 kernel = "/boot/vmlinuz-2.6.18-8.1.1.el5xen" ramdisk = "/boot/initrd-2.6.18-8.1.1.el5xen.img" memory = "512" name = " rx7 "vcpus = "2" nicks = "1" vif = [ 'mac=00:16:3e:00:00: 21 ,bridge=xenbr0' ]disk = [ ' file:/var/xen/rx7.img,hda1,w ',' file:/var/xen/rx7.swap,hda2 ' ]root = "/dev/hda1 ro" extra = "3" [root@ns ~]# xm create -c rx7 CentOS release 5 (Final) Kernel 2.6.18-8.1.3.el5xen on an i686 rx7.server-linux.info login: # ゲストOS起動完了 [root@rx7 ~]# chmod 1777 /tmp # アクセス権修正 [root@ns ~]# # ホストOS上 [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 -b---- 10.8 rx7 4 511 2 -b---- 13.9 mail 2 511 2 -b---- 19.4 www 1 511 2 -b---- 12.3 |
Sponsored Link |
|