以前から設定していたものの、ESXiをアップデートした際に設定が飛んで再度設定することになったので備忘録。
VMware ESXiはそれなりにいろいろなSATAコントローラに対応してますが、私の使ってるMarvellのコントローラは残念ながら非対応。
ただし、ファイルをいじることによって認識させることが可能です。
設定は下記のサイトを参考に行っています。
まずESXiの設定を変更してSSH接続できるようにしておきます。
そしたらSSHでESXiに接続して
lspci -v
を実行。
すると下記のような情報がずらずらっと表示されます。
[root@localhost:~] lspci -v
0000:00:00.0 Host bridge Bridge: Intel Corporation Motherboard
Class 0600: 8086:01500000:00:16.0 Communication controller Communication controller: Intel Corporation Motherboard
Class 0780: 8086:1e3a0000:00:1f.2 SATA controller Mass storage controller: Intel Corporation Panther Point AHCI Controller [vmhba0]
Class 0106: 8086:1e020000:00:1f.3 SMBus Serial bus controller: Intel Corporation Motherboard
Class 0c05: 8086:1e220000:01:00.0 SATA controller Mass storage controller: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller
Class 0106: 1b4b:92300000:04:00.0 Ethernet controller Network controller: Intel Corporation 82571EB Gigabit Ethernet Controller [vmnic0]
Class 0200: 8086:105e0000:04:00.1 Ethernet controller Network controller: Intel Corporation 82571EB Gigabit Ethernet Controller [vmnic1]
Class 0200: 8086:105e
私のESXiサーバーで利用しているSATAコントローラはMarvellの88SE9230なので
Class 0106: 1b4b:9230
をメモっておきます。
次はSATAコントローラのマッピングファイルを展開。
[root@localhost:~] cd /tmp
[root@localhost:/tmp] mkdir tweak; cd tweak
[root@localhost:/tmp/tweak] vmtar -x /bootbank/sata_ahc.v00 -o sata_ahc.tar
[root@localhost:/tmp/tweak] tar xvf sata_ahc.tar
元記事ではsata-ahc.v00でしたが今回はsata_ahc.v00でした。
展開したらマッピングファイルを開きます。
[root@localhost:/tmp/tweak] vi etc/vmware/driver.map.d/ahci.map
開いたら一番最後の行に下記の記載を加えます。
regtype=linux,bus=pci,id=1b4b:9230 0000:0000,driver=ahci,class=storage
id=のところにメモっておいたデバイスIDを記載しておきます。
vSphere Clientで正しくデバイス名を表示させておきたいのでデバイス名ファイルを開いて最後に下記の記載を追加します。
[root@localhost:/tmp/tweak] vi usr/share/hwdata/driver.pciids.d/ahci.ids
1b4b Marvell Technology Group Ltd.
9230 88SE9230 PCIe SATA 6Gb/s Controller
あとは下記の通りマッピングファイルをアーカイブしてもともとのファイルに上書き、ESXiマシンを再起動すれば完了です。
[root@localhost:/tmp/tweak] rm sata_ahc.tar
[root@localhost:/tmp/tweak] tar cvf sata_ahc.tar etc usr
[root@localhost:/tmp/tweak] vmtar -c sata_ahc.tar -o sata_ahc.vgz
[root@localhost:/tmp/tweak] mv sata_ahc.vgz /bootbank/sata_ahc.v00
これで88SE9230が認識されるようになりました。