Database JUNKY

MySQL,MariaDBを中心としたブログです

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や、共通で設定が必要なもの(LDAPNFS、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]

  1. コンフィグファイル内のuuidにはユニークな値を設定する必要があります。そこでuuidgenコマンドを利用してユニークなuuidを取得します [shell] [root@xensvr01 xen]# uuidgen f7591bfe-e528-4b5c-bb04-8d3dc9c5ec71 [/shell]

  2. 上記同様、ネットワークアドレス(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] みたいな感じで確認することができます。お試しアレ★