お家サーバで PCI PassThrough をやろうとしてハマった話
- お家サーバをリニューアルした
- 動画をエンコードするのにHWエンコードを使いたかった
- お家サーバはProxmox を仮想環境を作って、その上にVMやコンテナを建てて遊びたかった
- HWエンコードするためにはグラフィックボードが必要
- 10Gbit/s なネットワークにしたかったので X540-T2 をヤフオクでゲット
- リニューアル前のお家サーバにはRAIDカードがささっていたので流用したかった
- 2.5inchのHDDが余っていたのでZFSを使いたくなりヤフオクで2.5inch/750GBのディスクを漁った
- ↑用のSATA I/F は国内では高すぎたので eBay で買った
HW構成
- M/B ASRock Z77 Extreme3
- i7 3770
- 8G x4 = 32GB memory
- 拡張カード
- PCIe x1 SATAx6 I/F
- PCIe x16 GT730 グラフィックボード
- PCIe x16(x4) 3ware 9650SE RAIDカード
- PCIe x16(x4) X540-T2 10Gbps ネットワークI/F
何があったか
- VMにGT730をPCI passthrough して起動すると RAID カードが見えなくなった
どうして?
- GT730とRAIDカードのIOMMUグループが同じだったため
解決法
- ネットワークインターフェースカードと、GT730の挿す場所を入れ替えた
過程
- lspci では見えていたので最初は何がなんだかわからなかった
- 最初に電源の容量不足を疑った
- 使っていたのは10年くらい前のSeasonicの620W電源
- Thermaltakeの850Wが出たばかりだったので購入して交換するも症状変わらず
- この記事を読んでIOMMUグループを確認してみたところグラフィックボードとRAIDカードが同じグループだった
- グラフィックボードとネットワークI/Fの指す場所を入れ替えた
IOMMU Group 1 01:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 [8086:1528] (rev 01)
IOMMU Group 1 01:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 [8086:1528] (rev 01)
IOMMU Group 1 02:00.0 RAID bus controller [0104]: 3ware Inc 9650SE SATA-II RAID PCIe [13c1:1004] (rev 01)
IOMMU Group 12 03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 730] [10de:1287] (rev a1)
IOMMU Group 12 03:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1) -
解決(∩´∀`)∩ワーイ
感想
- IOMMUのグループはマザーボード(チップセット?)が勝手に決めるようで変えられないと見たんですが、なんとかならんのか
- 将来的にグラフィックボードをもっといいのに換えた場合今挿している一番下のx16ポートでは性能を生かせなくなると思うんじゃが…

