XEN : xen server で楽々ゲストOS増殖!!
完全に個人的なメモ書きですが、xenサーバってvmwareに比べて、構築が楽!!テンプレートさえ作っておけば、あと、コピー、コピー、そしてコピーで簡単にゲストOSを増殖できます・・ XENサーバが構築済みの前提で、どうやって、ゲストを増殖させるかのメモを以下に記載していきたいと思います。
1.前準備 前準備っていうか、はじめのはじめは、ちゃんとゲストOSをセットアップする必要がございます。下記のセットアップにて、/var/lib/xen/images/template01.imgという20GBのファイルと、512MBのメモリを搭載したCENTOSの出来上がりーです。ちなみに下記パラメータで --location=http://192.168.101.98/centosの箇所があると思いますが、私の場合、xen-serverのホストOS上にapacheを立てており、その中でcentosインストールセットを入れております [shell]
virt-install --paravirt \
--name=template01 \ --vcpus=1 \ --ram=512 \ --file=/var/lib/xen/images/template01.img \ --file-size=20 \ --location=http://192.168.101.98/centos \ --bridge=xenbr0 \ --nographics \ --nonsparse [/shell] ※セットアップが完了したら可能な限り、updatedbや、共通で設定が必要なもの(LDAP、NFS、NTPとか)を入れておきましょう(後でゲストOSを複製する際の手間が省けます) 2.上記1の作業にて以下のファイルが作成されます。 [shell] [root@xensvr01 xen]# pwd /etc/xen [root@xensvr01 xen]# ll temp -rw------- 1 root root 329 7月 24 14:09 template01 [root@xensvr01 images]# pwd /var/lib/xen/images [root@xensvr01 images]# ll temp -rwxr-xr-x 1 root root 21474836480 7月 24 21:43 template01.img [/shell]
3.作成した上記のファイルを元にゲストOSを作成します。作業内容は、コンフィグファイルとイメージファイルのコピーです。例では、『guest01』というゲストOSを作成する例です。 [shell] [root@xensvr01 xen]# pwd /etc/xen [root@xensvr01 xen]# cp -a template01 guest01 [/shell]
コンフィグファイル内のuuidにはユニークな値を設定する必要があります。そこでuuidgenコマンドを利用してユニークなuuidを取得します [shell] [root@xensvr01 xen]# uuidgen f7591bfe-e528-4b5c-bb04-8d3dc9c5ec71 [/shell]
上記同様、ネットワークアドレス(macアドレスもユニークにする必要があります)こちらに関しては、ユニークなMACアドレスを出力するコマンドはありませんので既存のゲストOSと重複しないようその他のファイルのmacアドレスと照らし合わせます。 [shell] [root@xensvr01 xen]# pwd /etc/xen [root@xensvr01 xen]# grep -r 'mac=' *|grep -v scripts | grep -v xmexample | grep -v auto xenvmdev01:vif = [ "mac=00:22:36:4a:83:7b,bridge=xenbr0,script=vif-bridge" ] xenvmdev02:vif = [ "mac=00:22:36:5a:83:7b,bridge=xenbr0,script=vif-bridge" ] xenvmdev03:vif = [ "mac=00:22:36:48:83:ab,bridge=xenbr0,script=vif-bridge" ] xenvmgtw01:vif = [ "mac=00:22:36:6b:af:ad,bridge=xenbr0,script=vif-bridge" ] xenvmkvs01:vif = [ "mac=00:22:36:48:83:7c,bridge=xenbr0,script=vif-bridge" ] xenvmlog01:vif = [ "mac=00:22:36:48:a3:7a,bridge=xenbr0,script=vif-bridge" ] xenvmmlt02:vif = [ "mac=00:22:36:48:84:8b,bridge=xenbr0,script=vif-bridge" ] xenvmwww03:vif = [ "mac=00:22:36:48:84:7c,bridge=xenbr0,script=vif-bridge" ] xenvmwww04:vif = [ "mac=00:22:36:48:85:7c,bridge=xenbr0,script=vif-bridge" ] template01:vif = [ "mac=00:22:36:48:83:7b,bridge=xenbr0,script=vif-bridge" ] [/shell]
6.上記4,5が完了しましたら、3にてコピーした、guest01に対して編集をします。このコンフィグファイルで、ディスクを追加したり、メモリを増やしてみたりCPUを増やしてみたりすることができるのですが詳細については割愛します。 [shell] [root@xensvr01 xen]# pwd /etc/xen
[root@xensvr01 xen]# vi guest01
name = "template01" uuid = "e505b242-dc53-d4b0-9540-40a52a3722c6" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" disk = [ "tap:aio:/var/lib/xen/images/template01.img,xvda,w" ]
vif = [ "mac=00:16:36:48:83:7b,bridge=xenbr0,script=vif-bridge" ]
以下のように修正
name = "guest01" uuid = "f7591bfe-e528-4b5c-bb04-8d3dc9c5ec71" maxmem = 512 memory = 512 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" disk = [ "tap:aio:/var/lib/xen/images/guest01.img,xvda,w" ] vif = [ "mac=00:16:36:48:a2:7c,bridge=xenbr0,script=vif-bridge" ] [/shell]
7.続けてイメージファイルをコピーします。上記4にて設定した内容とこのイメージファイルが紐づいているのがわかるかと思います [shell] [root@xensvr01 images]# pwd /var/lib/xen/images [root@xensvr01 images]# cp -a template01.img guest01.img [/shell]
8.作成したguestOSを起動してみましょう!! [shell] [root@xensvr01 images]# xm create guest01 -c /etc/xen/guest01 ※画面が切り替わるのでターミナルから抜ける場合は、 CTRL + ] で抜けてください [/shell]
以上で設定は終わりですが、細かい点につきましては、ゲストOSにログインして個々に修正する必要があります。 基本的に修正する箇所は。 [shell]
vi /etc/hosts
vi /etc/sysconfig/network
vi /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/resolv.conf
[/shell] あたりかと思います。ipaddress,dns,host名をお好きな(ユニークでね)名前で・・・。
余談ですが、現在起動している、ゲストを見る場合は、以下のコマンドで [shell] [root@xensvr01 ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 768 1 r----- 23343.9 xenvmdev01 28 512 1 -b---- 817.0 xenvmdev02 31 512 1 -b---- 814.5 xenvmdev03 34 512 1 -b---- 807.6 xenvmgtw01 1 512 1 -b---- 7200.6 xenvmkvs01 6 1024 1 -b---- 9569.5 xenvmlog01 36 512 1 -b---- 376.1 xenvmmlt02 2 384 1 -b---- 5115.7 xenvmwww03 4 512 1 -b---- 8471.3 xenvmwww04 12 512 1 -b---- 6072.5 [/shell]
uptimeを確認するのは以下のコマンドで [shell] [root@xensvr01 ~]# xm uptime Name ID Uptime Domain-0 0 37 days, 21:28:41 xenvmdev01 28 3 days, 7:26:02 xenvmdev02 31 3 days, 6:50:03 xenvmdev03 34 3 days, 6:39:24 xenvmgtw01 1 37 days, 21:26:37 xenvmkvs01 6 35 days, 23:49:25 xenvmlog01 36 9:42:29 xenvmmlt02 2 37 days, 21:12:28 xenvmwww03 4 37 days, 21:11:52 xenvmwww04 12 32 days, 3:45:06 [/shell]
xenvmdev01のターミナル画面に接続するには、 [shell]
xm console xenvmdev01
xenvmdev01.xenvmuad.local login: CentOS release 5.6 (Final) Kernel 2.6.18-238.19.1.el5xen on an x86_64 [/shell] みたいな感じで確認することができます。お試しアレ★