こんにちは。SB C&S の山田です。
私は VMware 製品のプリセールスエンジニアとして活動しております。
今後、本ブログにて、VMware vSANに関連する情報を複数回にわけて発信していきたいと考えております。
vSANに関する記事ですが以前、下記の記事にてvSANの概要についてご紹介しております。
VMware vSAN のご紹介|技術ブログ|C&S ENGINEER VOICE
今後も継続してvSANに関する情報をお届けしたいため、今回は以前の記事でお伝えできていなかった、ハイブリット構成とオールフラッシュ構成の違いについて記載いたします。
こちらをご理解のうえで今後の記事をご参照頂ければと思います。
vSANの概要をおさらい
vSAN は、VMware が提供する Software-Defined Storage (SDS)です。
ハイパーバイザーである ESXi にあらかじめ組み込まれた機能となっており、複数の ESXi ホストに搭載されたローカルストレージをソフトウェアによって、抽象化することで複数のホスト間でアクセス可能な共有ストレージを仮想的に提供することができます。
ディスクグループをおさらい
vSAN を利用する際、1台のホストの中で複数のディスクをまとめたグループを作成します。
これをディスクグループと呼びます。
複数のホストをクラスタ化し、クラスタ内のホストのディスクグループをまとめることで、vSAN データストアがつくられます。
各ディスクグループはパフォーマンス向上の目的からキャッシュ層として使われる、すなわち実効容量にカウントされないストレージデバイスが1台必要で、これには磁気ディスク(HDD)ではなく高速な読み書きが可能なSSDなどのフラッシュデバイスを利用します。
そして実効容量となる部分を構成するキャパシティ層には、SSDなどのフラッシュデバイスもしくはHDDを1~7台利用します。
なお、現在の vSAN の仕様では1台のホスト内に最大5個までのディスクグループを作成することが可能です。
ディスクグループを複数にすると、その分キャッシュ層として使用されるフラッシュデバイスの総本数が増えることにもなり、1ホスト当たりの容量だけでなく性能面も向上できるため、より高いパフォーマンス要件を満たすことができるようになります。
また、保護したいデータを複数のディスクグループに分散するため、耐障害性が高まるというメリットも得られます。
ハイブリッド構成とオールフラッシュ構成の違い
■ディスクの構成
ディスクグループの全てのディスクをフラッシュデバイス(SSD 等)とする構成を「オールフラッシュ」、キャパシティ層にHDDを利用する構成を「ハイブリッド」と呼称します。
※図に記載のIOPSの値はストレージデバイス自体のパフォーマンスによって差がありますので参考値となります。
■ネットワーク
クラスタ内 ESXi ホスト間のvSANに関するデータのやり取りには、vSANネットワークが必要となります。
vSANネットワークは、クラスタ内 ESXi ホストに vSAN サービスを有効化した VMkernel アダプタ(仮想NIC)を設定する必要があり、vSANに関連する管理系トラフィック 、リビルド処理や、同期処理などのトラフィックで使⽤されます。
VMkernel アダプタを割り当てる物理アダプタ(物理NIC)は、ハイブリッド構成の場合は1Gb/10Gbをサポートしていますが、1Gbの場合は vSAN ネットワーク専用に、他のトラフィックが通らない物理アダプタを割り当てることが必要です。
ただし、稼働時の同期処理や障害発生時の復旧処理であるリビルド時の処理によってネットワークトラフィックが急増し1Gbの場合だとネットワーク帯域が枯渇してボトルネックとなります。
そのため10Gb が推奨されています。
オールフラッシュ構成の場合、サポートしているのは10Gbの物理アダプタのみですのでご留意ください。
■パフォーマンス
前出のディスクの構成項目の図のとおり、オールフラッシュ構成とハイブリッド構成ではIOPSに性能差があり、オールフラッシュ構成の方がより高いパフォーマンスを発揮することができます。
特に、ランダムアクセス性能(ストレージへのランダムな読み書き)は非常に優れています。
例えば、膨大なランダムアクセスが発生するデータベースや仮想デスクトップ環境などでは、高負荷時においてもレスポンス劣化を低減して、高いパフォーマンスを実現することが可能です。
一方のハイブリッド構成は、キャパシティ層に利用するHDDの特性上、ディスク(HDDの円盤)の回転や磁気ヘッドの移動などの物理的な動作が伴うため、ランダムアクセスの際のレスポンスではどうしてもフラッシュデバイスに劣ってしまいます。
■重複排除とデータ圧縮
オールフラッシュ構成はディスクグループ単位での重複排除とデータ圧縮を実行できる点でも優れています。
キャッシュ層に格納(ステージング)される重複データを削除・圧縮し、圧縮されたデータをキャパシティ層に格納します。
これらは連動して実行され、キャパシティ容量の消費を低減することができます。
■RAID構成時の違い
可用性を高める方法として、ハイブリッド構成・オールフラッシュ構成ともにデータを多重化(ミラーリング)し RAID1 相当の保護をすることが可能です。
データを多重化し許容する障害数を決める可用性ポリシーを FTT (Failures To Tolerate) といいます。
最大で4重化まで複製することができます。
なお、ホスト台数には下記要件があります。
・FTT = 1 (2重化) → クラスタ内にホスト3ホスト以上
・FTT = 2 (3重化) → クラスタ内にホスト5ホスト以上
・FTT = 3 (4重化) → クラスタ内にホスト7ホスト以上
FTT = 1 の場合、1つのデータに対して3つのコンポーネントをクラスタ内のそれぞれ異なるホスト3台に配置し可用性を担保します。
この3つのコンポーネントのうち、2つは多重化されたデータです。もう一つは Witness です。
Witness とは障害が発生した際、多重化している2つのコンポーネントと疎通可能かどうかをチェックし、死活監視の役割を持つコンポーネントです。
応答が無ければ異常が発生していると判断しフェイルオーバーが実施されます。
2つのコンポーネントにて稼働状態であることを確認できた場合はフェイルオーバーを中止しますのでスプリットブレインを防ぐことができます。
また、FTT = 2 の場合は対象のデータに対して2回ミラーリングされ、3つの多重化されたデータと2つWitness がクラスタ内のそれぞれ異なるホスト5台に配置されます。
FTT = 0 の場合はデータを多重化しないため対象のデータである1つのコンポーネントのみとなります。
主に冗長化する必要がないテスト用に作成した仮想マシンなどに対して FTT = 0とすることが多いかと思います。
上記に加え、オールフラッシュ構成のみRAID 5 や RAID 6 のイレージャーコーディングもサポートしており、RAID 1 のみサポートされているハイブリッド構成よりも効率的にデータの信頼性・可用性を高めることが可能です。
なお、ホスト台数には下記要件があります。
・RAID 5 → クラスタ内に4ホスト以上
・RAID 6 → クラスタ内に6ホスト以上
RAID 5 は、1 ホスト分の障害に耐える(FTT = 1)ことができるうえ、RAID 1 は実効容量 20GB の仮想マシンに対し 40GB の実容量が必要なところを、RAID 5 では実容量を 27GB ほどに節約することが可能です。
RAID 6 は、2 ホスト分の障害に耐える(FTT = 2)ことができます。
これと同等の耐障害性をRAID 1 によって実現したい場合、実効容量 20GB の仮想マシンに対して 60GB の実容量が必要ですが、RAID 6 では 30GB 程度で済みます。
■キャッシュ層で利用するフラッシュデバイスの用途
また下記の通り、キャッシュ層として利用されるフラッシュデバイスの用途と制限がハイブリッド構成時とオールフラッシュ構成時とでは若干異なります。
ハイブリッド構成では読み取りキャッシュに70%、書き込みバッファに30%が利用されます。
一方のオールフラッシュ構成では、100%が書き込みバッファとして利用されます。
ディスクモデルの選定の際に考慮するべきポイントですが、どちらの構成においてもキャッシュ層のフラッシュデバイスは読み書きの処理が非常に多く、またvSAN全体の性能に大きく関わるため、耐久性が高くなおかつハイスペックなデバイスを選定することが推奨されています。
オールフラッシュ構成においてはキャパシティ層にもフラッシュデバイスを利用しますが、こちらは容量重視(容量単価が安い)のデバイスを選定することをおすすめします。
なお、オールフラッシュ構成でのキャッシュ層には、ディスクグループ毎の書き込みバッファに最大600GBの制限があり、600GB以上のフラッシュデバイスを利用した場合の残り容量は耐久性向上のために利用されます。
■仮想マシンからの書き込み、読み取りがどのように処理されるか
書き込みに関しては、ハイブリッド構成とオールフラッシュ構成の違いはほとんどありません。
仮想マシンからの書き込みリクエストがキャッシュ層のフラッシュデバイスに書き込まれると、仮想マシンに応答を返し完了となります。
仮想マシンをミラー構成(FTT = 1)している場合は、下図③のとおりvSANデータストアに対し重複・分散して実行します。
書き込みデータは一定時間キャッシュ層に保持された後、キャパシティ層にデータを書きこみ(デステージ)、その後破棄されます。
このデステージの処理については、ハイブリッド構成とオールフラッシュ構成で違いがあります。
ハイブリッド構成はキャッシュ層に保持した書き込みデータを一括でキャパシティ層に書きこみますが、オールフラッシュ構成ではアクセス頻度が多いデータ(ホットデータ)はキャッシュ層に残り、アクセス頻度が少ないデータ(コールドデータ)のみキャパシティ層に書きこまれます。
読み取りに関しては、ハイブリッド構成とオールフラッシュ構成で明確な違いがあります。
ハイブリッド構成はキャッシュ層にデータがある場合(下図③)、直接フラッシュデバイスから読み取り、仮想マシンに読み取りデータを渡します。
キャッシュ層にデータがない場合は、キャパシティ層からデータを読み取り、キャッシュ層にデータをコピー(下図④)して、仮想マシンに読み取りデータを渡します。
キャッシュ層にデータがある場合は直接フラッシュデバイスから読み取り(下図③)をし、仮想マシンに読み取りデータを渡します。
またミラー構成(FTT = 1)の場合は、レプリカ間で読み取り処理をロードバランシング(下図②)します。
オールフラッシュ構成においても、キャッシュ層にデータがあればそこから読み取ります(下図③)。
ただし、キャッシュ層にデータがない場合はハイブリッド構成とは異なり、キャパシティ層から直接データを読み取り(下図④)、仮想マシンにデータを渡します。
この際、キャッシュ層へのデータのコピーは行いません。
ミラー構成(FTT = 1)の場合、ハイブリッドと同じくレプリカ間でロードバランシング(下図②)しますが、このときもキャパシティ層から直接データを読みとるかたちをとります。
以上、簡単ですが vSAN のハイブリット構成とオールフラッシュ構成の違いについてご紹介いたしました。
今後もvSANに関する記事を投稿したいと考えております。
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部
第1技術部 1課
山田 和良 - Kazuyoshi Yamada -
VMware vExpert