こんにちは、SB C&S 山田です。
この記事は、「基礎から学ぶ!vSAN 8.0 ESA検証環境構築」シリーズの第3回の「vSANストレージポリシーの設定」です。今回は、デフォルトとは異なるvSANのストレージポリシーを作成して、割り当てられた仮想マシンのデータ配置がどのように変化するのかを確認します。
1. vSANのストレージポリシーとは
vSANのストレージポリシーは、仮想マシンの許容する障害数や暗号化の有無、容量効率、ストライプ数などのストレージ要件を定義するものです。外部ストレージの場合、冗長化などの設定がストレージ側に依存することが一般的ですが、vSANではvCenter Server側から柔軟にポリシーを設定できます。
仮想マシンの「許容する障害数」(FTT: Failure To Tolerate)のストレージポリシーは、仮想マシンのオブジェクトを冗長化するためにRAIDの考え方を利用します。「ミラーリング(RAID 1)」と「イレージャーコーディング(RAID 5/6)」の保護方法を選択できます。
FTTは、許容するホストの障害数を表します。例えば、FTT = 1の場合、1台のホストまで障害が発生しても仮想マシンへのアクセスを継続できます。
簡単に概要をお伝えしましたしたが、本記事では、ESAのストレージポリシーに焦点を当ててご紹介をしていきます。vSANのストレージポリシーの全般的な内容については以下の記事をご覧ください。vSAN OSAベースの内容ですが、ストレージポリシー自体の基礎概要に関して説明しています。
VMware vSAN ストレージ ポリシーのご紹介
ESAのストレージポリシーの特徴
OSAでも「許容する障害数」は利用できますが、ESAでは独自の仕様があります。ESAでは、1つのNVMeドライブにPerformance-Leg(パフォーマンス用途)とCapacity-Leg(容量用途)の2つの領域を持ちます。各仮想マシンのデータ(コンポーネント)は、この2つの領域に保管されます。
I/O処理が発生すると、まずFTTで設定された可用性要件に基づき、Performance-LegにRAID1(ミラーリング)で書き込まれます。その後、非同期にRAID 5/6(ストライプ方式)でCapacity-Legにデータが格納されます。これにより、ESAは高いパフォーマンスと効率的なデータ保護を両立しています。
OSAとの比較
ESAのPerformance-LegとCapacity-Legの仕様は、従来のvSAN OSAのキャッシュ層とキャパシティ層の構造に似ています。ただし、ESAは各NVMeドライブ内にPerformance-LegとCapacity-Legを設けることで、キャッシュ処理とデータ配置の効率化を図っています。この専用領域の設計により、データ処理速度が向上し、全体的なパフォーマンスが向上しています。
ミラーリング(RAID 1)とイレージャーコーディング(RAID 5/6)それぞれのFTTの保護タイプの仮想マシンデータ(コンポーネント)の配置は以下のようなイメージです。
Performance-LegとCapacity-Legのイメージ図
◼️ミラーリング(RAID 1)
FTT = 1のイメージ図です。2つのPerformance-LegにRAID1(ミラーリング)で書き込まれます。2つのCapacity-Legにデータが格納されます。
最大4重化まですることができますが、多重化するほど、必要なホスト台数とストレージ容量が増えていきます。
OSAではWitness コンポーネントがありましたが、2ノード・ストレッチクラスターの場合を除き不要となります。
vSphere Clientでも以下のような実際のデータ配置が確認できます。
◼️イレージャーコーディング(RAID 5)
FTT = 1のイメージ図です。2つのPerformance-LegにRAID1(ミラーリング)で書き込まれます。2つのCapacity-Legにデータの分散配置を行いつつ、「パリティ」と呼ばれる、誤りを検出するデータも配置することにより冗長化を行います。
OSAではRAID5の保護タイプでは最低4ホスト必要でしたが、ESAでは3ホストからRAID5の保護タイプを使用することが可能です。
vSphere Clientでは以下のような実際のデータ配置が確認できます。
イレージャーコーディングはミラーリングよりストレージの容量効率は高くなります。ミラーリングのFTT = 1では2倍のストレージ容量が必要でした。一方で、イレージャーコーディングのFTT = 1のRAID5では3ホスト〜5ホストのクラスターでは1.5倍、6ホスト以上のクラスターでは1.25倍です。
必要な最低ホスト数、容量の倍率は下図の通りになります。
少し冒頭の説明が長くなりましたが、ここから実際の手順を交えながらストレージポリシーの操作について紹介していきます。
2. 使用する環境
今回使用した環境は以下の通りです。以前の「基礎から学ぶ!vSphere 8.0 検証環境構築」シリーズで構築した環境をベースにしていますが、vSANにあわせてESXiホストのハードウェア構成を変更しています。
- ハードウェア:Nested ESXiとして作成した仮想マシン3台
※今回の検証環境ではvSANクラスターを構成するために、各仮想マシンにvSAN用のディスク容量を追加しています。詳しくは以下の環境情報をご覧ください。
- ソフトウェア:VMware ESXi 8.0 Update 3b / vCenter Server Appliance 8.0 Update 3b
※「基礎から学ぶ!vSphere 8.0 検証環境構築」で利用していたiSCSIストレージは不要になります。
以下のホスト名、アドレスとします。
コンポーネント | ESXiホスト名 | IPアドレス | CPU | メモリ | vSAN用デバイス容量 |
---|---|---|---|---|---|
ESXi-A1 | esxi-a1.demo.local | 192.168.255.11/24 | 4 | 32 | NVMeデバイス:300GB×2 |
ESXi-A2 | esxi-a2.demo.local | 192.168.255.12/24 | 4 | 32 | NVMeデバイス:300GB×2 |
ESXi-A3 | esxi-a3.demo.local | 192.168.255.13/24 | 4 | 32 | NVMeデバイス:300GB×2 |
ESXi-A4 |
esxi-a4.demo.local | 192.168.255.14/24 | 4 | 32 | NVMeデバイス:300GB×2 |
下図の赤枠部分を構築していきます。
3. ストレージポリシー(RAID5)作成
「ミラーリング(RAID 1)」のストレージポリシーは、vSANデータストアのデフォルトで「Cluster - Optimal Datastore Default Policy - RAID1」や「vSAN Default Storage Policy」として用意されており、「イレージャーコーディング(RAID 5)」のストレージポリシーは、デフォルトで「vSAN ESA Default Policy - RAID5」として用意されています。
今回は、ストレージポリシー自体の作成方法についてご紹介したいので、デフォルトで用意されているストレージポリシーを使用せず、新規で「イレージャーコーディング(RAID 5)」のストレージポリシーを作成します。
それでは、ストレージポリシーを作成していきます。
1. ポリシー作成画面に移動します。
- vSphere Clientを開き、画面左上のハンバーガーボタンをクリックします。
- [ポリシーおよびプロファイル] をクリックします。
2. 仮想マシン ストレージ ポリシーを作成します。
- [仮想マシン ストレージ ポリシー] をクリックします。
- [作成] をクリックします。
3. ポリシー名を入力します。
- 名前に任意のポリシー名を入力します。
※今回は、[RAID 5] としました。 - [次へ] をクリックします。
4. ストレージタイプのルールを設定します。
- [「vSAN」ストレージでルールを有効化] にチェックを入れます。
- [次へ] をクリックします。
5. 可用性の設定をします。
- 許容される障害の数で、[1件の障害 - RAID-5(イレージャ コーディング)]を選択します
※RAID 5構成の場合、仮想マシンに割り当てた仮想ディスクの1.5倍のストレージ容量が必要になります。(ホスト台数6台以上の場合は1.25倍)
6. ストレージ ルールを設定します。
- [ストレージ ルール] をクリックします。
- ストレージ階層で、[オールフラッシュ] を選択します。
※イレージャーコーディングでは、[オールフラッシュ]構成にする必要があります。 - [次へ] をクリックします。
7. ストレージ互換性はデフォルトのまま、[次へ] をクリックします。
8. 設定した内容を確認し、[完了] をクリックします。
9. 作成したポリシールールを確認します。
- [RAID 5] をチェックします。
- 設定した内容を確認します。
4. ストレージポリシー(FTT = 0)作成
続いて、FTT = 0のストレージポリシーを作成します。FTT = 1の場合だと、1台のホストまで障害が発生しても仮想マシンに継続してアクセスできますが、FTT = 0ではデータを冗長化しません。検証環境などの可用性の必要がない仮想マシンでは、あえてデータを冗長化しないことで大幅にストレージ容量を節約できます。
1. 仮想マシン ストレージ ポリシーを作成します。
- [仮想マシン ストレージ ポリシー] をクリックします。
- [作成] をクリックします。
2. ポリシー名を入力します。
- 名前に任意のポリシー名を入力します。
※今回は、[FTT 0] としました。 - [次へ] をクリックします。
3. ストレージタイプのルールを設定します。
- [「vSAN」ストレージでルールを有効化] にチェックを入れます。
- [次へ] をクリックします。
4. 可用性の設定をします。
- サイトの耐障害性が [なし - 標準クラスタ]、許容される障害の数が [データの冗長性なし]に変更します。
- [次へ] をクリックします。
5. ストレージ互換性はデフォルトのまま、[次へ] をクリックします。
6. 設定した内容を確認し、[完了] をクリックします。
7. 作成したポリシールールを確認します。
- [FTT 0] をチェックします。
- 設定した内容を確認します。
5. ストレージポリシー(RAID 5)の割り当て
ここでは、仮想マシンに対して「イレージャーコーディング(RAID5)」のストレージポリシーを割り当てます。そして、ポリシーに合わせて実際にデータが冗長化されることを確認します。
ポリシーを割り当てる仮想マシンは、事前に準備してあるものを使用します。仮想マシンの作成に関しては、「基礎から学ぶ!vSphere 8.0 検証環境構築 第6回 仮想マシンのプロビジョニング」をご参照ください
それでは、仮想マシンに RAID 5のストレージポリシーを割り当てます。
1. ホストおよびクラスタ表示画面に移動します。
- 画面左上のハンバーガーボタンをクリックします。
- [インベントリ] をクリックします。
2. ストレージ ポリシーを編集します。
- 準備した仮想マシンをクリックします。
※今回は、[vm-a1] としました。 - [構成] をクリックします。
- [ポリシー] をクリックします。
- [仮想マシン ストレージ ポリシーの編集]をクリックします。
3. ストレージ ポリシーを変更します。
- 仮想マシン ストレージ ポリシーを [RAID 5] に変更します。
※[RAID 5] に変更することで、ストレージの合計使用量が減少します。これは仮想マシンがデフォルトで割り当てられている[RAID 1]より[RAID 5]の方がストレージ容量が少ないためです。 - [OK] をクリックします。
2. 仮想マシンの配置を確認します。
- [Cluster] をクリックします。
- [監視] をクリックします。
- [vSAN] をクリックします。
- [仮想オブジェクト] をクリックします。
- [vm-a1] 左の [>] をクリックします。
- [Hard disk 1] をチェックします。
- [配置の詳細の表示] をクリックします。
5. 各ホストにデータが分散配置されていることを確認します。
- 各ホストにコンポーネントが分散配置されていることを確認します。(冒頭で紹介したCapacity-Legに配置されています)
※コンポーネントの状態が [アクティブ] になるまで少し時間がかかります、[再構成] の場合は少々お待ちください。 - [閉じる] をクリックします。
6. ストレージポリシー(FTT 0)の割り当て
仮想マシン[vm-a1]のクローンを作成して、「FTT 0」のストレージポリシーを割り当てます。そして、データが冗長化されないことを確認します。
1. 仮想マシンのクローンを作成します。
- 仮想マシン [vm-a1] を右クリックします。
- [クローン作成] をクリックします。
- [仮想マシンにクローン作成]をクリックします。
2. 仮想マシンの名前を入力します。
- 仮想マシン名に任意の名前を入力します。
※今回は、[vm-a2] としました。 - [次へ] をクリックします。
3. コンピューティング リソースはデフォルトのまま、[次へ] をクリックします。
4. ストレージの選択をします。
- 仮想マシン ストレージ ポリシーで、[FTT 0] を選択します。
- データストアは、[vsanDatastore] を選択します。
- [次へ] をクリックします。
5. クローンオプションは選択せずに、[次へ] をクリックします。
6. 設定した内容を確認し、[完了] をクリックします。
7. 仮想マシンの配置を確認します。
- クローンが作成されたら、[Cluster] をクリックします。
- [監視] をクリックします。
- [vSAN] をクリックします。
- [仮想オブジェクト] をクリックします。
- [vm-a2] 左の [>] をクリックします。
- [Hard disk 1] をチェックします。
- [配置の詳細の表示] をクリックします。
8. データはPerformance-Leg、Capacity-Legともに複数ホストのに分散配置されずに、それぞれ1台のホストにデータが配置されていることを確認します。
7. Tips ~ 強制プロビジョニング ~
ストレージポリシーには、強制プロビジョニングと呼ばれるポリシールールがあります。強制プロビジョニングを有効化すると、ホストの最小台数や許容される障害の数などの、ポリシー条件を満たさない場合でも仮想マシンのプロビジョニングが行えます。
例えば、環境構築中には一時的にホストを2台で利用し、本番運用では3台にスケールアウトして利用するといったユースケースにおいて強制プロビジョニングは相性が良いです。RAID 5での利用を想定すると、標準的なポリシーの場合ホストの最小台数は3台ですが2台でもプロビジョニングが行えます。
そして、スケールアウトしてホストが3台になると自動的に冗長構成されデータが分散配置されます。
他にも、ハードウェア障害などによってホストが少ない状態で仮想マシンをプロビジョニングしないといけない場合でも、ポリシーを満たしていない仮想マシンの作成が可能になります。
今回は、ストレージポリシーについてご紹介しました。OSAと異なる点としては、許容する障害数のストレージポリシーのデータ配置が異なっていることがわかったかと思います。ただ、ストレージポリシーの作成手順などはOSAとほとんど変わりません。
次回は、メンテナンス時の動作についてご紹介します。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部
第1技術部 1課
山田 和良 - Kazuyoshi Yamada -
VMware vExpert