A.12. KVM ネットワークパフォーマンス
デフォルトでは、KVM 仮想マシンには、仮想 Realtek 8139 (rtl8139) の NIC (ネットワークインターフェイスコントローラー) が割り当てられています。
rtl8139 仮想化 NIC はほとんどの環境で問題なく機能しますが、このデバイスは、10 ギガバイトイーサネットなど、一部のネットワークでパフォーマンス低下の問題が発生する可能性があります。
パフォーマンスを向上させるために、準仮想化ネットワークドライバーに切り替えることができます。
注記
仮想化 Intel PRO/1000 (
e1000
) ドライバーも、エミュレートされたドライバーとしてサポートされていることに注意してください。e1000
ドライバーを使用する場合は、以下の手順の virtio
を e1000
に置き換えます。最善のパフォーマンスを実現するには、virtio
ドライバーを使用することが推奨されます。
手順A.6 virtio ドライバーへの切り替え
- ゲストオペレーティングシステムをシャットダウンします。
- virsh コマンドでゲストの設定ファイルを編集します (
GUEST
はゲストの名前です)。# virsh edit
GUEST
virsh edit コマンドは、$EDITOR シェル変数を使用して、使用するエディターを決定します。 - 設定のネットワークインターフェイスセクションを見つけます。このセクションは、以下のスニペットと似ています。
<interface type='network'> [output truncated] <model type='rtl8139' /> </interface>
- モデル要素のタイプ属性を
'rtl8139'
から'virtio'
に変更します。これにより、ドライバーが rtl8139 ドライバーから virtio ドライバーに変更されます。<interface type='network'> [output truncated] <model type=
'virtio'
/> </interface> - 変更を保存し、テキストエディターを終了します。
- ゲストオペレーティングシステムを再起動します。
その他のネットワークドライバーを使用した新しいゲストの作成
別のネットワークドライバーを使用して、新しいゲストを作成することもできます。ネットワーク接続でゲストをインストールするのが困難な場合に必要になることがあります。この方法では、テンプレートとして使用するために、少なくとも 1 つのゲストが作成されている (CD または DVD からインストールされている可能性あり) 必要があります。
- 既存のゲスト (この例では Guest1) から XML テンプレートを作成します。
# virsh dumpxml Guest1 > /tmp/guest-template.xml
- XML ファイルをコピーして編集し、一意のフィールド (仮想マシン名、UUID、ディスクイメージ、MAC アドレス、およびその他の一意のパラメーター) を更新します。UUID および MAC アドレス行を削除できることに注意してください。virsh を実行すると、UUID と MAC アドレスが生成されます。
# cp /tmp/guest-template.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
ネットワークインターフェイスセクションにモデル行を追加します。<interface type='network'> [output truncated] <model type='virtio' /> </interface>
- 新しい仮想マシンを作成します。
# virsh define /tmp/new-guest.xml # virsh start new-guest