Browse Tag: xen

某クラウドで Xen と KVM のベンチマークを計測してみた

某クラウドでは、Xen と KVM を選択することができるので、ちょうどよい機会に恵まれたので Xen と KVM のベンチマークを計測してみました。

計測に使用したツールは、UnixBench というツールです。

仮想サーバの、CPU やメモリはまったく同じ設定をしました。OS は、CentOS 5.8 x86_64 で、カーネルのバージョンが違っているのは Xen と KVM の違いによるものです。

詳細の結果は、gist にまとめておきました。

System Benchmarks Index Score でいうと、
KVM は 2786.6 だったのに対して、
Xen は 1155.3 だったので、約2倍くらいベンチマーク数値としては違っていました。

パフォーマンスの面からみると、某クラウドでは KVM を使うのがよいかなぁと思いました。

ちゃんちゃん。

Xen on CentOS

CentOS 5.3 x86_64 に Xen を導入するためのメモです。

1. 次のコマンドで Xen をインストールする
$ sudo yum install xen

2. Dom0 のメモリ容量を最低限に利用する(通常は 512MB あれば十分)
$ sudo vi /boot/gnub/grub.conf

18c18
<       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=512M

3. 再起動して、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       8095

5. 念のため、次のコマンドで Dom0 が起動していることを確認する

$ sudo /usr/sbin/xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      512     4 r—–   2439.7

6. 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 があることを確認する。

参考資料

Xen-Server が無料化!

ついに Xen-Server が無料化になって、ダウンロード可能になりました。公式ホームページに VMware ESXi との比較がありました。

| 無料に含まれている機能 | Citrix XenServer | VMware ESXi |

| Hypervisor | 64ビット | 32ビット |

| 最大仮想化 CPU 数 | 8 | 4 |

| Windows と Linux ゲストサポート | OK | OK |

| サーバ、VM、メモリの無制限 | OK | OK |

| P2V & V2V の変換(物理マシンから仮想マシンの変換、仮想マシンから仮想マシンの変換) | OK | OK |

| 共有の SAN や NAS ストレージ | OK | OK |

| 中央での複数のサーバ管理 | OK | NO |

| 柔軟性がある分散管理アーキテクチャ | OK | NO |

| ライブモーション | OK | NO |

| 共有の VM テンプレートライブラリ | OK | NO |

| 中央での設定管理 | OK | NO |

| 仮想的なインフラパッチ管理 | OK | NO |

| 賢い初期設定の VM 置換 | OK | NO |

| 賢いサーバのメンテナンスモード | OK | NO |

| すばらしい精密な CPU リソースコントロール | OK | NO |

| ディスクと NIC のホットスワッピング可能 | OK | NO |

よく分からない機能があるけれど、なかなかよさげです。特に最後のホットスワッピングは気になる機能の一つです。さっそく iso イメージをダウンロードしてみたけれど、今は試せるサーバがないことに気がついた…。