記憶域スペース ダイレクトでのフォールト トレランスと記憶域の効率

適用先:Windows Server 2016

このトピックでは、 記憶域スペースダイレクト で使用できる回復性オプションについて説明し、スケール要件、記憶域の効率、それぞれの一般的な利点とトレードオフについて説明します。 また、作業を開始するための使用方法についても説明し、役に立つ資料、ブログ、およびその他の詳細情報について紹介します。

記憶域スペースについて既によく理解している場合は、「まとめ」セクションに進むことができます。

概要

本来、記憶域スペースの目的は、データのフォールト トレランス ("回復性" と呼ばれる場合もあります) を実現することです。 その実装は、複数のサーバーに分散してソフトウェアで実装される点を除いて、RAID に似ています。

RAID と同様に、記憶域スペースでこれを実現する方法がいくつかあり、フォールト トレランス、記憶域の効率性、コンピューティングの複雑さの間でさまざまなトレードオフを行います。 これらの方法は、大まかに 2 つのカテゴリ "ミラーリング" と "パリティ" に分類されます。"パリティ" は、"イレイジャー コーディング (消失訂正符号)" と呼ばれる場合もあります。

ミラーリング

ミラーリングを使ってあらゆるデータのコピーを複数保持することによって、フォールト トレランスが実現します。 これは、RAID-1 と最もよく似ています。 データをどのようにストライピングおよび配置するかは重要な問題ですが (詳細については、こちらのブログを参照してください)、ミラーリングを使って格納するデータがいずれも、そのままの形で複数回書き込まれるという点は間違いありません。 コピーはそれぞれ、障害の発生が個別にとどまることが想定される別々の物理ハードウェア (別のサーバーの別のドライブ) に書き込まれます。

Windows Server 2016 では、記憶域スペース用に 2 種類のミラーリング ("双方向" と "3 方向") が用意されています。

双方向ミラー

双方向のミラーリングでは、すべてのコピーが 2 つ書き込まれます。 その記憶域の効率は 50% です。つまり、1 TB のデータを書き込むには、少なくとも 2 TB の物理的な記憶域の容量が必要になります。 同様に、少なくとも 2 つのハードウェア "障害ドメイン" が必要です。記憶域スペース ダイレクトでは、これは 2 台のサーバーを意味します。

双方向ミラー

警告

サーバーが 3 台以上の場合は、代わりに 3 方向ミラーリングを使うことをお勧めします。

3 方向ミラー

3 方向のミラーリングでは、すべてのコピーが 3 つ書き込まれます。 その記憶域の効率は 33.3% です。つまり、1 TB のデータを書き込むには、少なくとも 3 TB の物理的な記憶域の容量が必要になります。 同様に、少なくとも 3 つのハードウェア障害ドメインが必要です。記憶域スペース ダイレクトでは、これは 3 台のサーバーを意味します。

3 方向ミラーリングでは、少なくとも 2 つのハードウェア (ドライブまたはサーバー) に問題が発生した場合でも、安全に耐えることができます。 たとえば、あるサーバーの再起動中に別のドライブまたはサーバーに突然障害が発生した場合でも、あらゆるデータが安全かつアクセス可能な状態に保たれます。

3 方向ミラー

パリティ

パリティエンコード ("消去コード" と呼ばれることもあります) では、ビットごとの算術演算を使用してフォールトトレランスを提供しますが、これは 非常に複雑になります。 このしくみは、ミラーリングほど明確ではありませんが、理解に役立つ多くの優れたオンラインリソースがあります (たとえば、このサードパーティの「Dummies Guide to Erasure Coding」など)。 これは、フォールト トレランスを損なうことなく、より高いストレージ効率を実現します。

Windows Server 2016 では、記憶域スペース用に 2 種類のパリティ ("シングル" パリティと "デュアル" パリティ) が用意されています。"デュアル" パリティでは、大規模な場合に対応するための "ローカル再構築コード" と呼ばれる高度な手法が採用されています。

重要

ほとんどのパフォーマンスを重視するワークロードにはミラーリングを使用することをお勧めします。 ワークロードに応じてパフォーマンスと容量のバランスを取る方法の詳細については、「ボリュームの計画」を参照してください。

シングル パリティ

シングル パリティではビットごとのパリティ符号が 1 つだけ保持されるため、一度に 1 つの障害に対してのみフォールト トレランスが提供されます。 これは、RAID-5 と最もよく似ています。 シングル パリティを使用するには、少なくとも 3 つのハードウェア障害ドメインが必要です。記憶域スペース ダイレクトでは、これは 3 台のサーバーを意味します。 3 方向のミラーリングでは、同じスケールでより高いフォールト トレランスが実現するため、単一パリティの使用はお勧めできません。 しかし、それを使用する必要がある場合は、完全にサポートされています。

警告

シングル パリティの使用をお勧めしない理由は、一度に 1 つのハードウェア障害に対してのみ、安全に耐えることができるためです。あるサーバーを再起動しているときに、突然別のドライブまたはサーバーで障害が発生した場合、ダウンタイムが発生します。 サーバーが 3 台のみある場合は、3 方向のミラーリングを使用することをお勧めします。 4 台以上の場合は、次のセクションを参照してください。

デュアル パリティ

デュアル パリティでは、リードソロモンの誤り訂正符号を実装してビットごとの 2 つのパリティ符号を保持します。これにより、3 方向のミラーリングと同じフォールト トレランス (最大で一度に 2 つの障害) が実現されますが、ストレージの効率性が向上します。 これは、RAID-6 と最もよく似ています。 デュアル パリティを使用するには、少なくとも 4 つのハードウェア障害ドメインが必要です。記憶域スペース ダイレクトでは、これは 4 台のサーバーを意味します。 そのスケールでは、ストレージ効率性は 50% です。2 TB のデータを格納するには、4 TB の物理記憶領域容量が必要です。

デュアル パリティ

ハードウェア障害ドメインの数が増えると、デュアル パリティの記憶域の効率が 50% から最大で 80% まで向上します。 たとえば、ハードウェア障害ドメインが 7 つの場合 (記憶域スペース ダイレクトでは 7 台のサーバーを意味します)、効率が 66.7% に上昇します。つまり、4 TB のデータを保存するには、6 TB の物理的な記憶域の容量が必要になります。

デュアル パリティ ワイド

すべてのスケールでのデュアル パリティおよびローカル再構築コードの効率性については、「まとめ」セクションを参照してください。

ローカル再構築コード

Windows Server 2016 の記憶域スペースでは、Microsoft Research によって開発された高度な手法である "ローカル再構築コード" (LRC) が導入されています。 大規模なデュアル パリティでは、LRC を使用してエンコード/デコードをいくつかの小さなグループに分割し、書き込みまたは障害からの復旧に必要なオーバーヘッドを軽減します。

ハード ディスク ドライブ (HDD) では、グループのサイズは 4 つの符号です。ソリッドステート ドライブ (SSD) では、グループのサイズは 6 つの符号になります。 たとえば、ハード ディスク ドライブと 12 個のハードウェア障害ドメイン (12 台のサーバー) のレイアウトは次のようになります。4 つのデータ符号のグループが 2 つあります。 この場合、72.7% の記憶域の効率が実現されます。

ローカル再構築コード

Microsoft の Claus Joergensen による、非常に詳細でありながら読みやすいチュートリアルである、「how local reconstruction codes handle various failure scenarios, and why they're appealing (ローカル再構築コードによるさまざまな障害シナリオへの対応とその優位性)」を参照することをお勧めします。

ミラー高速パリティ

Windows Server 2016 以降では、記憶域スペース ダイレクトの 1 つのボリュームに対して、一部ではミラーを使用し、一部ではパリティを使用することができます。 書き込みは、最初はミラー化された部分で処理され、その後パリティ部分に徐々に移動します。 事実上、これは、ミラーリングを使用してイレージャー コーディングを高速化しています。

3 方向ミラーとデュアル パリティを混在させるには、少なくとも 4 つの障害ドメイン (つまり 4 台のサーバー) が必要です。

ミラー高速パリティのストレージ効率性は、すべてミラーまたはすべてパリティを使用する場合の間になり、選択する比率によって異なります。 たとえば、このプレゼンテーションの 37 分から始まるデモでは、12 台のサーバーに基づいて 46%、54%、65% の効率を実現するさまざまな混合の例が示されています。

重要

ほとんどのパフォーマンスを重視するワークロードにはミラーリングを使用することをお勧めします。 ワークロードに応じてパフォーマンスと容量のバランスを取る方法の詳細については、「ボリュームの計画」を参照してください。

概要

このセクションでは、記憶域スペース ダイレクトで使用できる回復性の種類、各種類を使用するための最小スケール要件、各種類で許容される障害の数、および対応するストレージ効率性についてまとめます。

回復性の種類

回復性 障害の許容値 ストレージ効率性
双方向ミラー 1 50.0%
3 方向ミラー 2 33.3%
デュアル パリティ 2 50.0% から 80.0%
混在 2 33.3% から 80.0%

最小スケール要件

回復性 最低限必要な障害ドメイン
双方向ミラー 2
3 方向ミラー 3
デュアル パリティ 4
混在 4

ヒント

シャーシまたはラック フォールト トレランスを使用している場合を除き、障害ドメインの数はサーバーの数を示します。 各サーバーのドライブ数は、記憶域スペース ダイレクトの最小要件を満たしている限り、使用できる回復性の種類には影響しません。

ハイブリッド デプロイのデュアル パリティ効率性

次の表は、ハード ディスク ドライブ (HDD) とソリッドステート ドライブ (SSD) の両方を含むハイブリッド デプロイの各スケールでのデュアル パリティとローカル再構築コードのストレージ効率性を示しています。

障害ドメイン [レイアウト] 効率性
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 4+2 66.7%
10 RS 4+2 66.7%
11 RS 4+2 66.7%
12 LRC (8、2、1) 72.7%
13 LRC (8、2、1) 72.7%
14 LRC (8、2、1) 72.7%
15 LRC (8、2、1) 72.7%
16 LRC (8、2、1) 72.7%

オールフラッシュ デプロイのデュアル パリティ効率性

次の表は、ソリッドステート ドライブ (SSD) のみを含むオールフラッシュ デプロイの各スケールでのデュアル パリティとローカル再構築コードのストレージ効率性を示しています。 パリティ レイアウトでは、より大きなグループ サイズを使用して、オールフラッシュ構成でより高いストーレジ効率性を実現できます。

障害ドメイン [レイアウト] 効率性
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 6+2 75.0%
10 RS 6+2 75.0%
11 RS 6+2 75.0%
12 RS 6+2 75.0%
13 RS 6+2 75.0%
14 RS 6+2 75.0%
15 RS 6+2 75.0%
16 LRC (12、2、1) 80.0%

サーバーが 2 台しかない場合を除き、フォールト トレランスの向上を実現するため、3 方向のミラーリングとデュアル パリティ (またはそのいずれか) を使用することをお勧めします。 具体的には、2 つの障害ドメイン (記憶域スペース ダイレクトでは 2 台のサーバー) が同時障害の影響を受ける場合でも、すべてのデータが安全に維持され、継続的にアクセス可能であることが保証されます。

すべてがオンラインを維持する例

これらの 6 つの例では、3 方向のミラーリングやデュアル パリティが何を許容できるかを示しています。

  • 1. 1 つのドライブの障害 (キャッシュ ドライブを含む)
  • 2. 1 台のサーバーの障害

fault-tolerance-examples-1-and-2

  • 3. 1 台のサーバーと 1 つのドライブの障害
  • 4. 異なるサーバーの 2 つのドライブの障害

fault-tolerance-examples-3-and-4

  • 5. 3 つ以上のドライブの障害 (影響を受けるサーバーが最大で 2 台)
  • 6. 2 台のサーバーの障害

fault-tolerance-examples-5-and-6

いずれの場合も、すべてのボリュームはオンラインのままです。 (クラスターがクォーラムを維持していることを確認してください)。

すべてがオフラインになる例

その有効期間にわたって、記憶域スペースは、各障害の後に十分な時間があれば完全な回復性を復元するため、何回もの障害を許容できます。 ただし、特定の時点で障害の影響を問題なく受けることができるのは、最大で 2 つの障害ドメインです。 したがって以下に示すのは、3 方向のミラーリングやデュアル パリティが許容できない例です。

  • 7. 一度に 3 台以上のサーバーでドライブの障害が発生する
  • 8. 3 台以上のサーバーで同時に障害が発生する

fault-tolerance-examples-7-and-8

使用法

記憶域スペース ダイレクトのボリュームの作成」をご覧ください。

その他の参照情報

以下のすべてのリンクは、このトピックの本文内に記載されています。