記憶域スペース ダイレクトでのフォールト トレランスと記憶域の効率Fault tolerance and storage efficiency in Storage Spaces Direct

適用先: Windows Server 2016Applies to: Windows Server 2016

このトピックでは、記憶域スペース ダイレクトで利用できる回復オプションを紹介し、規模に関する要件、記憶域の効率、一般的な利点、およびそれぞれのトレードオフの概要について説明します。This topic introduces the resiliency options available in Storage Spaces Direct and outlines the scale requirements, storage efficiency, and general advantages and tradeoffs of each. また、作業を開始するための使用方法についても説明します。このトピックでは、詳細を確認する際に役立つ優れたドキュメントやブログなどのコンテンツを参照しています。It also presents some usage instructions to get you started, and references some great papers, blogs, and additional content where you can learn more.

記憶域スペースの詳細を既に理解している場合は、「まとめ」セクションに進んでもかまいません。If you are already familiar with Storage Spaces, you may want to skip to the Summary section.

概要Overview

本来、記憶域スペースの目的は、データのフォールト トレランス ("回復性" と呼ばれる場合もあります) を実現することです。At its heart, Storage Spaces is about providing fault tolerance, often called 'resiliency', for your data. その実装は RAID に類似していますが、複数のサーバーに分散され、ソフトウェアで実装される点が異なります。Its implementation is similar to RAID, except distributed across servers and implemented in software.

RAID と同様に、記憶域スペースの実装方法には複数の方法があり、それぞれの方法では、フォールト トレランス、記憶域の効率、および計算の複雑さの間で発生するトレードオフが異なります。As with RAID, there are a few different ways Storage Spaces can do this, which make different tradeoffs between fault tolerance, storage efficiency, and compute complexity. これらの方法は、大まかに 2 つのカテゴリ "ミラーリング" と "パリティ" に分類されます。"パリティ" は、"イレイジャー コーディング (消失訂正符号)" と呼ばれる場合もあります。These broadly fall into two categories: 'mirroring' and 'parity', the latter sometimes called 'erasure coding'.

ミラーリングMirroring

ミラーリングでは、すべてのデータのコピーを複数維持することでフォールト トレランスが実現されます。Mirroring provides fault tolerance by keeping multiple copies of all data. これは、RAID-1 に非常に類似しています。This most closely resembles RAID-1. データのストライプ方法や配置方法は重要となりますが (詳しくはこのブログをご覧ください)、ミラーリングを使用して保存されたすべてのデータが、そのまま複数回書き込まれるということも重要な点です。How that data is striped and placed is non-trivial (see this blog to learn more), but it is absolutely true to say that any data stored using mirroring is written, in its entirety, multiple times. 各コピーは個別の物理ハードウェア (異なるサーバーの異なるドライブ) に書き込まれます。これは、各ハードウェアでエラーが発生した場合を想定した措置です。Each copy is written to different physical hardware (different drives in different servers) that are assumed to fail independently.

Windows Server 2016 では、記憶域スペース用に 2 種類のミラーリング ("双方向" と "3 方向") が用意されています。In Windows Server 2016, Storage Spaces offers two flavors of mirroring – 'two-way' and 'three-way'.

双方向ミラーTwo-way mirror

双方向ミラーリングでは、すべてのデータについて 2 つのコピーが書き込まれます。Two-way mirroring writes two copies of everything. その記憶域の効率は 50% です。つまり、1 TB のデータを書き込むには、少なくとも 2 TB の物理的な記憶域の容量が必要になります。Its storage efficiency is 50% – to write 1 TB of data, you need at least 2 TB of physical storage capacity. 同様に、少なくとも 2 つのハードウェア "障害ドメイン" が必要になります (記憶域スペース ダイレクトでは 2 台のサーバーを意味します)。Likewise, you need at least two hardware 'fault domains' – with Storage Spaces Direct, that means two servers.

双方向ミラー

警告

サーバーが 3 台以上の場合は、代わりに 3 方向ミラーリングを使うことをお勧めします。If you have more than two servers, we recommend using three-way mirorring instead.

3 方向ミラーThree-way mirror

3 方向ミラーリングでは、すべてのデータについて 3 つのコピーが書き込まれます。Three-way mirroring writes three copies of everything. その記憶域の効率は 33.3% です。つまり、1 TB のデータを書き込むには、少なくとも 3 TB の物理的な記憶域の容量が必要になります。Its storage efficiency is 33.3% – to write 1 TB of data, you need at least 3 TB of physical storage capacity. 同様に、少なくとも 3 つのハードウェア障害ドメインが必要になります (記憶域スペース ダイレクトでは 3 台のサーバーを意味します)。Likewise, you need at least three hardware fault domains – with Storage Spaces Direct, that means three servers.

3 方向ミラーリングでは、一度に少なくとも 2 件のハードウェア問題 (ドライブやサーバー) に安全に対処できます。Three-way mirroring can safely tolerate at least two hardware problems (drive or server) at a time. たとえば、あるサーバーを再起動しているときに別のドライブやサーバーで突然障害が発生した場合、すべてのデータの安全性が保たれ、アクセスし続けることができます。For example, if you're rebooting one server when suddenly another drive or server fails, all data remains safe and continuously accessible.

3 方向ミラー

パリティParity

パリティ エンコード ("イレイジャー コーディング (消失訂正符号)" と呼ばれる場合もあります) では、ビット単位の演算を使用してフォールト トレランスが実現されるため、複雑さが大幅に増す可能性がありますParity encoding, often called 'erasure coding', provides fault tolerance using bitwise arithmetic, which can get remarkably complicated. パリティのしくみはミラーリングよりわかりにくいですが、パリティを理解する際に役立つ、優れたオンライン リソースが多数あります (たとえば、サード パーティの「Dummies Guide to Erasure Coding」(イレイジャー コーディングのダミーガイド) など)。The way this works is less obvious than mirroring, and there are many great online resources (for example, this third-party Dummies Guide to Erasure Coding) that can help you get the idea. あえて言うなら、パリティではフォールト トレランスを損なうことなく、優れた記憶域の効率が実現されます。Sufficed to say it provides better storage efficiency without compromising fault tolerance.

Windows Server 2016 では、記憶域スペース用に 2 種類のパリティ ("シングル" パリティと "デュアル" パリティ) が用意されています。"デュアル" パリティでは、大規模な場合に対応するための "ローカル再構築コード" と呼ばれる高度な手法が採用されています。In Windows Server 2016, Storage Spaces offers two flavors of parity – 'single' parity and 'dual' parity, the latter employing an advanced technique called 'local reconstruction codes' at larger scales.

重要

ほとんどのパフォーマンスが重視されるワークロードには、ミラーリングを使用することをお勧めします。We recommend using mirroring for most performance-sensitive workloads. ワークロードに応じて、パフォーマンスと容量のバランスを取る方法については詳しくは、ボリュームの計画」をご覧ください。To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

シングル パリティSingle parity

シングル パリティでは、ビット単位のパリティ シンボルが 1 つだけ保持されます。これにより、一度に 1 つの障害に対してのみフォールト トレランスが実現されます。Single parity keeps only one bitwise parity symbol, which provides fault tolerance against only one failure at a time. これは、RAID-5 に非常に類似しています。It most closely resembles RAID-5. シングル パリティを使用するには、少なくとも 3 つのハードウェア障害ドメインが必要になります (記憶域スペース ダイレクトでは 3 台のサーバーを意味します)。To use single parity, you need at least three hardware fault domains – with Storage Spaces Direct, that means three servers. 3 方向ミラーリングを使用した場合は、同じ規模でより優れたフォールト トレランスが実現されるため、シングル パリティを使用することはお勧めしません。Because three-way mirroring provides more fault tolerance at the same scale, we discourage using single parity. ただし、必要な場合はシングル パリティを使用しても問題はありません。また、完全にサポートされています。But, it's there if you insist on using it, and it is fully supported.

警告

シングル パリティが一度に安全に対処できるハードウェア障害は 1 件だけであるため、シングル パリティを使うことはお勧めしません。1 台のサーバーを再起動している場合に、別のドライブまたはサーバーで突然障害が発生した場合、ダウンタイムが発生します。We discourage using single parity because it can only safely tolerate one hardware failure at a time: if you're rebooting one server when suddenly another drive or server fails, you will experience downtime. サーバーが 3 台のみの場合は、3 方向ミラーリングを使用することをお勧めします。If you only have three servers, we recommend using three-way mirroring. サーバーが 4 台以上ある場合は、次のセクションをご覧ください。If you have four or more, see the next section.

デュアル パリティDual parity

デュアル パリティではリード-ソロモン エラー訂正符号が実装され、ビット単位のパリティ シンボルが 2 つ保持されます。これにより、3 方向ミラーリングと同じフォールト トレランスが実現されます (つまり、一度に最大 2 件の障害に対処できます)。また、より優れた記憶域の効率が実現されます。Dual parity implements Reed-Solomon error-correcting codes to keep two bitwise parity symbols, thereby providing the same fault tolerance as three-way mirroring (i.e. up to two failures at once), but with better storage efficiency. これは、RAID-6 に非常に類似しています。It most closely resembles RAID-6. デュアル パリティを使用するには、少なくとも 4 つのハードウェア障害ドメインが必要になります (記憶域スペース ダイレクトでは 4 台のサーバーを意味します)。To use dual parity, you need at least four hardware fault domains – with Storage Spaces Direct, that means four servers. この規模では、記憶域の効率は 50% です。つまり、2 TB のデータを保存するには、4 TB の物理的な記憶域の容量が必要になります。At that scale, the storage efficiency is 50% – to store 2 TB of data, you need 4 TB of physical storage capacity.

デュアル パリティ

ハードウェア障害ドメインの数が増えると、デュアル パリティの記憶域の効率が 50% から最大で 80% まで向上します。The storage efficiency of dual parity increases the more hardware fault domains you have, from 50% up to 80%. たとえば、ハードウェア障害ドメインが 7 つの場合 (記憶域スペース ダイレクトでは 7 台のサーバーを意味します)、効率が 66.7% に上昇します。つまり、4 TB のデータを保存するには、6 TB の物理的な記憶域の容量が必要になります。For example, at seven (with Storage Spaces Direct, that means seven servers) the efficiency jumps to 66.7% – to store 4 TB of data, you need just 6 TB of physical storage capacity.

デュアル パリティ (規模を拡大)

各規模におけるデュアル パリティの効率とローカル再構築コードについては、「まとめ」セクションをご覧ください。See the Summary section for the efficiency of dual party and local reconstruction codes at every scale.

ローカル再構築コードLocal reconstruction codes

Windows Server 2016 の記憶域スペースでは、Microsoft Research によって開発された高度な手法である "ローカル再構築コード" (LRC) が導入されています。Storage Spaces in Windows Server 2016 introduces an advanced technique developed by Microsoft Research called 'local reconstruction codes', or LRC. 規模が大きい場合、デュアル パリティでは LRC を使用して、パリティのエンコードやデコードをいくつかの小さなグループに分割し、書き込みや障害からの回復で必要となるオーバーヘッドを削減します。At large scale, dual parity uses LRC to split its encoding/decoding into a few smaller groups, to reduce the overhead required to make writes or recover from failures.

ハード ディスク ドライブ (HDD) ではグループのサイズは 4 つのシンボルで表され、ソリッド ステート ドライブ (SSD) ではグループのサイズは 6 つのシンボルで表されます。With hard disk drives (HDD) the group size is four symbols; with solid-state drives (SSD), the group size is six symbols. たとえば、ハード ディスク ドライブと 12 個のハードウェア障害ドメイン (12 台のサーバー) を使用したレイアウトがどのようになるかを、以下に示します。ここでは、4 つのデータ シンボルを持つ 2 つのグループが示されています。For example, here's what the layout looks like with hard disk drives and 12 hardware fault domains (meaning 12 servers) – there are two groups of four data symbols. この場合、72.7% の記憶域の効率が実現されます。It achieves 72.7% storage efficiency.

ローカル再構築コード

ローカル再構築コードでのさまざまな障害シナリオの処理方法や、ローカル再構築コードが注目に値する理由について詳しくかつ非常にわかりやすく説明したチュートリアルをご覧になることをお勧めします。このチュートリアルは弊社の Claus Joergensen によって作成されました。We recommend this in-depth yet eminently readable walk-through of how local reconstruction codes handle various failure scenarios, and why they're appealing, by our very own Claus Joergensen.

ミラーリングによって高速化されたパリティMirror-accelerated parity

Windows Server 2016 以降では、記憶域スペース ダイレクトの 1 つのボリュームに対して、一部ではミラーを使用し、一部ではパリティを使用することができます。Beginning in Windows Server 2016, a Storage Spaces Direct volume can be part mirror and part parity. 書き込みはまずミラーリングされた部分に行われ、徐々にパリティ部分に移行していきます。Writes land first in the mirrored portion and are gradually moved into the parity portion later. 実際には、これはイレイジャー コーディングを高速化するためにミラーリングを使っていますEffectively, this is using mirroring to accelerate erasure coding.

3 方向ミラーとデュアル パリティを混在させるには、少なくとも 4 つの障害ドメイン (4 台のサーバー) が必要になります。To mix three-way mirror and dual parity, you need at least four fault domains, meaning four servers.

ミラーリングによって高速化されたパリティの記憶域の効率は、すべてをミラーで実行した場合とすべてをパリティで実行した場合の間の値を示します。この効率は、混在させる割合によって異なります。The storage efficiency of mirror-accelerated parity is in between what you'd get from using all mirror or all parity, and depends on the proportions you choose. たとえば、このプレゼンテーションの 37 分から始まるデモでは、12 台のサーバーに基づいて 46%、54%、65% の効率を実現するさまざまな混合の例が示されています。For example, the demo at the 37-minute mark of this presentation shows various mixes achieving 46%, 54%, and 65% efficiency with 12 servers.

重要

ほとんどのパフォーマンスが重視されるワークロードには、ミラーリングを使用することをお勧めします。We recommend using mirroring for most performance-sensitive workloads. ワークロードに応じて、パフォーマンスと容量のバランスを取る方法については詳しくは、ボリュームの計画」をご覧ください。To learn more about how to balance performance and capacity depending on your workload, see Plan volumes.

概要Summary

このセクションでは、記憶域スペース ダイレクトで利用可能な回復性の種類、それぞれの種類を使用するための最小スケール要件、それぞれの種類で許容できる障害の数、対応する記憶域の効率についてまとめています。This section summarizes the resiliency types available in Storage Spaces Direct, the minimum scale requirements to use each type, how many failures each type can tolerate, and the corresponding storage efficiency.

回復性の種類Resiliency types

回復性Resiliency 障害の許容数Failure tolerance 記憶域の効率Storage efficiency
双方向ミラーTwo-way mirror 1 で保護されたプロセスとして起動されました1 50.0%50.0%
3 方向ミラーThree-way mirror 2 で保護されたプロセスとして起動されました2 33.3%33.3%
デュアル パリティDual parity 2 で保護されたプロセスとして起動されました2 50.0% ~ 80.0%50.0% - 80.0%
ミックスMixed 2 で保護されたプロセスとして起動されました2 33.3% ~ 80.0%33.3% - 80.0%

最小スケール要件Minimum scale requirements

回復性Resiliency 最小限必要な障害ドメインMinimum required fault domains
双方向ミラーTwo-way mirror 2 で保護されたプロセスとして起動されました2
3 方向ミラーThree-way mirror 3 で保護されたプロセスとして起動されました3
デュアル パリティDual parity ホーム フォルダーが置かれているコンピューターにアクセスできない4
ミックスMixed ホーム フォルダーが置かれているコンピューターにアクセスできない4

ヒント

シャーシまたはラックのフォールト トレランスを使っている場合を除き、障害ドメインの数はサーバーの数を表します。Unless you are using chassis or rack fault tolerance, the number of fault domains refers to the number of servers. 記憶域スペース ダイレクトの最小要件を満たしている限り、各サーバーのドライブの数は、使用できる回復性の種類に影響しません。The number of drives in each server does not affect which resiliency types you can use, as long as you meet the minimum requirements for Storage Spaces Direct.

ハイブリッド展開でのデュアル パリティの効率Dual parity efficiency for hybrid deployments

次の表は、ハード ディスク ドライブ (HDD) とソリッドステート ドライブ (SSD) の両方が含まれているハイブリッド展開の各スケールでの、デュアル パリティとローカル再構築コードの記憶域効率を示しています。This table shows the storage efficiency of dual parity and local reconstruction codes at each scale for hybrid deployments which contain both hard disk drives (HDD) and solid-state drives (SSD).

障害ドメインFault domains レイアウトLayout 効率性Efficiency
2 で保護されたプロセスとして起動されました2
3 で保護されたプロセスとして起動されました3
ホーム フォルダーが置かれているコンピューターにアクセスできない4 RS 2+2RS 2+2 50.0%50.0%
55 RS 2+2RS 2+2 50.0%50.0%
66 RS 2+2RS 2+2 50.0%50.0%
77 RS 4+2RS 4+2 66.7%66.7%
88 RS 4+2RS 4+2 66.7%66.7%
99 RS 4+2RS 4+2 66.7%66.7%
1010 RS 4+2RS 4+2 66.7%66.7%
1111 RS 4+2RS 4+2 66.7%66.7%
1212 LRC (8, 2, 1)LRC (8, 2, 1) 72.7%72.7%
1313 LRC (8, 2, 1)LRC (8, 2, 1) 72.7%72.7%
1414 LRC (8, 2, 1)LRC (8, 2, 1) 72.7%72.7%
1515 LRC (8, 2, 1)LRC (8, 2, 1) 72.7%72.7%
1616 LRC (8, 2, 1)LRC (8, 2, 1) 72.7%72.7%

オールフラッシュ展開でのデュアル パリティの効率Dual parity efficiency for all-flash deployments

次の表は、ソリッドステート ドライブ (SSD) のみが含まれているオールフラッシュ展開の各スケールでの、デュアル パリティとローカル再構築コードの記憶域効率を示しています。This table shows the storage efficiency of dual parity and local reconstruction codes at each scale for all-flash deployments which contain only solid-state drives (SSD). オールフラッシュ構成では、パリティ レイアウトで、より大きいグループ サイズを使用でき、記憶域効率の向上を実現できます。The parity layout can use larger group sizes and achieve better storage efficiency in an all-flash configuration.

障害ドメインFault domains レイアウトLayout 効率性Efficiency
2 で保護されたプロセスとして起動されました2
3 で保護されたプロセスとして起動されました3
ホーム フォルダーが置かれているコンピューターにアクセスできない4 RS 2+2RS 2+2 50.0%50.0%
55 RS 2+2RS 2+2 50.0%50.0%
66 RS 2+2RS 2+2 50.0%50.0%
77 RS 4+2RS 4+2 66.7%66.7%
88 RS 4+2RS 4+2 66.7%66.7%
99 RS 6+2RS 6+2 75.0%75.0%
1010 RS 6+2RS 6+2 75.0%75.0%
1111 RS 6+2RS 6+2 75.0%75.0%
1212 RS 6+2RS 6+2 75.0%75.0%
1313 RS 6+2RS 6+2 75.0%75.0%
1414 RS 6+2RS 6+2 75.0%75.0%
1515 RS 6+2RS 6+2 75.0%75.0%
1616 LRC (12, 2, 1)LRC (12, 2, 1) 80.080.0%

Examples

サーバーが 2 台のみである場合を除き、3 方向ミラーリングとデュアル パリティの両方またはいずれかを使用することをお勧めします。これらにより、フォールト トレランスが向上するためです。Unless you have only two servers, we recommend using three-way mirroring and/or dual parity, because they offer better fault tolerance. 具体的には、2 つの障害ドメイン (記憶域スペース ダイレクトでは 2 台のサーバーを意味する) が同時に発生した障害の影響を受けた場合でも、すべてのデータの安全性と継続的なアクセス可能性を維持できます。Specifically, they ensure that all data remains safe and continuously accessible even when two fault domains – with Storage Spaces Direct, that means two servers - are affected by simultaneous failures.

すべてがオンラインのままである例Examples where everything stays online

次の 6 つの例は、3 方向ミラーリングやデュアル パリティで対処できる状態を示しています。These six examples show what three-way mirroring and/or dual parity can tolerate.

  • 1. 1 つのドライブが失われた (キャッシュ ドライブを含む)1. One drive lost (includes cache drives)
  • 2. 1 台のサーバーが失われた2. One server lost

fault-tolerance-examples-1-and-2

  • 3. 1 台のサーバーと 1 つのドライブが失われた3. One server and one drive lost
  • 4. 異なるサーバーの 2 つのドライブが失われた4. Two drives lost in different servers

fault-tolerance-examples-3-and-4

  • 5. 2 台を超えるドライブが失われたが、影響を受けるサーバーが最大で 2 台である5. More than two drives lost, so long as at most two servers are affected
  • 6. 2 台のサーバーが失われた6. Two servers lost

fault-tolerance-examples-5-and-6

... いずれの場合も、すべてのボリュームのオンライン状態が維持されます...in every case, all volumes will stay online. (クラスターがクォーラムを維持することを確認してください)。(Make sure your cluster maintains quorum.)

すべてがオフラインになる例Examples where everything goes offline

有効期間中は、記憶域スペースでは任意の数の障害に対応できます。これは、各障害が発生した後で、十分な時間があれば、完全な回復状態に復元されるためです。Over its lifetime, Storage Spaces can tolerate any number of failures, because it restores to full resiliency after each one, given sufficient time. ただし、特定の時点で、最大で 2 つの障害ドメインが障害の影響を受けても安全です。However, at most two fault domains can safely be affected by failures at any given moment. したがって、次に示す例は、3 方向ミラーリングやデュアル パリティでは対処できない状態です。The following are therefore examples of what three-way mirroring and/or dual parity cannot tolerate.

  • 7. 同時に 3 台以上のサーバーでドライブが失われた7. Drives lost in three or more servers at once
  • 8. 同時に 3 台以上のサーバーが失われた8. Three or more servers lost at once

fault-tolerance-examples-7-and-8

使用方法Usage

記憶域スペース ダイレクトのボリュームの作成」をご覧ください。Check out Creating volumes in Storage Spaces Direct.

See also

以下のすべてのリンクは、このトピックの本文内に記載されています。Every link below is inline somewhere in the body of this topic.