けんども日記: 2009-09

2009 年 09 月分を表示します。

2009-09-30

KVMの仮想環境でNICによるパフォーマンスの違い

RHEL5.4のKVMでは仮想マシン(ゲスト)のデフォルトのNICはRealtek rtl8139 がエミュレーションされているのだけれども、それ以外にも選択ができる。それらについて比べてみたところ、ずいぶんと違いが出た。

ホスト、ゲストともにx86_64版RHEL5.4でnetperfを使って測定。なお、肝心のホストのハードウエア情報は残念ながら公開できないが、大きな違いがでたため、ハードウエア環境が違っても参考になると思われる。

選択可能なNICのモデルは rtl8139、e1000、virtio 以外にもあるのだけれんども、今回はこの3つのみで試した。netperfにはホスト以外のオプションは与えていない。まずはKVMのホストからゲストがダウンロードする際の速度。

nerperfのサーバがKVMホスト、クライアントがKVMゲストの場合
NICのモデル結果
rtl8139157Mbps
e1000463Mbps
virtio3979Mbps

今度はその逆。KVMのゲストからホストがダウンロードする際のパフォーマンス。

nerperfのサーバがKVMゲスト、クライアントがKVMホストの場合
NICのモデル結果
rtl813915Mbps
e10001352Mbps
virtio3101Mbps

ゲストとゲスト同士というのは値を控えていないのだけれど、これもvirtioのパフォーマンスが高く、rtl8139は極端に低い値となった。これ以外にKVMゲストと外部ホストとのパフォーマンスなども気になるところだが、それはまた機会があれば試したい。

ゲストのNICを変更するのはGUIのvirt-manager のほかに virsh でもできる。

# virsh edit GUEST

のように実行するとゲストの設定を編集できる。デフォルトのrtl8139が使われている状態では特にモデルは指定されていないので、 <interface type='network'> から </interface> の間に次のようなNICのモデルを挿入すればOK。

<model type='virtio' />

ナレッジベースにもあるように、 virt-install 時に --os-variant=virtio26 オプションを指定すれば最初からvirtioが使えるようになるので 、ゲストが対応しているのであればこのオプション付きでインストールしたほうがよいかもしれない。

NICのほかにディスクでもvirtioがつかえるのだけれんども、私の環境ではちがいはわからななかった。測定方法の問題かもしれない。

2009-09-04

RHEL5.4でKVM

9月2日にRHEL5.4がリリースされた。運用中のRHEL5環境のアップデートがすべて終わったので、今度は先日組んだばかりのPCへ新たにRHELをインストールしてKVMを試すことにした。というのは、RHEL5.4はx86_64版しかKVMに対応していないという先日の失敗があり、5.4のリリースにあわせて急きょx86_64と仮想化の両方に対応したCPUで新たにPCを組んだ。最近は仮想化に対応したCPUも非常に安くなったのはうれしい。

気になっていたのが仮想マシンでRHNを利用する方法だった。これについてはXenの時とほぼ同じ以下のような方法でできた。

  1. サブスクリプションのチャンネルは RHEL Virtualization と Red Hat Network Tools for RHEL Server が必要。インストール時にKVMを選択していれば自動でサブスクライブされると思われるが、念のため確認しておく。
  2. RHNにて、KVMのホストへ Virtualization というエンタイトルメントを割り当てる。
  3. ホストに rhn-virtualization-host パッケージが必要。これをインストールすると、cronで2分おきに仮想マシンの情報がRHNへ通知される。
  4. 仮想マシンで rhnreg_ks コマンドを使用して登録。このコマンドのオプションにはプロファイル名とRHNのログイン情報を指定する。

Xenの時は後になって rhn_register で登録できるようになったが、KVMのゲストでは rhnreg_ks でないとうまくいかなかった。

登録後はRHNの「仮想システム」のページで確認ができ、XenなのかKVMなのかは区別されず、一緒に表示される。

仮想マシンのディスクについてはLVMにしておくと何かと便利なのでLVMで試してみたところ、SELinuxの制限で起動できない。 /dev/mapper/ボリュームグループ-ロジカルボリューム のコンテキストのタイプは fixed_disk_device_t なのだが、これに対して qemu_t ドメインのアクセス権がないらしい。 chcon で /dev/mapper/ボリュームグループ-ロジカルボリューム のコンテキストを virt_image_t へ変更することにした。それではOS再起動時に元に戻ってしまうので semanage fcontext で対応した。

仮想化のドキュメントは Virtualization-en-US パッケージらしいのだけれども、現時点ではこれが更新されていないのが残念。。

2009-11-10 追記。。次のURIでKVM対応の Virtualization Guide が公開されている。 http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Virtualization_Guide/index.html

Information

サイト内検索

けんども日記

直近 10 件
RSS
RSS 1.0
Home@けんどもネット
diary.php(v2): 2005-06-11
Copyright © 2003-2005 Kendomo.net.