Pandora Pocket

IT系と日常系の備忘録。三日坊主。

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

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

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

サーバのESXi化が泥沼化 その2 - SATAコントローラの追加 前回、H77のSATAをパススルーしたら他のSATA I/Fが認識されなくなったのは、AHCIのドライバが読み込まれなくなったせいらしい。 ESXiの各種ドライバは、ESXiが公式に対応するデバイスが存在して初めて読み込まれる仕組みになっているそうなので(まぁそりゃそうか)、H77がパススルーによって見えなくなる→AHCIドライバが読み込まれない→他のSATA I/Fが使えないという状態だった模様。これまでASM1061と88SE9123は、H77 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が認識されるようになりました。