vSANクラスタを作成し、そのクラスタ上にネストされたESXi7環境を作成しようとすると、上図のようなエラーが出ました。これに対する対処のTipsです。
症状
出たエラー画面は上図のようなものです。(検索用に以下テキストで貼り付けていますが、画像をOCRで文字起こししたものなので多少誤記があるかもしれません)
VMware ESXi 7.0.2 Installer An unexpected error occurred See logs for details OSError: /vmfs/devices/disks/mpx.vnhbal:CO: TO:LO:7: failed to format vnf s6l volume (rc=-1): [create fs deviceName: '/vmfs/devices /disks/mpx.vnhba:CO: TO:LO:7', fsShortName: 'vmfs6l', fsName: 'OSDATA-acf5ec0d34a74928bfb225bd622c05c4' deviceFullPath:/dev/disks/mpx.vnhbal:CO: TO:LO:7 deviceFile:mpx.vmhbal:CO: TO:LO:7 Device: '/vnf s/devices/disks/mpx.vnhbal:CO: TO:LO:7' is allowed to be formatted as VMFSL Checking if remote hosts are using this device as a valid file system. This may take a few seconds... Creating vmf s61 file systen on "mpx.vnhbal:CO:TO:LO:7" with blockSize 1048576, unnapGranularity 1048576, unnapPriority default a nd volume label "OSDATA-acf5ec0d34a74928bfb225bd622c05c4". Failed to create VMFS on device mpx.vnhba:CO: TO:LO:7 /vnf s/devices/disks/mpx.vnhbal:CO:TO:LO:7: failed to create VMFS (errno=38, rc=-1): Failed to create VMFS on device mpx.vnhbal:C 0:TO:LO:7]
このように、インストール先のストレージを選択して、インストールを開始した直後に5%の時点で必ず止まってしまう、という症状です。
原因
今回の症状としては、以下ブログ(英文)と酷似していると思います。
Even though VMFS-5 no longer uses SCSI-2 reservations, the underlying LVM (Logical Volume Manager) driver for VMFS still requires it. Since VSAN does not make use of SCSI-2 reservations, it did not make sense to support it and hence the issue.(引用)
ざっくりいうと、”VMFSの基盤となるLVMがコケてしまって、インストール時のVMFSボリューム作成に失敗している”のが原因のようです。
対処法
対処方法のアプローチとしては、以下の2つの選択肢があります。
- vSANクラスタに直接コマンドラインから設定を加える
- 別のストレージ上にインストールして回避する
一応、両方のやり方について言及していますが、私は1はスルーして2を実施しました。(理由は後述)
vSANクラスタに直接設定を加える方法
先程のブログの中で紹介されていた手法です。
vSANクラスタ(=今回ネストされたESXiを載せようとしている、ベースのESXi7環境)のホストに対し、以下コマンドを実行します。(実行可否は未確認)
esxcli system settings advanced set -o /VSAN/FakeSCSIReservations -i 1
なお注意点として、先般のブログによると、”このコマンドを実行しても、その結果が反映されているかを確認することができない”とあります。
The only drawback was that even after running the command you don’t see it under advanced settings nor when running esxcli system settings advanced list |grep VSAN . (引用)
以下がその確認コマンドです。(実行可否は未確認)
esxcli system settings advanced list |grep VSAN
今回は、参考にしたブログの執筆日が2016年とかなり前のため、このコマンドで変更することが推奨されているかどうかがわからないこと、またこのコマンドを使うことによる他への影響が未知数で、切り戻しの方法も簡単に確立できそうにないことから、この方法は見送りました。
別のストレージ上にインストールする方法
今回インストールしようとしていたホストには、各ホスト(#1を除く#2~4)にローカルのデータストア領域があったので、そちらに作成しました。
上図のような感じで、vSANホスト上ではなく各ホストのローカルにあるデータストアにディスクイメージを作成します。(上図ではホスト#3にある”esxi-3_OS_Datastore”内に作成した)
結果、下図の様に無事インストールに成功しました。
続いて、ベースとなるESXiホストのローカルデータストアにインストール成功したNested-ESXi(上図左上にある”testesxi-4”)をクローンし、必要台数分作成します。
上図のように、vSANデータストア上に、RAID5で作成しました。(お手元の環境により、ストレージポリシーは変わると思います。)
クローンVM(Nested-ESXi-1)が無事作成でき、起動確認できました。
インストール直後のESXiは、クローンしたVM同士で何らかの設定が干渉しあって問題になる…ということも無さそうですし、このまま最初に作ったVMを必要台数分クローンすれば良さそうです。
vSANの設定にコマンドラインから設定を加える方法と比べると手間は多くなりますが、増える手間に対して、闇雲に設定をいじることで環境を汚染してしまうリスクを回避できるメリットのほうが大きいので、個人的には後者のやり方を支持します。
今回は試していませんが、NFSマウントされたNASのデータストアがあれば、仮に物理ホスト上に全くデータストアがない(or空きが無い)環境下でも同様のやり方で当初のエラーを回避できるかもしれませんね。
コメントを書く