ESXiをUSBブートで利用時の、パススルー設定に注意。

ESXiをはじめ、最近の仮想化製品はデバイスを仮想マシンにアタッチできるので便利ですよね。
仮想マシンだからという制約がかなり低減されていると思います。

ESXiだとパススルーと呼ばれてまして、
その名のとおりESXiホストに接続されているデバイスを仮想マシンに直接接続させることが可能。
で少し前に、ふとUSBを仮想マシンに接続させようとした際にトラブリました。

何気なくUSBを仮想マシンに接続させるために
パススルーの設定をして、設定適用のために再起動しました。
普通にESXiが起動して、USBデバイスも
仮想マシンから見てるようになりめでたしめでたしと思ったのですが、
その後幾つか気になることが発生しました。

設定を変更した内容が、再起動したら消える。
→これは定期的にESXiはバックアップ処理を入れているから
 そのタイミングに合わなかったのかな?と思って
 自分を納得させました。(気付けよ。。というはなしなんですが)

ESXiのvib(パッチ)を適用したら、下記エラーがでて怒られる。
(このタイミングでブートデバイスである、USBデバイスになにか問題がある?と思った)
「The transaction is not supported : ・・・略・・・ cannot be removed live.」

で、ESXiのコンソールに接続してデバイス一覧を確認したら、
Bootデバイスが一覧にありませんでした。。(trueが一つもない)

[XXXX@XXXX:~] esxcli storage core device list | grep Boot
   Is Boot USB Device: false
   Is Boot Device: false
   Is Boot USB Device: false
   Is Boot Device: false
   Is Boot USB Device: false
   Is Boot Device: false
   Is Boot USB Device: false
   Is Boot Device: false

こうなるとESXiがUSBメモリを認識できていないのは確実。
最近の設定変更を思い出してみると、タイトルになるのですがUSBのパススルー設定をしたなと。
ここで、USBのコントローラ毎パススルー設定をしているのが発覚。
ESXiが起動するまでは、BIOSからブートメディアとして見えているが、
ESXiがメモリにロードされて完全に起動するとパススルー設定が有効化させて、
ブート用USBメモリがESXiから見えなくなるという。。
なので、設定もメモリ上では保持しているが、
再起動等する際には保存されないので先祖返りするということに。


じゃあ、どうやって設定を戻すの?ということになるわけです。
設定変更しても、ブート用USBメモリに設定が反映されないのでしょと。

はい、こうなると再インストールした後に設定を戻すしかありません。
それは、、うん、そうだよね。ということになるのですが。

ちなみにVMWareのKnowledge Baseにご丁寧に説明もあります。
ESXiがUSBからブートしているのを検知できるんだから、設定時に警告だしてくれないかなぁ。
ちょっと求めすぎかなぁ。

kb.vmware.com