Xen Domain0からのxmよる操作コマンド一覧

ここではドメイン名がvt01, vt02等の場合でxmコマンドの使い方を説明している。

DomainU(ゲストOS)の起動

xm create vt01

このコマンドでは起動だけで、起動状況は確認できない。起動状況を確認しながら(コンソール接続しながら)起動したい場合はcreateに-cオプションをつけて実行する。

xm create -c vt01

DomainUシャットダウン

xm shutdown vt01

指定したDomainUがシャットダウンされるまでコンソールを止めておく場合は-wオプションをつける。

xm shutdown -w vt01

コンソール接続(アタッチ)

xm console vt01

ちなみにコンソールのデタッチはCtrl+”]”で行える。

Domain一覧表示

xm list
---------------------------------------------------------
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      490     2 r-----    436.1
vt01                                       4      255     1 -b----     33.6
---------------------------------------------------------

Domain負荷状態確認topコマンド

xm top
---------------------------------------------------------
xentop - 06:42:45   Xen 3.1.0-53.1.21.el5
3 domains: 1 running, 2 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 1046696k total, 1045944k used, 752k free    CPUs: 2 @ 3192MHz
NAME  STATE   CPU(sec) CPU(%)     MEM(k) MEM(%)  MAXMEM(k)
vt02 --b---       1224    0.0     261908   25.0     262144
Domain-0 -----r       3380    0.0     501944   48.0   no limit
vt01 --b---        923    0.0     262004   25.0     262144
---------------------------------------------------------

※画面が長いので途中で切っています。

vt01以外にvt02も起動しています。
topコマンドのような感じで負荷状態をリアルタイムで確認できます。

メモリの割り当てを動的に変更する

現在割り当てられているメモリを減らす場合は問題は無いが、動的割り当てではmaxmem以上を割り当てることはできないので、事前に設定ファイルのmaxmemをあげている必要がある。maxmemを変更した場合はDomainUを一度リブートではなく停止して再起動する必要がある。virt-installdでDomainUをインストールした場合は設定ファイルは/etc/xen/以下にある。

xm mem-set vt01 256
maxmem = 512
memory = 256

もちろん、Domain0も含めて物理的にハードウェアが持っているメモリ以上には割り当てることはできない。このとき注意したいのはDomain0の割り当てメモリである。Domain0にもある程度メモリ(デフォルトでは最低256MB)を割り当てていなければならないのでDomainUのために割り当てられるメモリは(物理的なメモリ)-(Domain0のメモリ)が理論値になる。これまでの経験上では実際には理論値よりも少なくしか割り当てられないようだ。
Domain0のメモリはDomainUへメモリを割り当てるとdom0-min-memで設定されている最小メモリまでは自動的に減っていく。

Domain0のメモリを減らしてでもDomainUに割り当てたい場合はDomain0のメモリの割り当てを減らすことになる。

xm mem-set 0 200

再起動時にもこの設定が有効になるようにするには/etc/xen/xend-config.sxpを編集しておく必要がある。

vi /etc/xen/xend-config.sxp
---------------------------------
#(dom0-min-mem 256)
(dom0-min-mem 200)
---------------------------------

Xen DomainU(ゲストOS)の自動起動 xendomains

xendomainsでDomainU(ゲストOS)を自動起動するためのリンクをはる。

ln -s /etc/xen/domain1 /etc/xen/auto/domain1
ln -s /etc/xen/domain2 /etc/xen/auto/domain2
ln -s /etc/xen/domain3 /etc/xen/auto/domain3

xendomainsスクリプトで登録したDomainUを一括起動、一括停止ができます。

/etc/init.d/xendomains start
/etc/init.d/xendomains stop

サーバ起動時にDomainUを起動したい場合はchkconfigでxendomainsを起動するように設定します。

chkconfig xendomains on

Xen(仮想化環境)のインストールからVPS作成、起動まで

※ローカルネットワーク環境でテスト用にVPSを作成、起動することを想定しているため
セキュリティーについては考慮していませんのでご了承ください。

yum -y install kernel-xen xen

kernel-xenをインストールすることでGRUBで0に当たるカーネルイメージが
Xenのカーネルになるなのでデフォルトの起動イメージを0に変更する。

vi /etc/grub.conf
------------------------------------
#default=1
default=0
------------------------------------
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.1.21.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-53.1.21.el5
module /vmlinuz-2.6.18-53.1.21.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-53.1.21.el5xen.img
------------------------------------

サーバを再起動

shutdown -r now

再起動後にはドメイン0(管理用VPS)が起動していることになる。
VPSを作成するためのOSをローカルに作成する。

yum -y install httpd
apachectl start
mount /dev/cdrom-hda /mnt/
mkdir /var/www/html/os/
cp -r /mnt/* /var/www/html/os/
umount /mnt

httpでOSのリソースにアクセスできるようにapacheを設定します。

vi /etc/httpd/conf.d/os.conf
---------------------------------------------------------
Alias /os "/var/www/os"
<Directory "/var/www/os">
Order allow,deny
Allow from all
Options Indexes

---------------------------------------------------------
apachectl restart

ドメインU(新規VPS)の作成
ドメイン0(管理用VPS)のIPアドレスが192.0.2.100の場合です。

virt-install --paravirt --ram=256 name=vt02 --file=/vps/vt01.img --file-size=5 --location=http://192.0.2.100/os/ --bridge=xenbr0 --nographics --nonsparse

メモリ256MB、HDD容量5G、ネットワークはブリッジとしている

オプションの詳細は下記URLを参照
@ID 実践! Xenで実現するサーバ統合(1)
第1回 インストールと環境構築

ネットワークはブリッジなのでサーバ自体が192.168.0.0/24のネットワークなら
同じネットワークで空いているIPアドレスを指定すればよい。

コマンドを入れるとコンソール上でテキスト画面での
インストール作業が始まるのでいつもどおりにインストールする。

インストール後、dfをしてみるとトータルで約5GBの
システムができていることがわかる。

df -h
---------------------------------------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
4.3G 907M 3.2G 23% /
/dev/xvda1 99M 13M 82M 14% /boot
tmpfs 129M 0 129M 0% /dev/shm
---------------------------------------------------------

インストール後もコンソールは新規VPSにアタッチされている。

コンソールデタッチ Ctrl-] (コントロールキーを押しながら右括弧「]」を押す)

デタッチすることでドメイン0(管理用VPS)に戻ることができる
ドメイン0ではxmコマンドでVPSの管理ができる。
デタッチ後もネットワークにはつながっているはずなのでSSHなどで
通常のサーバと同じようにリモート操作ができる。