読者です 読者をやめる 読者になる 読者になる

Pandora Pocket

MS系の備忘録と日記。三日坊主。

VMware ESXiが対応していないSATAコントローラを追加する

以前から設定していたものの、ESXiをアップデートした際に設定が飛んで再度設定することになったので備忘録。

VMware ESXiはそれなりにいろいろなSATAコントローラに対応してますが、私の使ってるMarvellのコントローラは残念ながら非対応。
ただし、ファイルをいじることによって認識させることが可能です。

設定は下記のサイトを参考に行っています。

サーバのESXi化が泥沼化 その2 - SATAコントローラの追加 [クソゲ〜製作所]

まずESXiの設定を変更してSSH接続できるようにしておきます。

そしたらSSHでESXiに接続して

lspci -v

を実行。
すると下記のような情報がずらずらっと表示されます。

[root@localhost:~] lspci -v
0000:00:00.0 Host bridge Bridge: Intel Corporation Motherboard
Class 0600: 8086:0150

0000:00:16.0 Communication controller Communication controller: Intel Corporation Motherboard
Class 0780: 8086:1e3a

0000:00:1f.2 SATA controller Mass storage controller: Intel Corporation Panther Point AHCI Controller [vmhba0]
Class 0106: 8086:1e02

0000:00:1f.3 SMBus Serial bus controller: Intel Corporation Motherboard
Class 0c05: 8086:1e22

0000:01:00.0 SATA controller Mass storage controller: Marvell Technology Group Ltd. 88SE9230 PCIe SATA 6Gb/s Controller
Class 0106: 1b4b:9230

0000:04:00.0 Ethernet controller Network controller: Intel Corporation 82571EB Gigabit Ethernet Controller [vmnic0]
Class 0200: 8086:105e

0000: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が認識されるようになりました。