start

サーバのESXi化が泥沼化 完結編

なんかもう書くのも面倒になってきた。

H77のSATAをデバイスパススルーするとPSoDでESXiごと死ぬのは、ESXi 5.1のバグの模様(Esxi 5.1 pci passthrough broken)。ESXi 5.0 Update 1を入れ直して、諸々設定し直したら何の問題も無くパススルー出来た。

結論。5.1はカス。

5.1にしたら今まで出来てたパススルーが出来なくなった報告が随所で上がってるので、PCIパススルーを使いたい人は5.0U1に留まるのが吉。

5.1のvSphere Clientはバギーだし(日本語ロケールだとデータストア作成出来ないとかアホかと)、仮想マシンバージョン9のVMはWeb Clientからじゃないと作れないとか、Web Clientは有償版(vCenter Server?)でしか使えないとか。

結論。5.1はカス。

いや、まぁ、無償で使わせて貰ってるので文句言える立場にはないが……。

サーバのESXi化が泥沼化 その2 - SATAコントローラの追加

前回、H77のSATAをパススルーしたら他のSATA I/Fが認識されなくなったのは、AHCIのドライバが読み込まれなくなったせいらしい。

ESXiの各種ドライバは、ESXiが公式に対応するデバイスが存在して初めて読み込まれる仕組みになっているそうなので(まぁそりゃそうか)、H77がパススルーによって見えなくなる→AHCIドライバが読み込まれない→他のSATA I/Fが使えないという状態だった模様。これまでASM1061と88SE9123は、H77 SATAのおこぼれで偶然動いていたというわけ。

デバイスとドライバの対応表を弄れば、非公式デバイスを使えるようになるっぽいので書き換えてみる。

下記作業ログ内に出てくるsata-ahc.v00は、sata-ahc.v00(ハイフン)な環境とsata_ahc.v00(アンダースコア)な環境がある模様。自分の環境では間違いなくハイフンなんだけど謎。コマンドをコピペされる際は注意されたし。

5.1をクリーンインストールした場合はアンダースコア、5.0から5.1にアップデートした場合はハイフンな模様。

  1. ESXiホストにSSHでログイン
  2. lspciコマンドで追加したいデバイスのベンダIDとデバイスIDを確認(必要な箇所のみ抜粋)
    # lspci -v
    000:001:00.0 SATA controller Mass storage controller: Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller [vmhba34]
    	 Class 0106: 1b4b:9123 ←これ
    
    000:006:00.0 SATA controller Mass storage controller:   [vmhba36]
    	 Class 0106: 1b21:0612 ←これ

  3. hwinfoコマンドでサブIDを確認(5.0のみ。5.1だとコマンドがなくサブIDは0000:0000で大丈夫っぽい?)

    # hwinfo -p
    000:001:00.0 1b4b:9123 1b4b:9123 11/ 11/0x88 A V ahci         vmhba34
    000:006:00.0 1b21:0612 1849:0612  5/  5/0xa0 A V ahci         vmhba36
                              ↑これ

  4. マップファイルを展開

    ~ # cd /tmp
    /tmp # mkdir tweak; cd tweak
    /tmp/tweak # vmtar -x /bootbank/sata-ahc.v00 -o sata-ahc.tar
    /tmp/tweak # tar xvf sata-ahc.tar 

  5. マップファイルに上で確認したデバイスを追加

    /tmp/tweak # vi etc/vmware/driver.map.d/ahci.map
    (↓を最後に追加)
    regtype=linux,bus=pci,id=1b4b:9123 1b4b:9123,driver=ahci,class=storage
    regtype=linux,bus=pci,id=1b21:0612 1849:0612,driver=ahci,class=storage

  6. vSphere Client上でストレージアダプタ名を正しく表示させたければ、The PCI ID Repositoryでベンダ名とデバイス名を探して、デバイス名リストに追加する。デバイス行のインデントはタブ文字なので注意。弄らなくても動作に支障はない。

    /tmp/tweak # vi usr/share/hwdata/driver.pciids.d/ahci.ids
    1b4b  Marvell Technology Group Ltd.
            9123  88SE9123 PCIe SATA 6.0 Gb/s controller
    1b21  ASMedia Technology Inc.
            0612  ASM1062 Serial ATA Controller

  7. 編集したファイルをアーカイブし直し、元のアーカイブを上書き

    /tmp/tweak # rm sata-ahc.tar
    /tmp/tweak # tar cvf sata-ahc.tar etc usr
    /tmp/tweak # vmtar -c sata-ahc.tar -o sata-ahc.vgz
    /tmp/tweak # mv sata-ahc.vgz /bootbank/sata-ahc.v00

  8. 再起動

上手く追加出来てればvSphere Clientから正しく認識される。追加前と追加後でvmhbaの割り当て順が変わってるが、まぁキニシナイ。

これでようやくH77 SATAのパススルーが出来る!と、喜び勇んで設定&FreeBSDのVMに割り当てて起動!そして、PSoD………/(^o^)\ナンテコッタイ

サーバのESXi化が泥沼化

SAS6i/Rを入手したので、こいつにHDDをぶら下げてPCIパススルーでかつる!!と思いきや、勝てなかった\(^o^)/

パススルーしてみたら、FreeBSDのブートでこけやがる…。デバイスは認識されるもののmpt_wait_req(6) timed outというログが出て先に進まない。非仮想環境だと普通にブートする。

そして、SAS6i/Rには2TBの壁があった・・・orz 搭載されているLSISAS1068Eの仕様のようで、どう足掻いても回避不能。2.2TB超のドライブは先頭2047GiB分しか使えない。ググってるとファーム更新で“support 3TB HDD”的な情報も引っかかるが、3TB HDDを認識するようになったという意味での“support 3TB”っぽいので要注意。1068EなHBA持ってる人は素直に諦めるんだ。君も男なら聞き分けたまえ。

英語力が足らないので間違ってるかもしれないが、3Gbps世代のLSI Logicのコントローラには2TBの壁があると見て良さそう(→この辺)。

さらばSAS6i/R。今どき3TB HDDに対応してないI/Fなんて使えるかああああ!!

というわけで、最終手段、オンボードSATAをパススルーしてみる。

うちの鯖にくっついてるストレージは以下の10台。

  • システム用HDDx2(RAID-1)
  • データ用HDDx7(3台でRAID-Zにしてストライピング+スペア1台)
  • ESXiのデータストア用SSDx1

これらが、H77(6ポート)、ASM1061(2ポート)、88SE9123(2ポート)の3系統にぶら下がっている。

データストアが繋がってる系統はパススルー出来ない──つまり、HDD9台のうち1台はRDMで繋がざるを得ない。となるとESXiの2TBの壁に当たるが、システム用HDDが750GBなので取りあえずは問題なし。この1台だけda扱いとなり非常に気持ちが悪いが、最早止むを得まい。

H77 SATAとASM1061をパススルーしてESXiを再起動。

・・・あれ、恒久ストレージが無いってvSphere Clientに怒られてるんですけど。パススルーしてないハズの88SE9123が見えないんですけど。どうなってんだー。

VMFS-5で物理RDMしてもFreeBSDで3TBのHDDが変な件

2TB超のHDDは何かと扱いが面倒だが、ESXiにも2TBの壁があるそうで。

ESXi 5、正確にはESXi 5から採用されたVMFS-5を使う事で、物理Raw Device Mappingの時に限って60TBまでのストレージが扱えるようになった模様(→公式ソース)。ちなみに、他の上限値はconfiguration maximumsでググると出てくる。

そんな事情があったとは露知らず、何の気なしに3TBのHDDを物理RDMしてFreeBSDのVMにアタッチしたら

da3: <ATA ST3000DM001-9YN1 CC4B> Fixed Direct Access SCSI-5 device
da3: 0MB (no media?)
(da3:mpt0:0:3:0): unsupportable block size 0
(da3:mpt0:0:3:0): unsupportable block size 0

なーんてエラーが出る。容量が0MB?なんじゃそりゃ。

ググってみたものの症例自体あまりヒットしないし、当然解決方法も分からないし、タイトルにあるような結論に至ると。SATA-USB変換器の2TB制限に遭遇した時以来の衝撃だわ。

FreeNAS 8.2.0 BETA 3 sees 3TB ESXi 5 RDM as 0MBを見ると、HGSTのドライブは大丈夫でSeagateはダメ、HBAがオンボードだとダメでLSI Logicだとおkなんて書き込みもあるが、情報が少な過ぎて何とも分からん。

HBAそのものをパススルーしてしまえば回避出来るハズだが、マシンの構成上、どうしてもHDD1台だけパススルーなHBAから溢れちゃうのよねorz PCIeのSATAカードは余ってるがスロットが埋まってるし、完全に詰んだ\(^o^)/。その1台だけRDMという手もあるが、流石に気持ち悪くてやりたくないw SAS6i/Rでも買うかなぁ……SFF-8484ケーブルの方が高く付きそうではあるが……。

VMware Fusion上でVMware ESXiを動かしVMware Fusion上のWindows XP上のvSphere Clientから接続

家鯖を仮想マシン化するべく作業中。うちの鯖は台所に設置してあり、モニターのある所まで持って行くのが面倒なので、VMware Fusionをフル活用してお手軽構築。

まず、VMにESXiのISOとUSBメモリをアタッチして、ESXiをインストール。

次にUSBメモリのESXiをブートしたいが、VMwareはUSBブートに対応してないため、Plop Boot Manager経由でブートして、IPアドレスなどを設定。

最後に、もう1つのVM上のvSphere Clientから接続出来る事を確認して完了。鯖マシンにUSBメモリを挿して完成。うはwwww仮想マシンテラ便利wwwww

………はずだったんだけど、鯖のUSBブートが無効になってて、結局モニターに繋いだ訳ですが('A`)。ついでに、USBブートでも仮想マシンの設定保存のために固定ディスクないしネットワークストレージが必要って事が判明したので、鯖にSSDを増設してESXiを入れ直す事になった訳ですが。

ESXi 5.1からは管理ソフトとして従来のvSphere Clientに代わり、vSphere Web Clientの使用が推奨されてるようになったらしい。ESXi 5.1では仮想マシンバージョンが9になったが、vSphere Client経由ではバージョン8までの仮想マシンしか作れず、そもそもvSphere Clientに結構不具合がある模様。

ならばWeb Clientを使おうと調べてみたら、有償製品であるvCenter Serverがないと使えないっぽい。うーん、ESXiの未来は暗い感じがするな……Xenを使った方が良かったりするんだろうか。

一気に仮想化熱が冷めてしまったでござる。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo