VMware におけるSCSIコントローラの認識順序(最終まとめ)

VMware におけるSCSIコントローラの認識順序」ではSCSIコントローラやネットワークアダプタのOSによる認識順とvmxファイル上のpciSlotNumberの関係を確認した。「VMware におけるSCSIコントローラの認識順序(追加検証)」ではpciSlotNumberの割り当てルールについて追加の検証を行った。

最後にデバイスの認識順とpciSlotNumberの割り当てのルールを一つの表にまとめる。
この表を使えば認識順の「不思議」に悩んだりすることはないし、デバイスの追加・削除を安易に行う怖さがわかるはずだ。

まとめ表の大前提

  • slotNumberの解釈方法に関するナレッジ・ベース「 Mapping PCI slot numbers to guest-visible PCI bus topology (2047927)」の対象バージョンのESXiであること。
  • vmxファイルにPCIブリッジ(pciBridge4〜pciBridge7)が定義されており、以下の pciSlotNumber が割り当てられていること。
    • pciBridge4.pciSlotNumber = "21"
    • pciBridge5.pciSlotNumber = "22"
    • pciBridge6.pciSlotNumber = "23"
    • pciBridge7.pciSlotNumber = "24"

まとめ表

注意!! この表は VMware ESXi 5.0.0 を使用した検証から導き出されたものであり、VMware社のマニュアルなどによる裏付けのあるものではありません。使用される方がおられましたら、使用可否をご判断のうえ、自己責任による使用をお願い致します。

接続するBusの上位PCIブリッジとFunctionOSの認識順pciSlotNumber割り当て優先度接続するデバイス
pciBridge4011601
1211845
2322089
34323213
45425617
56528021
67630425
78732829
pciBridge5091922
11012166
211224010
312326414
413428818
514531222
615633626
716736030
pciBridge60172243
11812487
219227211
320329615
421432019
522534423
623636827
724739231
pciBridge70252564
12612808
227230412
328332816
429435220
530537624
631640028
732742432

「割り当て優先度」はデバイスを追加した際に割り当てられるpciSlotNumberを決定するためのものである。未割り当てのpciSlotNumberの中で最も「割り当て優先度」が高いpciSlotNumberが割り当てられると考えれば良い。

ナレッジ

  • ethXはネットワークアダプタの認識順に関わらず、udevによりMACアドレスなどに基づく名前の固定化ができるため、ネットワークアダプタの認識順はそれほど重要ではない。SCSIコントローラが問題である。
  • SCSIコントローラが2個で足りるなら、必ず先に認識して欲しいSCSIコントローラ(SCSIコントローラ0にすべきだろう)の pciSlotNumber を "160" にして削除しないこと。そうすれば、2個目のSCSIコントローラの pciSlotNumber がなんであれ、認識順は守られる。
  • SCSIコントローラが3個または4個の場合には pciSlotNumber を調整することで認識順を制御できる。