Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.10. KVM ネットワークのパフォーマンス

デフォルトでは、KVM 仮想マシンには、Realtek 8139 (rtl8139) NIC (ネットワークインターフェースコントローラー) が割り当てられています。Red Hat Enterprise Linux のゲストには、デフォルトで virtio NIC が割り当ててられますが、Windows ゲストにはゲストタイプは指定されません。
rtl8139 仮想化 NIC はほとんどの環境で正常に機能します。しかし、このデバイスは、たとえば 10 Gigabit Ethernet ネットワークなどの一部のネットワークでは、パフォーマンスが低下する問題の原因となる場合があります。
パフォーマンスを改善するには、準仮想化ネットワークドライバーに切り替えます。

注記

エミュレートするドライバーの選択肢として、仮想化した Intel PRO/1000 (e1000) ドライバーもサポートされています。e1000 ドライバーを使用する場合は、 以下の手順にある virtio の部分を e1000 に置き換えます。最善のパフォーマンスを得るには、virtio ドライバーの使用が推奨されます。

手順22.3 virtio ドライバーに切り替える

  1. ゲストのオペレーティングシステムをシャットダウンします。
  2. virsh コマンドを使用してゲストの設定ファイルを編集します (GUEST はゲスト名)。
    # virsh edit GUEST
    virsh edit コマンドでは、使用するエディターは $EDITOR シェル変数で確定されます。
  3. ネットワークインターフェースの設定セクションを見つけます。以下にネットワークインターフェースの設定セクションを抜粋した部分を示します。
    <interface type='network'>
      [出力は省略されています]
      <model type='rtl8139' />
    </interface>
  4. model 要素のタイプ属性を 'rtl8139' から 'virtio' に変更します。これによりドライバーが rtl8139 から virtio に変更されます。
    <interface type='network'>
      [output truncated]
      <model type='virtio' />
    </interface>
  5. 変更を保存して、エディターを終了します。
  6. ゲストのオペレーティングシステムを再開します。
他のネットワークドライバーを使用して新しいゲストを作成する

別のネットワークドライバーで新規のゲストを作成することもできます。ネットワーク接続によるゲストのインストールが困難な場合に、この手段が必要になるかもしれません。この方法では、 テンプレートとして使用するゲストが少なくとも1つすでに作成されていなければなりません (CD か DVD などからインストール)。

  1. 既存のゲスト (この例では、ゲスト名 Guest1) から XML テンプレートを作成します。
    # virsh dumpxml Guest1 > /tmp/guest-template.xml
  2. 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>
  3. 新規の仮想マシンを作成します。
    # virsh define /tmp/new-guest.xml
    # virsh start new-guest