データベース コピー レイアウトの設計

 

適用先: Exchange Server 2010 SP2, Exchange Server 2010 SP3

トピックの最終更新日: 2010-11-11

メールボックス サーバーの高可用性ソリューションを設計する際には、次のようなさまざまなインフラストラクチャ コンポーネントの高可用性を確保する必要があります。

  • Active Directory およびドメイン ネーム システム (DNS) などのインフラストラクチャ サービス

  • データベース可用性グループ (DAG) のメンバー サーバー

  • ディスク、ストレージ コントローラー、ストレージ シェルフなどの個々のストレージ コンポーネント

  • ルーター、スイッチ、集合などの個々のネットワーク コンポーネント

  • サーバー ラックとストレージ ラック

  • 電源バス

  • データセンター

これらのコンポーネント領域は、それぞれが潜在的な障害点を表しており、障害ドメインと呼ばれる場合もあります。この結果、これらのドメインの 1 つで発生する障害が DAG 環境に与える可能性がある悪影響を切り離して最小限に抑えるために、どのようにソリューションを設計するかによって、DAG の可用性レベルが大きく変わります。障害ドメイン間の独立性を実現するには、障害ドメインごとにデータベースのコピーを 1 つ持つ必要があります。また、障害が発生すると複数のコピーが使用できなくなる可能性があるため、1 つの障害ドメインごとに複数のコピーを持つことは不要です。

たとえば、データベースのコピーが 2 つあるシナリオを考えてみましょう。各コピーが別々のディスク セットに格納されていますが、両コピーとも同じストレージ アレイ内に置かれているとします。何らかの理由でストレージ アレイに障害が発生するか使用不可になると、両方のコピーが使用できなくなります。この例では、障害ドメインはストレージ アレイです。アレイには、各メールボックス データベースのコピーが 1 つだけ存在する必要があります。そうでないと、アレイに障害が発生した場合に、データベースの複数の (おそらくすべての) コピーが使用できなくなります。

メールボックス アーキテクチャを計画する際は、さらに次の設計ポイントについても考慮してください。

  • 複数のデータベース コピーを展開するかどうか。

  • 展開するデータベース コピーの数。

  • サイト復元インフラストラクチャを持つかどうか。

  • 展開するメールボックス サーバー復元モデルの種類。

  • 展開するメールボックス サーバーの数。

  • 使用するバックアップ モデル。

  • 使用するストレージ アーキテクチャ。

上記の点に関する計画方法の詳細については、「高可用性の要因について」を参照してください。

目次

バランスの取れていないデータベース コピー レイアウト

バランスの取れたデータベース コピー レイアウトの設計

サーバー障害時のアクティブ データベース分散のシナリオ例

設計シナリオ

高可用性とサイト復元に関連する管理タスクについては、「高可用性とサイト復元の管理」を参照してください。

バランスの取れていないデータベース コピー レイアウト

DAG 内でのデータべース コピーの配布方法について理解するため、Contoso, Ltd が高可用性メールボックス サーバー ソリューションを計画する場合の DAG 設計について考えてみます。Contoso は、次の内容で構成される DAG を構築しています。

  • 4 台のメールボックス サーバー

  • 20 個のメールボックス データベース

  • 各メールボックス データベースの 2 つのコピー

すべてのサーバーが 1 つのデータセンターに展開され、各サーバーが独自の専用ストレージを持ち、各サーバーがそれぞれ専用のサーバー ラックに展開されています。

Contoso では、常時 2 つの (遅延などのない) 高可用性データベース コピーが使用可能であり、同時に 2 つの DAG メンバーが停止しても、データべースの可用性に悪影響を与えることなくソリューションが対応できることが必要です。

上記の要件に基づくデータベース コピー レイアウトは次の図のようになります。

最初のデータベース コピー レイアウト

データベース コピー レイアウト テーブル 1

4 台の DAG メンバーに各データベースのアクティブ コピーが分散しているため、まず設計に問題はないように思えます。ただし、この設計にはいくつかの問題点があります。サーバー リソースの観点から見ると、このレイアウトは最適なものではありません。たとえば、1 台のサーバーに障害が発生すると、次の図のようにデータベースの分散が不均衡になります。

単一のサーバー障害が発生した後のデータベース コピー レイアウト

単一サーバー障害後のデータベース コピー レイアウト

Server4 に障害が発生すると、データベース DB16 ~ DB20 が Server1 でアクティブ化され、残り 3 台のサーバーに分散されません。この結果、アクティブ化されたメールボックス データベースの分散が不均衡になり、サーバー リソースの使用率が不均衡になります。Server1 の使用率は、残り 2 台のサーバー (Server2 と Server3) と比較して 2 倍になります。

2 台のサーバーが同時に停止しても、あらゆる場合に対応できるだけの十分なコピーが DAG に含まれていないことも問題です。他のサーバー障害によって、データベースの 50% が使用できなくなる可能性もあります。Server1 と Server4 に障害が発生したり、短時間で互いが使用できなくなったりすると、次の図のように 10 個のデータベースが使用できなくなります。

サーバーの二重障害が発生した後のデータベース コピー レイアウト

二重サーバー障害後のデータベース コピー レイアウト

この設計は、サーバーの二重障害に対応するための主要件を満たしていません。サーバーの二重障害に対応し、すべてのアクティブ データベースを保持するには、3 番目のコピーを展開して、新しいレイアウトを考案する必要があります。

ページのトップへ

バランスの取れたデータベース コピー レイアウトの設計

バランスの取れたデータベース コピー レイアウトを設計するには、複数の設計案を再検討して、最適な設計を作り出す必要があるかもしれません。データベース コピー レイアウトを計画する際には、次の設計原則を使用します。

  • メールボックス データベースのデータベース コピー障害が複数発生する可能性を最小限に抑えるため、各コピーを分離して別々の障害ドメインに置くようにしてください。たとえば、同じサーバー ラックや同じストレージ アレイ内に、特定のメールボックス データベースの複数のデータベース コピーを置かないようにしてください。

  • データベース コピーを一貫性のある分散方法に従ってレイアウトし、障害発生後にアクティブ メールボックス データベースが均等に分散されるようにしてください。特定のサーバーにおける各データベース コピーのアクティブ化優先順位の合計は、同じかほぼ同じである必要があります。こうしておけば、レプリケーションが正常で最新のものであれば、障害が発生してもデータベース コピーがほぼ均等に分散されます。

構成要素

前の設計原則に従うには、データベース コピーを特定の配置で置き、なるべく多くのサーバーですべてのアクティブ コピーが対称的に分散されるようにすることをお勧めします。データベース コピーの配置は、構成要素の概念に基づきます。

(レベル 1 の構成要素として知られる) 1 番目の構成要素は、アクティブ データベース コピーをホストするメールボックス サーバーの数に基づきます。この数を N とします。N によって、メールボックス サーバーの数だけでなく、構成要素内のデータベース数も定義されます。1 つのアクティブ データベース コピーが、対角線パターンを形成しながら各サーバーに配布されます。前の例のように、4 台のメールボックス サーバーと 20 個のメールボックス データベースがあります。1 番目のレベル 1 の構成要素のサイズは、次の図のとおり 4 です。

レベル 1 の構成要素

レベル 1 の構成要素

残りのレベル 1 の構成要素セットごとに、同じパターンを繰り返します。20 個のデータベースがあるため、次の図のようにレベル 1 の構成要素セットが 5 つあります。

20 個のデータベースあたり 5 つのレベル 1 の構成要素

20 個のデータベースに対する 5 つのレベル 1 の構成要素

2 番目のデータベース コピーを追加する場合は、各構成要素セットとは別の方法で配置します。1 台のサーバーがすでにアクティブ コピーをホストしているため、2 番目のデータベース コピーをホストするには、N – 1 台のサーバーを使用できます。上記の N – 1 台のサーバーをそれぞれ 1 回使用すると、より大きな新しい構成要素を形成する完全な対称分散となります。したがって、(レベル 2 の構成要素として知られる) 新しい構成要素のサイズは、N × (N – 1) 個のデータベースとなります。つまり、1 番目のデータベースの 2 番目のデータベース コピーが 2 台目のサーバーに配置され、その後 2 番目のコピーはそれぞれ構成要素内の対角線パターンに展開されます。1 番目のレベル 1 の構成要素セット内でパターンが完了すると、次のブロックの 2 番目のコピーの開始位置が 1 つオフセットされるため、2 番目のコピーは 3 台目のサーバーで開始されます。

この例の場合、構成要素のサイズは 4× (4 – 1) = 4× 3 = 12 となります。つまり、レベル 2 の構成要素セットが、それぞれ 12 個のデータベースで構成されるということです。レベル 1 の構成要素セット 1 (DB1 ~ DB4) では、DB1 の 2 番目のコピーが Server2 に配置され、レベル 1 の構成要素セット 2 (DB5 ~ DB8) では、DB5 の 2 番目のコピーが Server3 に配置されます。レベル 1 の構成要素セットの開始サーバーの配置は、前のレベル 1 の構成要素セットからそれぞれサーバー 1 台分オフセットされます。このレイアウトは、Server4 上に DB9 の 2 番目のコピーを配置することで継続します。この結果、Server1 に障害が発生すると、同じサーバー上で複数のデータベースがアクティブ化されるのではなく、3 台の残りのサーバー全部で 2 番目のコピーがアクティブ化されるようになります。

3 つのレベル 1 の構成要素を含むレベル 2 の構成要素

3 つのレベル 1 要素を伴う 1 つのレベル 2 の構成要素

このパターンは、残りの 2 番目の構成要素セットで、それぞれ繰り返されます。20 個のデータベースがあるため、この例ではレベル 2 の構成要素セットが 2 つあります。DB13 の 2 番目のコピーが Server2 にあることに注意してください。

残り 2 つのレベル 1 の構成要素を含むレベル 2 の構成要素

残りの 2 つの 要素を伴うレベル 2 の構成要素

このロジックをより理解するため、DB1、DB5、および DB9 のデータベース コピーの配置を比較してみましょう。これらのデータベースには、それぞれ Server1 でホストされているアクティブ コピーがあります。Server1 で障害が発生した場合は、2 番目のデータベース コピーを別の残りのサーバーでアクティブ化し、負荷分散を均等にする必要があります。このためには、Server2 に DB1 の 2 番目のデータベース コピーを、Server3 に DB5 の 2 番目のデータベース コピーを、Server4 に DB9 の 2 番目のデータベース コピーを配置します。DB13 からは、単にこのパターンを繰り返します。次の図のように、残りのデータベース コピーが対角線パターンに追加されます。

均等な分散のためのデータベース コピーの配置

均等な分散のためのデータベース コピーの配置

2 番目の構成要素 (DB13 ~ DB20) には、データベースが 12 個ではなく 8 個しか含まれないことに注意してください。この結果、障害が 1 つ発生すれば、この設計は完全対称ではなくなります。完全な対称分散を実現するには、アーキテクチャを計画する際に、データベース数が構成要素の最大サイズの倍数となるようにしてください。(この例の場合、最適なデータべース数は 24、36、48、60 個などです。)

3 番目のデータベース コピーを追加する際には、現在の N × (N – 1) 個のデータベースのグループごとに、これを別の方法で再配置する必要があります。3 番目のデータベース コピーの配置先は N – 2 台のサーバーから選択するしかないので、バリエーションは N – 2 個となります。(レベル 3 の構成要素として知られる) 新しい構成要素は、N × (N – 1) × (N – 2) 個のデータベースとなります。したがって、1 番目のデータベースの 3 番目のデータベース コピーは、3 台目のサーバーに配置されます。この後 3 番目のコピーは、それぞれこの新しい構成要素内の開始位置に従って対角線パターンに展開されます。1 番目のレベル 1 の構成要素セット内でこのパターンが完了すると、開始位置が 1 つオフセットされるため、3 番目のコピーが 4 番目の位置に配置されます。

この例の場合、構成要素は 4 × (4 – 1) × (4 – 2) = 4 × 3 × 2 = 24 となります。つまり、レベル 3 の構成要素セットは、それぞれ 24 個のデータベースで構成されます。データベース配置パターンを対称にするには、DB1 の 3 番目のデータベース コピーを Server3 に置きます (Server1 が 1 番目のコピーをホストし、Server2 が 2 番目のコピーをホストしているため、Server3 が使用できる最初のサーバーです)。次に、レベル 1 の構成要素セット 1 の終わりに達するまで、各追加コピーを 1 つずつオフセットします。次の構成要素セットでも同様に、次の使用可能なサーバー (Server4) に 3 番目のデータベース コピーを置きます。レベル 2 の構成要素セット 1 の終わりとマークされている DB12 まで、同じ方法でこれを続行します。DB13 ~ DB20 でも同じパターンに従いますが、3 番目のデータベース コピーの配置が DB1 ~ DB12 と同じサーバーで終了しないよう、1 つずつオフセットしてください。

3 つのデータベース コピーと 4 台のサーバーを含むバランスの取れたレイアウト

3 つのコピーと 4 台のサーバーによるバランスの取れたレイアウト

このロジックをより理解するため、データベース DB1 ~ DB13 のデータベース コピーの配置を再度比較します。上記のデータベースには、Server1 でホストされているアクティブ データベース コピーと、Server2 でホストされている 2 番目のデータベース コピーがあります。これらのサーバーで障害が発生した場合は、3 番目のデータベース コピーを別の残りのサーバーでアクティブ化し、負荷分散を均等にします。負荷分散を均等にするには、DB1 の 3 番目のデータベース コピーを Server3 に、DB13 の 3 番目のデータベース コピーを Server4 に置きます。DB2 と DB14、DB3 と DB15 などを同様に組み合わせます。DB25 からは、単にこのパターンを繰り返します (この例では、この多数のデータベースについては説明しません)。

3 番目の構成要素 (DB1 ~ DB20) には、データベースが 24 個ではなく 20 個しか含まれないことに注意してください。この結果、この設計では二重障害が発生した場合に完全に対称にはなりません。前述のとおり、完全な対称分散を実現するには、アーキテクチャを計画する際に、データベース数が構成要素の最大サイズの倍数となるようにしてください。(この例の場合、最適なデータべース数は 24、48、72 個などです。)

4 番目のデータベース コピーを追加する際には、現在の N × (N – 1) × (N – 2) 個のデータベースのグループごとに、この 4 番目のデータベース コピーを別の方法で再配置する必要があります。新しい構成要素は、N × (N – 1) × (N – 2) × (N – 3) 個のデータベースとなります。これは同じ論理的な方法に従っており、3 台のサーバーで障害が発生した場合でも、新しい構成要素内でデータベースが均等に分散されます。

4 台のサーバーの例では、4 番目のデータベース コピーの配置方法は 1 つしかありません (使用できる残りのサーバーは 1 台しかありません)。したがって、実際の構成要素のサイズは 24 のままとなります。これは、次の構成要素サイズの式からも明らかです。 4 × 3 × 2 × (4 – 3) = 4 × 3 × 2 × 1 = 24.

データベース コピーを追加していくと、構成要素のサイズに関する一般式 Perm(N,M) = N × (N – 1) … (NM + 1) = N!/(NM)!= CNMM! に従って、構成要素が拡大していきます。ここでは、N = サーバーの台数、M = データベース コピーの数です。ここでお分かりのように、N 台の使用可能なサーバーで M 個のデータベース コピーの順列を可能な限り全部選択することで、データベース コピーの完全な対称分散が実現されます。

この方法を使用する際には、次の点に注意が必要です。

  • 構成要素の最大サイズの倍数以外の数のデータベースを展開すると、エラー イベントの発生時にアクティブ データベースの分散が非対称となります。

  • 複数のドメイン障害を減らすためにアーキテクチャを展開すると、エラー イベントの発生時にアクティブ データベースの分散が非対称となります。これは、障害ドメインの定義によって、データベース コピーの配置が制限されるためです。この結果、パターンが対称ではなくなります。

  • サイト復元ソリューションを展開した結果、*イベントのデータベースがサイト外にある場合は、プライマリ データセンター サーバーでエラー イベントが発生すると、セカンダリ データセンターでアクティブ化されるデータベースの分散が非対称となります。

ページのトップへ

サーバー障害時のアクティブ データベース分散のシナリオ例

前の例で、(Server4 の障害などの) 単一のサーバー障害が発生すると、アクティブ メールボックス データベースが次の図のように分散されます。DB4、DB8、DB12、DB16、および DB20 の 2 番目のコピーがアクティブ化され、オレンジ色で "アクティブ" と表示されます。

単一のサーバー障害が発生した後のアクティブ データベース コピーの配布

障害後のアクティブ データベース コピー配布

サーバーで二重障害が発生すると (複数のデータベースで 3 番目のコピーがアクティブ化され、緑色で "アクティブ" と表示されている状態)、残りの 2 台のサーバー (Server1 と Server3) が同数のアクティブ化されたメールボックス データベースを持つようになります。

二重サーバー障害が発生した後のアクティブ データベース コピーの配布

二重障害後のアクティブ コピー配布

ただし、この例ではデータベースの数が構成要素の最大サイズ (24 個のデータベース) の倍数ではないため、二重サーバー障害イベントが発生した結果、すべてが対称分散となるわけではありません。

別の二重サーバー障害が発生した後のアクティブ データベース コピーの配布

異なる障害後のアクティブ コピー配布

ページのトップへ

設計シナリオ

データベース コピー レイアウトの設計原則 (関連する数式を含む) を理解するため、あと 2 つのアーキテクチャ レイアウトについて考えてみましょう。

設計シナリオ: アクティブ/パッシブ ユーザーの分散サイト復元ソリューション

このシナリオでは、Contoso が次のアーキテクチャの展開を決定しています。

  • DAG を 2 つのデータセンターに拡張し、アクティブ/パッシブ ユーザーの分散モデルで動作させる。

  • 各サーバーを別々のサーバー ラックに展開する。

  • データセンター内で、各サーバーのストレージを他のサーバーのストレージから分離する。

  • データセンターごとに 4 台のメールボックス サーバーがある。

  • 合計 24 個のメールボックス データベースがある。

  • 4 個の高可用性データベース コピーを持ち、二重サーバー障害やデータセンターの単一障害に対応できることが望ましい。

この例では、レベル 1 の構成要素が 4 で、データベースが 4 つの単位にグループ化され、アクティブ コピーが構成要素内の 4 台のサーバーに配布されています。

1 つの構成要素で 1 番目のコピーを均等に配布する

構成要素内でのデータベースの均等配布

アクティブ コピーをホストする各サーバーでは、残りのすべてのメンバー サーバー間で、2 番目のデータベース コピーを対角線パターンでできるだけ均等に配布します。これは、各コピーが互いに分離されているためです。この例では、レベル 2 の構成要素が 12 となります。これは、12 個のデータベースごとの繰り返しセットになります。

1 つの構成要素で 2 番目のコピーを均等に配布する

要素間での 2 番目のコピーの均等配布

このサイト復元ソリューションは、両方のデータセンターに同数のサーバーとデータベース コピーが含まれるアクティブ/パッシブ ユーザーの分散モデル用であるため、3 番目のデータベース コピーが Server5 と Server6 の対角線パターンに配置されます。この際、レベル 1 の構成要素値 4 が使用されます。この結果、Server5 と Server6 が Server1 ~ Server4 の 1 番目のデータベース コピーと対称的に配置されます。

2 番目の構成要素で 3 番目のコピーを均等に配布する

要素間での 3 番目のコピーの均等配布

このサイト復元ソリューションは、両方のデータセンターに同数のサーバーとデータベース コピーが含まれるアクティブ/パッシブ ユーザーの分散モデル用であるため、4 番目のデータベース コピーが Server5 と Server6 の対角線パターンに配置されます。この際、レベル 2 の構成要素値 12 が使用されます。この結果、Server5 と Server6 が Server1 ~ Server4 の 2 番目のデータベース コピーと対称に配置されます。

2 番目の構成要素で 4 番目のコピーを均等に配布する

要素間での 4 番目のコピーの均等配布

単一のサーバー障害が発生した場合、プライマリ データセンターの残り 3 台のサーバーが同数 (サーバー 1 台あたり 8 個) のアクティブ化されたメールボックス データベースを持つようになります。

単一のサーバー障害が発生した後のアクティブ データベース コピーの配布

サーバー障害後のアクティブ コピーの配布

2 つのサーバー障害が同時に発生した場合は、プライマリ センターの残り 2 台のサーバーが同数 (サーバー 1 台あたり 10 個) のアクティブ化されたメールボックス データベースを持つことになります。この際、セカンダリ データセンターでは 4 個のデータベースがアクティブ化されます。

二重サーバー障害が発生した後のアクティブ データベース コピーの配布

二重障害後のアクティブ コピーの配布

設計シナリオ: 複数の障害ドメイン

この例では、Wingtip Toys が次のアーキテクチャの展開を決定しています。

  • すべてのサーバーを 1 つのデータセンターに展開する。

  • サーバーを 3 つの単位にグループ化する。

  • 3 台のサーバーを、それぞれストレージと一緒に同じラックに配置する。

  • 合計 3 台のラックと 9 台のサーバーがある。

  • 合計 18 個のメールボックス データベースがある。

  • 3 個の高可用性データベース コピーを持ち、2 台のメンバー サーバーの障害またはラック 1 台の障害に対応できることが望ましい。

この例では、レベル 1 の構成要素が 6 なので、データベースが 6 つの単位にグループ化され、アクティブ コピーが構成要素内の 6 台のサーバーに配布されます。

レベル 1 の構成要素のデータベース コピー レイアウト

レベル 1 の構成要素のデータベース コピー レイアウト

アクティブ コピーをホストする各サーバーでは、残りのすべてのメンバー サーバー間で、2 番目のデータベース コピーが対角線パターンでできるだけ均等に分散されます。また、同じデータベースの 2 つのコピーが同じサーバー ラックに配置されないようにします。この例では、レベル 2 の構成要素の式 N × (N – 1) の代わりに、N × (N – 2) の式を使用して、同じデータベースの 2 つのコピーが同じサーバー ラックに配置されないようにしています。つまり、レベル 2 の構成要素は 6 × 4 = 24 となります。

1 番目と 2 番目のコピーのデータベース コピー レイアウト

1 番目および 2 番目のコピーのデータベース コピー レイアウト

3 番目のデータベース コピーがサーバーの対角線パターンに配置されており、また同じデータベースの複数のコピーが同じサーバー ラックに配置されないようになっています。この例では、レベル 3 の構成要素の式 N × (N – 2) の代わりに、N × (N – 2) × (N – 4) の式を使用して、同じデータベースの 2 つのコピーが同じサーバー ラックに配置されないようにしています。つまり、レベル 3 の構成要素は 6 × 4 × 2 = 48 となります。

1 番目、2 番目、および 3 番目のコピーのデータベース コピー レイアウト

3 つのコピーのデータベース コピー レイアウト

単一のサーバー障害が発生した場合、プライマリ データセンターの残り 5 台のサーバーがほぼ同数のアクティブ化されたメールボックス データベースを持つようになります。4 台のサーバーがそれぞれ 10 個、1 台のサーバー (ラック パートナー) が 8 個のアクティブ化されたデータベースを持ちます。

単一のサーバー障害が発生した後のアクティブ データベースの数とレイアウト

障害後のアクティブ データベースの数およびレイアウト

2 つのサーバー障害が (別々のラックで) 同時に発生した場合は、残り 4 台のサーバーがほぼ同数のアクティブ化されたメールボックス データベースを持つことになります。

(別々のラックで) 二重サーバー障害が発生した後のアクティブ データベースの数とレイアウト

二重障害後のアクティブ データベースの数およびレイアウト

2 つのサーバー障害が (同じラックで) 同時に発生した場合は、残り 4 台のサーバーが同数のアクティブ化されたメールボックス データベースを持つことになります。

(同じラックで) 二重サーバー障害が発生した後のアクティブ データベースの数とレイアウト

二重障害後のアクティブ データベースの数およびレイアウト

ページのトップへ

 © 2010 Microsoft Corporation.All rights reserved.