OSイメージをコピーしてバックアップとして残すのと同時に、二つ目の仮想OSを起動する方法です。
作業はリモートから putty でアクセス。その後、rootになって行ないます。
まずは xm 設定ファイルがある事を確認します。
このサイトの中の手順通りに構築している場合は、「What is the name of your virtual machine?」で問われた時に入力した名前。
もしくはxm listで表示される名称になります。
今回の場合、仮想OS名をlabsixwishにしています。
では確認してみます。
[root@sixwish ~]# cd /etc/xen/ [root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1764 2 r----- xxx.x labsixwish x 255 1 -b---- xxx.x [root@sixwish xen]# ls auto scripts xend-pci-quirks.sxp xmexample1 labsixwish xend-config.sxp xmexample.hvm xmexample2 qemu-ifup xend-pci-permissive.sxp xmexample.vti [root@sixwish xen]# cat labsixwish # Automatically generated xen config file name = "labsixwish" memory = "256" disk = [ 'tap:aio:/var/lib/xen/images/labsixwish.pvm.img,xvda,w', ] vif = [ 'mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0', ] uuid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" bootloader="/usr/bin/pygrub" vcpus=1 on_reboot = 'restart' on_crash = 'restart' [root@sixwish xen]#
上から何を行なっているかというと
今回は名称がわかっているのでcatで内容を表示しています。似たような方式で書かれているファイルがあればそれが当りである可能性が高いです。
判別する方法としては、仮想OSのイメージファイルの保存場所(disk = で始まる個所に表示されている)にファイルが有るかを確認すればよいでしょう。
イメージファイルを確認します。
イメージファイルの場所は設定ファイル中の記述をベースに探すのがベター。
[root@sixwish xen]# ls -l /var/lib/xen/images/labsixwish.pvm.img -rwxr-xr-x 1 root root 10737418241 8月 28 18:55 /var/lib/xen/images/labsixwish.pvm.img [root@sixwish xen]#
これでファイルを確認しました。
一旦、仮想OSをシャットダウンします。
[root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1764 2 r----- 28.9 labsixwish 1 255 1 -b---- 14.3 [root@sixwish xen]# xm shutdown labsixwish -w Domain labsixwish terminated All domains terminated [root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 1764 2 r----- 29.7 [root@sixwish xen]#
-wのオプションは完全にシャットダウンするまで応答を返さないというものです。
コマンド実行後、しばらく待たされますが正常だと思うので気長に待ちましょう。
応答が返ってきたら、xm listで仮想OSの稼動状態を確認しておきます。
OSのイメージファイルのバックアップをコピーします。
今回は、CentOS 5 on Xen(CnetOS5) Domain-U用最小化手順を行なった後のファイルを想定しています。
今後、このファイルをベースに実験、構築を行ないやすいようにするのが目的でもあります。
[root@sixwish xen]# cd /var/lib/xen/ [root@sixwish xen]# mkdir images-backup [root@sixwish xen]# cp -v images/labsixwish.pvm.img images-backup/mini-centos5.pvm.img `images/labsixwish.pvm.img' -> `images-backup/mini-centos5.pvm.img' [root@sixwish xen]# ls -l images 合計 1491656 -rwxr-xr-x 1 root root 10737418241 8月 28 18:58 labsixwish.pvm.img [root@sixwish xen]# ls -l images-backup/ 合計 1152180 -rwxr-xr-x 1 root root 10737418241 8月 28 19:06 mini-centos5.pvm.img [root@sixwish xen]# cp -v /etc/xen/labsixwish ./images-backup/mini-centos5 `/etc/xen/labsixwish' -> `./images-backup/mini-centos5' [root@sixwish xen]#
これでバックアップが終わりです。
本来はlsでサイズをみるだけではなく、md5sum などでチェックした方が良いのですがとりあえず。
OSイメージをコピー、設定ファイルを書き換えて起動まで持っていきます。
とりあえず仮想OSの名称は「lab2sixwish」とします。
[root@sixwish xen]# cp -v images/labsixwish.pvm.img images/lab2sixwish.pvm.img `images/labsixwish.pvm.img' -> `images/lab2sixwish.pvm.img' [root@sixwish xen]# ls -l images 合計 2643836 -rwxr-xr-x 1 root root 10737418241 8月 28 19:17 lab2sixwish.pvm.img -rwxr-xr-x 1 root root 10737418241 8月 28 18:58 labsixwish.pvm.img [root@sixwish xen]# cd /etc/xen/ [root@sixwish xen]# cp -v labsixwish lab2sixwish `labsixwish' -> `lab2sixwish' [root@sixwish xen]#
ファイルのコピーが終了後、設定ファイルを修正していきます。
# Automatically generated xen config file name = "labsixwish" memory = "256" disk = [ 'tap:aio:/var/lib/xen/images/labsixwish.pvm.img,xvda,w', ] vif = [ 'mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0', ] uuid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" bootloader="/usr/bin/pygrub" vcpus=1 on_reboot = 'restart' on_crash = 'restart'
設定ファイル中、変更しなければならないのは強調してある四つの項目です。
nameは仮想OSの名称、diskはOSイメージの保存場所、vifは仮想LANインターフェース、uuidは識別IDです。
では変更するための準備を行ないます。
まず、uuidとvifのmacアドレスを生成します。
[root@sixwish xen]# vi /etc/xen/scripts/macgen.py
新規にスクリプトを作成します。
#! /usr/bin/python # macgen.py script generates a MAC address for Xen guests # import random mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] print ':'.join(map(lambda x: "%02x" % x, mac))
(上記スクリプトは19.22. MAC アドレス生成の為のスクリプト作成から引用しています)
[root@sixwish xen]# python scripts/macgen.py 00:16:3e:0f:e4:1b ←(サンプル) [root@sixwish xen]# uuidgen 157dbeaf-d4eb-468b-9bbf-a26a0f5ca63e ←(サンプル) [root@sixwish xen]#
新規に作成したmacgen.pyというスクリプトを使用して、ランダムなMACアドレスを生成します。
ぶつかる事は無いと思いますが、何か不具合が出た場合はこの値を再生成する事で回避できる事があります。
uuidgenは、uuidを生成しています。
これらの値を用いて、Xenの設定ファイルを変更していきます。
[root@sixwish xen]# vi lab2sixwish
*** labsixwish YYYY-mm-dd hh:ii:ss.000000000 +0900 --- lab2sixwish YYYY-mm-dd hh:ii:ss.000000000 +0900 *************** *** 1,10 **** # Automatically generated xen config file ! name = "labsixwish" memory = "256" ! disk = [ 'tap:aio:/var/lib/xen/images/labsixwish.pvm.img,xvda,w', ] ! vif = [ 'mac=xx:xx:xx:xx:xx:xx, bridge=xenbr0', ] ! uuid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" bootloader="/usr/bin/pygrub" vcpus=1 on_reboot = 'restart' --- 1,10 ---- # Automatically generated xen config file ! name = "lab2sixwish" memory = "256" ! disk = [ 'tap:aio:/var/lib/xen/images/lab2sixwish.pvm.img,xvda,w', ] ! vif = [ 'mac=00:16:3e:0f:e4:1b, bridge=xenbr0', ] ! uuid = "157dbeaf-d4eb-468b-9bbf-a26a0f5ca63e" bootloader="/usr/bin/pygrub" vcpus=1 on_reboot = 'restart'
[root@sixwish xen]#
設定が終わったら、元の仮想OSが起動していないことを確認してから、複製した仮想OSを起動します。
[root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 510 2 r----- 136.7 [root@sixwish xen]# xm create lab2sixwish Using config file "./lab2sixwish". Going to boot CentOS (2.6.18-8.1.8.el5xen) kernel: /vmlinuz-2.6.18-8.1.8.el5xen initrd: /initrd-2.6.18-8.1.8.el5xen.img Started domain lab2sixwish [root@sixwish xen]#
しばらくしてから、起動したかを確認する。
[root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 510 2 r----- 139.0 lab2sixwish 1 255 1 -b---- 17.0 [root@sixwish xen]#
そうしたら、[lab2sixwish]のコンソールに移ります。
[root@sixwish xen]# xm console lab2sixwish Linux version 2.6.18-8.1.8.el5xen (mockbuild@builder4.centos.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Tue Jul 10 08:51:27 EDT 2007 BIOS-provided physical RAM map: Xen: 0000000000000000 - 0000000010800000 (usable) 0MB HIGHMEM available. 264MB LOWMEM available. NX (Execute Disable) protection: active (中略) CentOS release 5 (Final) Kernel 2.6.18-8.1.8.el5xen on an i686 labsixwish login: root Password: Last login: Tue Aug 28 16:04:42 from 172.16.2.70 [root@labsixwish ~]#
そうしたら、ホスト名、IPアドレスを変更します。
詳しい説明抜きで書くので、わからないところは調べて下さい。
まずは、基本となるhostsファイルの変更
[root@labsixwish ~]# vi /etc/hosts
*** /etc/hosts.`date -I` YYYY-mm-dd hh:ii:ss.000000000 +0900 --- /etc/hosts YYYY-mm-dd hh:ii:ss.000000000 +0900 *************** *** 1,4 **** # Do not remove the following line, or various programs # that require network functionality will fail. ! 127.0.0.1 labsixwish localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 --- 1,4 ---- # Do not remove the following line, or various programs # that require network functionality will fail. ! 127.0.0.1 lab2sixwish localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
[root@labsixwish ~]#
意外とも思える場所にもhostnameが書いてあるので、そこも修正。
[root@labsixwish ~]# vi /etc/sysconfig/network
*** /etc/sysconfig/network.`date -I` YYYY-mm-dd hh:ii:ss.000000000 +0900 --- /etc/sysconfig/network YYYY-mm-dd hh:ii:ss.000000000 +0900 *************** *** 1,3 **** NETWORKING_IPV6=yes ! HOSTNAME=labsixwish GATEWAY=172.16.0.1 --- 1,3 ---- NETWORKING_IPV6=yes ! HOSTNAME=lab2sixwish GATEWAY=172.16.0.1
[root@labsixwish ~]#
続いてIPアドレスの変更
[root@labsixwish ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
*** /etc/sysconfig/network-scripts/ifcfg-eth0.`date -I` YYYY-mm-dd hh:ii:ss.000000000 +0900 --- /etc/sysconfig/network-scripts/ifcfg-eth0 YYYY-mm-dd hh:ii:ss.000000000 +0900 *************** *** 2,8 **** DEVICE=eth0 BROADCAST=172.16.15.255 ! HWADDR=xx:xx:xx:xx:xx:xx ! IPADDR=172.16.2.72 IPV6ADDR= IPV6PREFIX= NETMASK=255.255.240.0 --- 2,8 ---- DEVICE=eth0 BROADCAST=172.16.15.255 ! HWADDR=00:16:3e:0f:e4:1b ! IPADDR=172.16.2.73 IPV6ADDR= IPV6PREFIX= NETMASK=255.255.240.0
[root@labsixwish ~]#
設定できたら、ログアウトしてdomain-0のコンソールに復帰します。
[root@labsixwish ~]# logout CentOS release 5 (Final) Kernel 2.6.18-8.1.8.el5xen on an i686 labsixwish login: (Ctrl + ])[root@sixwish xen]#
復帰したら、仮想OSを再起動して、SSHで接続できるかを試みます。
[root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 510 2 r----- 139.0 lab2sixwish 1 255 1 -b---- 17.0 [root@sixwish xen]# xm reboot lab2sixwish [root@sixwish xen]#
しばらくしたら、SSHで接続を試みます。
[root@sixwish xen]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 510 2 r----- 139.0 lab2sixwish 2 255 1 -b---- 17.0 [root@sixwish xen]# ssh 172.16.2.73 The authenticity of host '172.16.2.73 (172.16.2.73)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.16.2.73' (RSA) to the list of known hosts. root@172.16.2.73's password: Last login: Thu Nov 1 16:18:40 2007 [root@lab2sixwish ~]#
アクセスできれば完了。
自動起動の設定は、複製元のと同じなのでその手順を参考の事。