VMware vSAN ミラーリングについて


この記事では、VMware vSANのストレージポリシーである「許容する障害数」のミラーリング(RAID1)方式の作成方法から配置について詳しくご紹介していきます。

使用する環境

の記事でご紹介す内容は、許容される障害数のルールを設定したストレージポリシーの作成手順と、作成したストレージポリシーを適用した仮想マシンの作成手順です。

今回は、許容される障害数のルールの設定値を1にしますので、ESXiホスト3台以上の構成から設定可能です。

使用する環境は以下です。
・ESXi ホスト
・台数:4台(Nested仮想マシン)
・バージョン:VMware ESXi 7.0 Update 2a

vSANにおけるミラーリング(RAID1)の概要

まず、ミラーリングに関する説明の前にvSAN環境で動作する仮想マシンのデータに関してご説明します。
vSANはオブジェクトベースのファイルシステムです。仮想マシンは、vSANデータストア上でオブジェクトというデータから構成されています。仮想マシンには仮想ディスクのデータであるVMDKオブジェクトをはじめ、仮想マシンホームネームスペース(vmxなどの構成データ)や、スナップショットのオブジェクトが含まれています。これらのオブジェクトから仮想マシンとして動作しています。

通常のデータストアとして、参照すると下記のようにファイルとして認識します。

下記のスクリーンショットはvSphere ClientでvSANから仮想マシンのオブジェクトを参照した画面と、通常のデータストアとして、仮想マシンのファイルを参照した画面です。
vSANから仮想マシンのデータを参照すると、このように複数のオブジェクトで構成されていることがわかります。vSAN上ではオブジェクトというデータから仮想マシンが動作しているということを、理解できればと思います。


ここからは「許容される障害数」のミラーリングのストレージポリシールールに関して説明していきます。
ミラーリングは、仮想マシンを構成しているVMDKなどの各オブジェクトを複製し、可用性を担保します。最大で4重まで複製することができます。多重化したオブジェクトは、vSANクラスタ内のそれぞれ異なるESXiホストに配置されます。この配置される多重化したオブジェクトのデータを「コンポーネント」と呼びます。多重化した分コンポーネントの数が増えます。
また、コンポーネントには2つ種類があります。1つは、前述で説明した多重化したオブジェクトのデータが含まれているコンポーネントです。
もう1つは、Witnessです。
Witnessは、ミラーリングのストレージポリシールールを適用した際に作成される監視用のコンポーネントです。Witnessの容量自体はオブジェクトのデータが含まれるコンポーネントとは異なり、2MB程度のメタデータとなりますので、オブジェクトのデータが含まれるコンポーネントと比べるとほとんど容量はありません。
下記の図は、「許容される障害数 = 1」(FTT = 1) の場合の例ですが、仮想マシンを構成する各オブジェクトに対して、3つのコンポーネントをクラスタ内のそれぞれ異なるESXiホスト3台に配置しています。この3つのコンポーネントのうち、2つは多重化されたオブジェクトのデータです。もう一つは Witness です。


「FTT = 2」の場合は、対象の仮想マシンの各オブジェクトに対して、同時に2つミラーリングされるため、3つの多重化されたオブジェクトのコンポーネントと2つのWitness がクラスタ内のそれぞれ異なるESXiホスト5台に配置されます。
各設定値のESXiホストの最小台数と必要容量のサマリは以下です。

前述でWitnessはミラーリングのストレージポリシールールを適用した際に作成される2MB程度の監視用のメタデータと説明しましたが、動作の詳細についても説明させていただきます。
FTT=1の場合、二重のミラーリングです。オブジェクトのデータが含まれるコンポーネントは2つのESXiホストに配置されますが、このホスト間で通信断裂などの障害が発生した場合、どちらを正とするか、判断することができません。ここにWitnessが加わることにより、互いに通信できる二つのコンポーネントが正と判断できます。いわゆる多数決での判定が可能になります。
なお、Witnessが稼働しているESXiホストで障害が発生した際は、多数決での判定によって、互いに通信できるオブジェクトのデータが含まれるコンポーネントが存在する2つのESXiホストが有利となり、サービスの継続が可能という判断になります。
下記はVMDKオブジェクトを例としています。

下記のスクリーンショットはvSphere Clientでコンポーネントの配置先ESXiホストを確認している画面です。「test」という仮想マシンに対して、FTT=1のミラーリングを適用しています。
Hard disk1がvmdkオブジェクトですが、配下にコンポーネントが2つとwitnessコンポーネントが1つあります。そして、各コンポーネントはそれぞれ異なるホストに配置されています。

ストレージポリシー作成

vSANを使用する場合、パフォーマンスや可用性などの仮想マシンのストレージ要件を、ストレージポリシーという形で定義できます。
今回は可用性に関する要件の「許容される障害数 = 1」(FTT = 1)を作成します。

1.[メニュー]- [ポリシーおよびプロファイル]を選択します。

2.[仮想マシンストレージポリシー]-[作成]をクリックします。

3.名前に任意の名前(今回はFTT1)を入力し、[次へ]をクリックします。

  1. 「vSAN」ストレージでルールを有効化にチェックし、[次へ]をクリックします。

  2. 以下の設定になっていることを確認し、[次へ]をクリックします。
    ・サイトの耐障害性:なし-標準クラスタ
    ・許容される障害の数:1件の障害・RAID-1(ミラーリング)

  3. [次へ]をクリックします。

  4. 設定内容を確認し、[完了]をクリックします。

  5. 作成したポリシー(FTT1)を選択し、以下の設定がされていることを確認します。
    ・ストレージタイプ:vSAN
    ・許容される障害の数:1件の障害-RAID-1(ミラーリング)

仮想マシン作成と配置確認

先ほど作成したストレージポリシー(FTT=1 ミラーリング)を適用した仮想マシンを作成します。

  1. [メニュー]-[ホストおよびクラスタ]を選択します。

  2. インベントリからクラスタを選択し、アクションから [新規仮想マシン] をクリックします。

  3. [新規仮想マシンの作成]を選択し、[NEXT]をクリックします。

4.任意の仮想マシン名(今回はvSAN_FTT1)を入力し、[NEXT] をクリックします。

  1. クラスタを展開して任意のESXiを選択し(指定しない場合はクラスタを選択でも構いません)、[NEXT] をクリックします。

  2. 仮想マシンストレージポリシーで [FTT1] を選択、[vsanDatastore]のラジオボタンを選択し、
    [NEXT] をクリックします。

  3. [NEXT] をクリックします。

  4. [NEXT] をクリックします。

  5. 任意の仮想ハードウェアを設定し、[NEXT] をクリックします。

  6. 設定内容を確認し、[FINISH] をクリックします。

11.インベントリからクラスタを選択し、[監視]-[vSAN > 仮想オブジェクト]-vSAN_FTT1配下のHard dsik1をチェックし、[配置の詳細の表示]をクリックします。

  1. Hard dsik1のコンポーネントの配置が、各ESXiホストにデータが分散配置されていることが確認できます。確認後、[閉じる] をクリックします。

以上、今回はストレージポリシーの許容される障害数のミラーリングに関する機能概要、設定手順、動作についてご紹介しました。
次回はストレージポリシーの許容される障害数のイレージャーコーディングに関する機能概要、設定手順、動作について投稿する予定です。