ESXi6.0でRadeon RX480のパススルーについて

昨日購入したRadeon RX480でパススルーの設定ができた。
設定などはググれば出てくるのでその方法についての説明は割愛するが、我が家の構成ではこんな感じ・・・というメモ的なものを置いておく。必要であれば参考にされたし。

ホストマシンの構成

ESXiでのパススルーにCPUの性能などは関係ないので主にマザーボードとか拡張機器周りについて。

素直ではない構成だと思う。2017年になってもまだUltra320SCSIが現役でその両方がPCI-E to PCIの変換経由とか、そろそろU320は捨てろと言われそうだが、便利なので捨てられないw

上記構成をESXi6.0から見たらこんな感じ。

f:id:evesystem:20170104220835j:plain

 VMにパススルーしたいものにチェックを入れた画面。これをVM側の設定に反映させるだけなので設定はいたってシンプル。あとはVMがハードウェアを認識するのでドライバをいれたら終わる。

 これをVM側のWindowsから見たものが以下。

f:id:evesystem:20170104221505j:plain

パススルーしているRadeon RX480とRadeonのオーディオ、RealtekGbEUSB3.0が実デバイスとして見えている。その他はVMwareの文字列が見えるものが並んでいたりする。特に問題なくサクッと設定できてしまうので助かった。

パススルー設定で注意すること

PCI-E拡張カードはだいたい問題なくパススルーできる感じ。(といってもサンプルがグラボとUSBとGbEなので少ないが)
PCI-E to PCIをカマした32bit PCIのデバイスは、それ単体でのパススルーができず必ずPCI-E to PCIブリッジごとのパススルーとなる。このためマザーボードに2スロット以上あったとしても、そのスロット単位ではパススルーできないので注意すること。
どうしてもそういうことをしたいなら、32bit PCIを持たないマザーボードを購入し、玄人志向とかが販売しているPCI-E x1に取り付けるカード型のブリッジを用意したほうが良い。(これだとロープロ専用になるけどね)
また、Ultra320SCSI等のカード側にBIOSの乗っているカードはパススルーしてもうまく動作しない。よくわからないが、ホスト起動時にカード側のBIOSが起動してしまっているため、パススルーしたVM側のPOST時には既にカードが起動しておりホストとVMで競合を起こしているのだと思う。どうしてもやりたい場合は無理なのであきらめて、ESXi側からSCSIバイスをVMに割り当てるほうが良いと思う。
(この方法はこの方法でSCSIバイスのLUNはESXiに無視されるようなので、同一SCSI ID配下のLUNに割り当てられたロボットが認識しないとかあるので悩ましい・・・)

まとめ

レガシーなカードのパススルーはやめとけ