はじめに
みなさん、VMware Virtual SAN(=以下、vSANという)をご存じでしょうか。サーバ内蔵ディスクを共有ストレージとする、vSphere に完全に統合された機能で有名なストレージ仮想化製品です。
一般的に、vSANを用いるのは、ESXiが3台以上あるような中から大規模なシステムであることが多いです。もちろんその分、ライセンスが多くかかります。
他方で小規模なシステムにおいて、もっと手軽にvSAN使えないかと考えていたところ、見つけたのが今回紹介する”2node vSAN”です。
通常、ESXi3台でvSANクラスタ組むところを、なんとESXi2台でvSANクラスタが作れる方式です(実はこれは半分正解で半分不正解ですが)。今回はその構築方法を解説しようと思います。
準備
今回の構築検証では、以下を用いました。
・ESXi 7.0 U2:3台
・vCenter Server Appliance(以下、vCSAという) 7.0 U2:1台
・vSAN Witness Appliance(以下、WAという) 7.0 U2:1台
※1.検証をNested ESXi環境で行いましたため、物理配線については考慮していません。物理層の準備は以下のサイトが詳しいです。
https://japancatalog.dell.com/c/isg_blog_2node_vsan_03/
※2.2node vSANを用いる場合、ライセンスは以下のものが必要になります。
・VMware vSphere Essentials Plus Kit:1ライセンス
・vSAN Standard (/Advanced, /Enterprise):2台分
また、ネットワーク構成は以下の通りです。(以下、画像を参照)
・ESXi真ん中
vmk0:192.168.197.101
vmk1:192.168.184.101
・ESXi右
vmk0:192.168.197.102
vmk1:192.168.184.102
・Witness Appliance
vmk0:192.168.197.200
構築
ESXiとvCSAの初期設定および、ライセンス認証については省略いたします。
なお、ESXiクラスタ構成は以下の様にする必要があります。(第4オクテット200のホストは後述します)
●vSAN用のvSphereクラスタに所属させるホスト
vSANクラスタに所属するESXi(第4オクテット101, 102):2台
●vSAN用のvSphereクラスタに所属させないホスト
WAをデプロイするためのESXi(第4オクテット103):1台
※”はじめに”で半分正解で半分不正解と述べましたが、それはWAをデプロイするための1台が必要なため、実質3台のESXiが必要です。ただしこの1台は低スペックかつ遠方に設置してよいというメリットがあります。

作業の大枠は以下の通りです。
1.WAのOVFデプロイ
2.WAをDatacenterに追加
3.vSANネットワーク設定
4.vSAN監視の有効化
5.vSANの有効化
1.WAのOVFデプロイ
左ツリーにて、vSANクラスタに所属していないESXiを右クリックし、[OVFテンプレートのデプロイ]をクリックする。

WAのOVAファイルをアップロードする。

ディスク上のサイズが不明となっていますが、検証した際には50GB弱でした。

vSANクラスタやvSphereクラスタの要件に合うサイズを指定します。

最低限、rootのパスワードを設定する必要があります。IPアドレスは後からでも設定できます。

各種設定を確認し、完了をクリックします。

WAのデプロイ完了後、Webコンソールなどから通常のESXiとして操作できますので、管理IPアドレス等の設定を行います。
2.WAをDatacenterに追加
WAをESXiホストとして追加します。このとき必ずvSANクラスタの外に追加してください。

今回、WAには第4オクテット200のIPアドレスを付与しています。

ここはやり直しができないので注意してください。WAには専用のライセンスが既に割り当たっていますので、これを外さないでください。評価ライセンスを割り当ててしまうと、正常に機能しなくなります。また1度License 1を外すと再割り当てができないそうです。

3.vSANネットワーク設定
vSANセグメントとvSAN監視セグメントは以下の通りです。それぞれ独立したセグメントに分ける必要があります。
まず、WAの設定から行います。WAはデフォルトで、VMkernelアダプタが2つ設定されており、vmk1にてvSANサービスが有効になっています。実は、1本化することも可能なため、今回はvmk0に統一することにしました。


次に、vmk0の編集をクリックし、こちらで管理とvSANサービスを有効にします。


次に、vSANクラスタ配下のESXiのVMkernel設定を行います。確認のため、もう一度構成図を引用します。この図で言うと、真ん中と右のvmk1を新規作成し、vSANサービスを有効にします。


vSANのデータ通信用のネットワークなので、ジャンボフレームを有効にします。


ここで、vSANにチェックを入れます。


上記と同じ手順で、もう1台のvSANクラスタ下のESXiにvmk1を追加します。
4.vSAN監視の有効化
続いて、vmk0のvSAN監視サービスを有効にしたいところなのですが、実はこのサービスはvSphere 7.0 U2現在、GUIから有効化できません。そのためESXiへSSH接続を行い、esxcliコマンドで有効化を行います。
有効化コマンドは
esxcli vsan network ipv4 add -i vmk0 -T=witness
です。その下のコマンドは設定の確認コマンドです。

さて、vSphere Clientに戻ると、確かにvmk0にvSAN監視サービスが追加されたことを確認できます。

5.vSANの有効化
さて、いよいよvSANの有効化を行います。以下は、クラスタ作成時のクイックスタートの画面です。
画面右下の[構成]をクリックします。

Distributed Switch(通称、vDS)を合わせて作成する際には、ここでも作成できます。今回の検証には関与しないので[後でネットワークを設定]にチェックを入れてます。

vSANのオプションは必ず、[2ノード構成のvSANクラスタ]を設定しましょう。

それ以外は後から編集できるので、デフォルト設定でよいです。

vSANに使う、キャッシュ層とキャパシティ層を設定します。今回の検証ではどちらもHDDで設定しましたので、キャッシュ層のドライブタイプは[フラッシュとしてマーク]としています。
また、キャッシュ層は最低でも各ホスト1つ必要なので、キャッシュ層用に小さめのデータボリュームを作成した方がキャパシティ層のロスが少なくなります。

監視ホストには、WAの疑似ESXiを指定してください。
(第4オクテット103は、WAをデプロイするためのESXiです)

監視ホストのディスクの要求は、WAをデプロイした際に指定したサイズに依存します。以下はTinyの場合です。

後は、FINISHをクリックするとvSANの構成が行われます。途中warningが出ることもありますが、しばらく待つと自然回復することが多いです。
以下の通り、vsanDatastoreが作成されています。主題の通りホスト数は、”2”とカウントされています。

おわりに
以上、2node vSANの構築方法のご紹介でした。ぜひ社内検証環境をvSAN化してみてください。
本番環境に採用する場合、3node vSANよりも耐障害性が劣りますので、配線の冗長化等を考慮しないといけないと思います。