vSANはIAサーバのディスクを使った高可用性を実現する技術です。ストレージに比べれば安価に実現できるものの、SSDを備えた物理サーバを3台以上用意しなければならず、安価と言えども個人で検証するのはハードルの高い技術です。このページではSSDを擬似的に作り、IAサーバ1台でvSANを検証する方法をまとめます。
このページではvSANのデフォルト設定であるRAID1構成の構築方法を説明します。
Nested ESXiの作成
ハードウェア構成
vSANは3台以上のESXiで構成されますので、Nested ESXiを3つ以上作成します。右クリックメニューの「新規仮想マシン」からNested ESXiを作成します。
vSANはキャッシュ層とキャパシティ層の2つのディスクが必要です。さらにOS用途として1つのディスクが消費される事を考えると、最低でも3つのディスクが必要になります。このページでは、以下スクリーンショットのように4つのディスクで構成される例を紹介します。
OS用途とキャッシュ用途は大きなディスクサイズを必要としないので、以下スクリーンショットのように2つは小さめの設定としても差し支えございません。
SSDの擬似
vSANのキャッシュ層として使用するディスクはSSDにしなければなりません。Nested ESXiでvSANを動作確認する場合は、SSDを擬似する手間が必要となります。
まず、SSDを擬似するディスクのscsiのノード番号を控えます。以下スクリーンショットの場合、「scsi0:1」です。
SSDを擬似する設定はGUIで投入する事はできず、仮想マシンの構成を表すvmxファイルを直接編集する必要があります。ESXiへsshログインし、viなどでvmxファイルを直接編集します。
「scsi0:1.virtualSSD = 1」のような設定を加筆します。など、scsiのノード番号は適宜変更ください。
編集後、仮想マシンを起動し、ESXiの管理画面にて「ストレージ」「デバイス」の順に押下します。ディスクをSSDとして認識している事を確認します。
vSANクラスタの構成
クラスタの作成
vSAN用のクラスタを作成します。データセンターの右クリックメニューを表示し、「新規クラスタ」を押下します。
「vSphere DRS」「vSphere HA」「vSAN」を有効にします。
VMkernel
メンテナンスモードを解除する前に、VMkernelを編集し、vSAN用途の通信が疎通可能になるようにします。
ESXiホストを選択し、「VMkernelアダプタ」「編集」の順に押下します。
「vMotion」「管理」「vSAN」を有効にします。
もし物理NICの数に余裕があれば、vmkを複数作成し、管理, vMotion, vSANなど用途毎に通信経路を分ける事もできます。
残りのESXiホストについても同様に「vSAN」を有効にします。
ディスク管理
「クラスタ」「設定」「ディスク管理」の順に画面遷移し、ESXiホストのうち1つを選択します。すると、「ディスクグループの作成」を選べるようになりますので、「ディスクグループの作成」を押下します。
キャッシュ層とキャパシティ層のディスクを選び、「作成」を押下します。
残り2台のESXiホストについても、同様の操作をします。
全ESXiホストの操作が完了すると、以下のような画面になります。
メンテナンスモード解除
メンテナンスモードを解除します。
残り2台のESXiホストについてもメンテナンスモードを解除します。
メンテナンスモード解除後、vSANとしてのディスクを認識している事を確認します。
VMware HA 障害時の動作確認
vSANのディスク上に仮想マシンを作成し、その仮想マシンを用いて障害時の動作を観察します。
コンピュートリソースの障害
以下スクリーンショットのcentos50(192.168.1.50)の障害時の挙動を確認します。ESXiホストを選択し、「仮想マシン」タブを開くと、どの仮想マシンがどのESXiで動作しているかを確認できます。
centos50(192.168.1.50)へpingを打ちつつ、ESXiホストを再起動します。しばらくすると、pingの応答がなくなります。
さらに待つと、pingの応答が復活します。
centos50(192.168.1.50)がesxi141(192.168.1.141)からesxi143(192.168.1.143)へ、vMotionされたことが分かります。
ストレージリソースの障害
以下スクリーンショットのcentos50(192.168.1.50)の障害時の挙動を確認します。仮想マシンを選択し、「監視」「物理ディスクの配置」の順に押下すると、どのESXiホストにディスクが格納されたかが分かります。centos50(192.168.1.50)のディスクはesxi142(192.168.1.142)とesxi143(192.168.1.143)に格納されている事が分かります。
ディスクが格納されているesxi142(192.168.1.142)を再起動させます。ディスクはRAID1で冗長化されているので、ping応答は全く途切れません。
通信断は発生していませんが、ディスクの状態を見ると確かに障害になっています。
ESXiが復旧すると以下のように表示されます。