仮想マシンのストレージポリシーが鍵になる!?

- vSAN「仮想マシンのストレージポリシー」のご紹介 -

皆さま、こんにちは。
VMware担当の田畑です。

今回はVMwareのハイパーコンバージドインフラストラクチャ製品であるvSANについてのコラムを書かせていただきます。
vSANについては、過去のコラム内でも何度か紹介してきました。(vSANの概要についてはこちら、vSAN6.7の新機能についてはこちら)
しかし、今まであまり機能面に触れたことがありませんでしたので、基本的な機能についてご紹介したいと思います。

その中でも今回ご紹介する機能は… 仮想マシンのストレージポリシー です。

【定義された仮想マシンのストレージポリシー】【仮想マシン】に適用することによって、仮想マシンのストレージ要件を定義することができます。ストレージ要件の中には、障害許容数やIOPSの制限などがございます。その他にも複数の設定が可能なストレージポリシーなのですが、今回はそんなストレージポリシーをどの様に定義すれば良いのかを紹介していきたいと思います。

そもそも「ストレージポリシー」はどこで確認できて、どこで設定するの?という方もいらっしゃるかと思います。

vSphere Clientからこのストレージポリシーを確認する手順は、
まず、vSphere Clientの『メニュー』から『ポリシーおよびプロファイル』を選択します。

vSphere Client『ポリシーおよびプロファイル』

すると、『仮想マシン ストレージポリシー』を確認することができます。

仮想マシン ストレージポリシー

それでは早速、『仮想マシンストレージポリシーの作成』をクリックし、どの様にポリシーを定義していくのかを確認していきたいと思います。

(1)許容される障害の数

許容される障害の数

まず始めに設定を行うのは、「許容される障害の数」になります。vSANの設定の中でも特に重要な部分です。
vSANはホストのローカルディスクを共有データストアとして利用するため、一般的な外部ストレージを使用したデータストアとは異なり、データの保護はソフトウェアで行います。仮想マシンに対して、許容される障害数を設定することで、障害から仮想マシンを保護するといった形になります。
例えば、1件の障害 ? RAID-1(ミラーリング)の場合(FTT=1)、1件の障害を許容するため+1個のデータコピーが作成され、異なるホスト上に配置されます。

vSANデータストア

(2)オブジェクトあたりのディスクストライプの数

オブジェクトあたりのディスクストライプの数

次にストライプの数を指定することができます。
1つのキャパシティディスクに格納されているデータを分割して書き込むキャパシティディスクを増やすことによってパフォーマンスを向上させる機能になっています。
※最大12個まで

vSANデータストア

(3)オブジェクトのIOPSの制限

オブジェクトのIOPSの制限

仮想ディスクに対するIOPSの制限を定義することができます。デフォルトでは「0」に設定されており、この場合IOPS制限は適用されない形になっています。ここではIOPSの上限値を設定することで、オブジェクトは設定したIOPSの制限値を超えることができなくなります。

(4)オブジェクト容量の予約

オブジェクト容量の予約

vSANでは仮想マシンを作成する際、デフォルトで『シン プロビジョニング』にて作成されます。仮想マシンに対して確実にディスク領域を予約したいときはここで値を設定します。

(5)Flash Read Cacheの予約

Flash Read Cacheの予約

ハイブリット構成の場合、キャッシュSSDは30%が書き込み、70%が読み取り用として利用されます。この70%の読み取りキャッシュを優先的に利用できるように設定を行うのが『Flash Read Cacheの予約』になります。仮想マシンのディスク容量の『何%』といった形で予約を行います。

(6)オブジェクトチェックサムの無効化

オブジェクトチェックサムの無効化

チェックサム機能はデフォルトでオンに設定されています。このチェックサム機能を利用して、許容障害数で設定した際のデータのコピーが正確であるかを確認します。もし間違ったデータが発見された場合は、正確なデータに自動的に上書きします。
無効化にチェックを入れることによってチェックサム機能を無効にすることができます。

(7)強制プロビジョニング

強制プロビジョニング

強制的なプロビジョニングは有効か無効かに設定することができます。こちらを有効にすることで、その他のポリシーの要件を満たしていない場合にも仮想マシンの作成が可能になります。

検証

ここからは実際に作成したストレージポリシーを用いて、簡単な検証をしてみたいと思います。
今回は検証用の3ノードvSAN環境を用います。

検証用の3ノードvSAN環境

まず1つ目に「FTT=1、ストライプ数2個、シックプロビジョニング」というストレージポリシーを作成してみました。

ストレージポリシー

このポリシーはどこで適用するの?ということですが、『新規仮想マシン』の『ハードウェアのカスタマイズ』にて『新規ハードディスク』のタブを開き、『仮想マシンストレージポリシー』を選択するといった流れになります。

ハードウェアのカスタマイズ

ストレージポリシーに従い、仮想マシンを作成することに対して問題がない場合、仮想マシンは正常に作成されます。

仮想マシンを正常に作成

また、仮想マシンのディスクサイズを確認してみるとシックプロビジョニングで作成されていることが分かります。

仮想マシンのディスクサイズを確認

今回40GBの仮想マシンをFTT=1(許容障害数1個のミラーリング)で作成したため、データは×2の80GB分存在しているということになります。
ちなみに、データが実際に配置されているホストを確認したい場合は、クラスタ『vSAN_1』→『監視』→『vSAN』→『仮想オブジェクト』から対象仮想マシンのディスクを選択し、『配置の詳細の表示』を選択することで見ることができます。

配置の詳細の表示
物理的な配置

今回ストライプ数を2個に設定したので、RAID0という形でデータが2分割されていることが分かります。


次に「FTT=2」(許容障害数が2個のミラーリング)というストレージポリシーを作成してみました。

ストレージポリシー

そして先ほどと同じ手順で仮想マシンにストレージポリシーを適用しようとしてみましたが…

仮想マシンの作成中にエラー

仮想マシンの作成中にこの様なエラーが発生しました。エラーの内容を確認してみると「現在3つの使用可能なホストがあります。この操作にはさらに2つの使用可能なホストが必要です。」ということが記載されています。
それもそのはずで、FTT=2を構成する際には最小5台のホストが必要になるからです。下記は許容する障害数と許容方法によって必要になるホスト台数をまとめた表になります。

許容する障害数と許容方法によって必要になるホスト台数

「それはわかった、後でノード追加するからとにかくFTT=2のポリシーでVMを展開したいんだ!」となった場合は、先ほどご紹介した『強制プロビジョニング』にチェックを入れることで、ポリシーの要件を満たしていなくても仮想マシンを作成することができます。
ただし、文字通り強制的に作成したため、健全性の項目に常に警告が表示される形となります。

vSANオブジェクトの健全性

障害に対応することができない状態でプロビジョニングしているため、あまりお勧めできる手段ではありません。
ですので、すぐに条件を満たした構成にできる場合にのみ強制プロビジョニングはご利用ください。


今回は仮想マシンのストレージポリシーについてまとめてみましたが、いかがでしたでしょうか?
本ブログが皆さまのお役に立てると幸いです。

次回はvSANの機能であるストレッチクラスタについてまとめてみたいと思います。

VMwareの記事




※閲覧にはiDATEN(韋駄天)へのログインが必要です。