けさらんぱの自由帳

とあるFF14プレイヤーがFF14のこととか関係ないことを書いていく予定のブログです。記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

最近の自宅の仮想環境の話

だいぶ前に FF14をLinuxの仮想環境で動かす話 という記事を書いたのですが、あれからずいぶん時間がたって設定も変えたところがあるので、そのあたりのことを書いてみようと思います。

カーネルコマンドラインオプションの設定

以前の記事でカーネルコマンドラインオプションの設定の話をしました。しかし最近ではIOMMUをパススルーのためにしか使わない場合は、 iommu=pt というオプションも追加した方が良いらしいです。そうすることで、パススルーに関係のないデバイスのパフォーマンスが落ちるのを防ぐことができるそうです。ただし、この設定をしても intel_iommu=on も必要です。

なので、最近では下記のようなカーネルコマンドラインオプションを使用しています(ついでにウォッチドッグも無効化するようにしました)。

threadirqs nowatchdog intel_iommu=on iommu=pt default_hugepagesz=1G hugepagesz=1G hugepages=8

ネットワークが時々フリーズすることへの対処

これまで仮想環境のネットワークが時々フリーズする、という悩みがありました。具体的には、FF14のSSをKVM内のWindowsからネットワークドライブに置こうとすると、NICがフリーズしてしまう、という現象です。

この現象に対処するためいろいろ試していたのですが、ググってもなかなか情報が出て来ず… 試しにホスト側のドライバーでデフォルトのvhostを使わずにqemuを使うようにしてみたところ、今のところフリーズは再現していません(ただしパフォーマンスは落ちるはずです)。

下記のXMLKVM (libvirt)のネットワークインターフェイスに関係する箇所ですが、そのうち <driver .../> が最近追加した設定です。

    <interface type='bridge'>
      <mac address='xx:xx:xx:xx:xx:xx'/>
      <source dev='enp0s31f6' mode='bridge'/>
      <model type='virtio-non-transitional'/>
      <driver name='qemu' queues='6'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/>
    </interface>

記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。