CentOS 5.3 x86_64 に Xen を導入するためのメモです。
1. 次のコマンドで Xen をインストールする
$ sudo yum install xen2. Dom0 のメモリ容量を最低限に利用する(通常は 512MB あれば十分)
$ sudo vi /boot/gnub/grub.conf18c18
< kernel /xen.gz-2.6.18-128.1.6.el5 console=com1,vga com1=57600,8n1
—
> kernel /xen.gz-2.6.18-128.1.6.el5 console=com1,vga com1=57600,8n1 dom0_mem=512M3. 再起動して、Xen Kenel で起動する
4. free コマンドでメモリ容量が 512MB になっていることを確認する
$ free -m
total used free shared buffers cached
Mem: 512 507 4 0 46 249
-/+ buffers/cache: 211 300
Swap: 8095 0 80955. 念のため、次のコマンドで Dom0 が起動していることを確認する
$ sudo /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 512 4 r—– 2439.76. Dom0 で bonding しているときは、/etc/xen/xend-config.sxp を次のようになおしてから Dom0 を再起動する
(network-script ‘network-bridge-bonding bridge=xenbr0 netdev=bond0′)
ちなみに netdev を指定しないとブリッジ用のデバイス xenbr0 ができないので注意する。
この設定をすると Dom0 が起動したときに /etc/xen/scripts/network-bridge-bonding が実行される仕組みになっている。/etc/xen/xend-config.sxp の network-bridge-bonding で指定できる変数の意味は、次のとおりです。
- brdige: 作られるブリッジのデバイス名(デフォルト xenbrX)
- netdev: ブリッジにつなぐ実デバイス(デフォルト eth0)
ここで Xen Dom0 のメモリ容量を変更すると、実際に搭載されている物理メモリの容量を見ることができないのか知りたい。知ることができれば、Xen DomU のメモリ容量などをあわせて使われていない物理メモリ容量を計算することができそう。
Xen の基本コマンド /usr/sbin/xm の使い方
ドメイン一覧を見る: xm list
ドメインOに戻る方法: Ctrl+]
ドメインUへ接続: xm console <仮想マシン名>
Xen DomU を削除する方法
コマンドはないなので、設定ファイルをイメージファイルを削除する(しかないと思う)。
sudo rm -f /etc/xen/仮想マシン名
sudo rm -f /var/lib/xen/images/仮想マシン名.img
DomU で内部専用の eth1 を作る
/etc/xen/仮想マシン名 の vif 行を、次のように変更する。
vif = [ "mac=00:16:3e:33:63:10,bridge=xenbr0","mac=00:16:3e:75:4a:51,bridge=virbr1" ]
mac アドレスは、http://www.asahi-net.or.jp/~aa4t-nngk/codes/xenmacgen.py.txt にあるスクリプトを使用して生成すると便利、重複しないように注意する。
/etc/xen/xend-config.sxp の network-script を次のように変更する
(network-script ‘network-bridge-bonding-custom bridge=xenbr0 netdev=bond0′)
/etc/xen/scripts/network-bridge-bonding-custom を、次の内容でパーミッション 755 で作成する。
#!/bin/sh
dir=$(dirname $0)
libvirtbr=virbr1# Some clean-up of iptables rules inserted by libvirtd.
iptables -D INPUT -i $libvirtbr -p udp -m udp –dport 53 -j ACCEPT &>/dev/null
iptables -D INPUT -i $libvirtbr -p tcp -m tcp –dport 53 -j ACCEPT &>/dev/null
iptables -D INPUT -i $libvirtbr -p udp -m udp –dport 67 -j ACCEPT &>/dev/null
iptables -D INPUT -i $libvirtbr -p tcp -m tcp –dport 67 -j ACCEPT &>/dev/null${dir}/network-bridge-bonding “$@”
echo 0 >/proc/sys/net/ipv4/ip_forward
/etc/virnet/virnet1.xml を、次の内容で作成する。
virnet1
virtnet1 の設定を有効にする。
# virsh net-define /etc/virnet/virnet1.xml
# virsh net-autostart virnet1
“default” ブリッジ(virbr0)の自動起動を無効にする。
# virsh net-destroy default
# virsh net-autostart default –disable
マシン(Dom0)を再起動して、ifconfig して xenbr0 と virbr1 があることを確認する。
参考資料
Tags: xen







> 実際に搭載されている物理メモリの容量を見ることができないのか知りたい。
xm infoのtotal_memoryで見れます。
>Anoymous さん
情報ありがとうございます!!!
試してみたところ、確かに見れますね。
[...] 先日の Xen の話題でコメントをいただいた xm info をコマンドを実行してみると、free memory の欄が 0 になっていました。どうやらこれが原因で、Dom0 の貴重なメモリが減らされていたようで [...]