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のホストからゲストがダウンロードする際の速度。
| NICのモデル | 結果 |
|---|---|
| rtl8139 | 157Mbps |
| e1000 | 463Mbps |
| virtio | 3979Mbps |
今度はその逆。KVMのゲストからホストがダウンロードする際のパフォーマンス。
| NICのモデル | 結果 |
|---|---|
| rtl8139 | 15Mbps |
| e1000 | 1352Mbps |
| virtio | 3101Mbps |
ゲストとゲスト同士というのは値を控えていないのだけれど、これも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がつかえるのだけれんども、私の環境ではちがいはわからななかった。測定方法の問題かもしれない。
- Posted at 17:05:54
- Permalink
- Comments(0)
- Trackbacks(0)
- software
- ID:414
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の時とほぼ同じ以下のような方法でできた。
- サブスクリプションのチャンネルは RHEL Virtualization と Red Hat Network Tools for RHEL Server が必要。インストール時にKVMを選択していれば自動でサブスクライブされると思われるが、念のため確認しておく。
- RHNにて、KVMのホストへ Virtualization というエンタイトルメントを割り当てる。
- ホストに rhn-virtualization-host パッケージが必要。これをインストールすると、cronで2分おきに仮想マシンの情報がRHNへ通知される。
- 仮想マシンで 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
- Posted at 02:37:31
- Permalink
- Comments(0)
- Trackbacks(0)
- software
- ID:413