ESXi Arm Edition v1.2 でどこまでできるか「vSphere沼にハマっておぼれてみた」vSAN編
前回のESXi Arm Edition v1.2 でどこまでできるか「vSphere沼にハマっておぼれてみた」では,
Raspberry Pi 4 と周辺装機器を用意しハードウエア組み立てと ESXi Arm Edition のインストール、そして vCenter Server への登録(データセンターとクラスタへ)までやりました。今回はその先、外付けした USB ケースに入れた M.2 SSD デバイスを使って vSAN を組んでみます。
前回のおさらい
前回の記事では、Raspberry Pi 4 に ESXi Arm Edition をインストールした 4ホストを、vCenter Server の「クラスタのクイックスタート」を使い、クラスタ構成するところまで行いました。そして、vCenter Server のバージョンによっては vSphere HA の検証ができるので、その環境のための VIB のインストールまで説明をしています。以下の状態ですね。
今回はその先、「3.ホストの設定」から進めていきます。
まずはストレージデバイスの準備
今回は一般的な x86_64 のハードウエアではない Raspberry Pi 4 を使うため、ストレージ関連のデバイスは全て Micro SD または USB でつながなければなりません。Micro SD はUEFI や今後は ESXi Arm Edition のブート用に使われるので、ストレージデバイスとして使うことはできません。それより、そもそも Micro SD のメディア書き込み制限が先に来てしまうでしょう。そこで、今回は USB 3.x のケースに入れた M.2 SSD を 3本用意して、ストレージデバイスとして使うことにしています。
でも、このままではどんなに頑張っても vSAN の必要とする SSD としては認識されず、USB Disk としか認識されません。そこで、すべてのデバイスに対して「私は SSD ですよ!」と認識させるおまじないを掛けます。おまじないと言っても esxcli コマンドですね。
まず、USB デバイスを仮想マシンにパススルーするサービスを停止します。これは前回やっているのでここでは作業しないで良いのですが、一応流れとして思い出せるように記載します。
/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off
これで USB ストレージデバイスがそのまま見えるようになりました。
次のおまじない、vSANがUSBストレージを使えるように詳細設定を追加します。以下のコマンド 2つを入力します。
esxcli system settings advanced set -o /Disk/AllowUsbClaimedAsSSD -i 1
esxcli system settings advanced set -o /VSAN/AllowUsbDisks -i 1
これで Disk にしか見えなかった USB 3.x のケースに入れた M.2 SSD が SSD として見えるようになりますので、次は STAP に新規ルールを追加
esxcli storage nmp satp rule add -s VMW_SATP_LOCAL -d mpx.vmhba32:C0:T0:L0 -o "enable_ssd enabled_local"
最後の "enable_ssd enabled_local" は実際には "enable_ssd" だけで機能します。次にパスのマスク解除。
esxcli storage core claiming unclaim -t device -d mpx.vmhba32:C0:T0:L0
そして、ルールを再読み込み、読み込んだルールの実行。
eesxcli storage core claimrule load
esxcli storage core claimrule run
最後に vSANに Flash だよと認識させる設定を追加。
esxcli vsan storage tag add -d mpx.vmhba32:C0:T0:L0 -t capacityFlash
これで Disk にしか見えなかった USB 3.x のケースに入れた M.2 SSD が SSD として見えるようになります。
クイックスタートの続「3.クラスタの構成」
ここまで準備ができたら左ペインでクラスタを選択し、中央ペインで「設定」=>「クイックスタート」と進んで、「3.クラスタの構成」を開始します。[構成]ボタンをクリックして Distributed Switch を設定、アップリンクが 2つ必要なのに対して 1つめは Raspberry Pi 4のオンボードの vmnic128 を、2つめは USB の 100M の NIC vusb0 を指定して、とりあえずエラーにならないようにします。
次は vSAN ストレージトラフィック用の IP アドレスを指定します。DHCP 配布しているならそのまま、していなければホストごとに固定 IP アドレスを設定します。
詳細オプションは、このクラスタをどのように構成するかになります。さすがに Raspberry Pi 4 でストレッチクラスタまでやることは無いと思うので、NTP サーバーを指定するだけで先に進みます。この詳細設定で気になる設定項目「Enhanced vMotion Compatibility」(EVC)は、CPU Platformが全く異なるので使えません。なので、設定もできないようにグレーアウトで出てきます。
先のコマンドでしっかり Flash として設定ができていると、次の「ディスクの要求」では以下のように自動的に推奨構成としてディスクの構成が行われます。
ホスト単位で見ても、期待通りの構成が組まれていました。
最後にプロキシーを使っている場合の設定がありますが、我が家の家ラボでは使っていないのでそのまま先に、
確認画面は内容を確認して、問題なければ[終了]で構成を開始します。
これで Raspberry Pi 4 上の ESXi Arm Edition に vSAN が出来上がりました。
データストアとしても見えるようになります。
かなりイレギュラーな形で Raspberry Pi 4 の ESXi Arm Edition 上に vSAN 組んでいますので、もちろん性能や意図しないトラブルもあるかもですが、とりあえずそれっぽく組めたので良しとします。