フェールオーバー クラスタリングと AlwaysOn 可用性グループ (SQL Server)
SQL Server 2014 で導入された高可用性およびディザスター リカバリー ソリューションである可用性グループAlways On、Windows Server フェールオーバー クラスタリング (WSFC) が必要です。 また、Always On可用性グループはフェールオーバー クラスタリングSQL Server依存しませんが、フェールオーバー クラスタリング インスタンス (FCI) を使用して可用性グループの可用性レプリカをホストできます。 各クラスタリング テクノロジの役割を把握し、Always On可用性グループ環境を設計するときに必要な考慮事項を把握することが重要です。
注意
Always On可用性グループの概念については、「AlwaysOn 可用性グループの概要 (SQL Server)」を参照してください。
Windows Server フェールオーバー クラスタリングと可用性グループ
可用性グループAlways On展開するには、Windows Server フェールオーバー クラスタリング (WSFC) クラスターが必要です。 Always On可用性グループに対して有効にするには、SQL Serverのインスタンスが WSFC ノード上に存在し、WSFC クラスターとノードがオンラインである必要があります。 さらに、特定の可用性グループの各可用性レプリカが、同じ WSFC クラスターの異なるノード上に存在する必要があります。 唯一の例外は、別の WSFC クラスターに移行するときに、可用性グループは一時的に 2 つのクラスターにまたがることができるという点です。
Always On可用性グループは、Windows フェールオーバー クラスタリング (WSFC) クラスターに依存して、特定の可用性グループに属する可用性レプリカの現在のロールを監視および管理し、フェールオーバー イベントが可用性レプリカに与える影響を判断します。 WSFC リソース グループは、作成されたすべての可用性グループに対して作成されます。 WSFC クラスターは、このリソース グループを監視して、プライマリ レプリカの正常性を評価します。
Always On可用性グループのクォーラムは、特定のクラスター ノードが可用性レプリカをホストしているかどうかに関係なく、WSFC クラスター内のすべてのノードに基づいています。 データベース ミラーリングとは対照的に、Always On可用性グループにはミラーリング監視ロールはありません。
WSFC クラスターの全体的な正常性は、クラスター内のノードのクォーラムの投票によって決定されます。 災害や永続的なハードウェア障害または通信障害が原因で WSFC クラスターがオフラインになった場合は、管理操作を手動で行う必要があります。 Windows Server または WSFC クラスターの管理者は、クォーラムを強制し、稼動しているクラスター ノードをフォールト トレラントではない構成でオンラインに戻す必要があります。
重要
Always On可用性グループのレジストリ キーは、WSFC クラスターのサブキーです。 WSFC クラスターを削除して再作成する場合は、元の WSFC クラスターで可用性レプリカをホストしていたSQL Serverの各インスタンスで、Always On可用性グループ機能を無効にして再度有効にする必要があります。
Windows Server フェールオーバー クラスタリング (WSFC) ノードでのSQL Serverの実行と WSFC クォーラムの詳細については、「windows Server Failover Clustering (WSFC) with SQL Server」を参照してください。
OS アップグレードのための AlwaysOn 可用性グループのクラスター間での移行
SQL Server 2012 SP1 以降では、Always On可用性グループは、新しい Windows Server フェールオーバー クラスタリング (WSFC) クラスターへの展開のために可用性グループのクラスター間移行をサポートしています。 クラスター間の移行では、ダウンタイムを最小限に抑えながら、1 つの可用性グループを (または複数の可用性グループを一括して) 新しい移行先 WSFC クラスターに移行します。 クラスター間の移行プロセスを使用すると、Windows Server 2012 クラスターへのアップグレード時にサービス レベル契約 (SLA) を維持できます。 SQL Server 2012 SP1 (またはそれ以降のバージョン) をインストールし、宛先 WSFC クラスターで AlwaysOn に対して有効にする必要があります。 クラスター間での移行を成功させるには、移行先 WSFC クラスターを綿密に計画し、準備することが必要です。
詳細については、「OS アップグレードのための AlwaysOn 可用性グループのクラスター間での移行」を参照してください。
SQL Server フェールオーバー クラスター インスタンス (FCI) と可用性グループ
WSFC クラスターと共にSQL Serverフェールオーバー クラスタリングを実装することで、サーバー インスタンス レベルで 2 番目のフェールオーバー レイヤーを設定できます。 可用性レプリカは、 SQL Server のスタンドアロン インスタンスまたは FCI インスタンスでホストできます。 特定の可用性グループのレプリカをホストできる FCI パートナーは 1 つに限られます。 可用性レプリカが FCI で実行されている場合、可用性グループの有効な所有者の一覧には、アクティブな FCI ノードだけが含まれます。
Always On可用性グループは、どの形式の共有ストレージにも依存しません。 ただし、 SQL Server フェールオーバー クラスター インスタンス (FCI) を使用して 1 つまたは複数の可用性レプリカをホストする場合、各 FCI では標準の SQL Server フェールオーバー クラスター インスタンスのインストールと同様、共有ストレージが必要になります。
追加の前提条件の詳細については、「AlwaysOn 可用性グループの前提条件、制限事項、および推奨事項 (SQL Server)」の「SQL Server フェールオーバー クラスター インスタンス (FCI) を使用して可用性レプリカをホストするための前提条件と制限事項」セクションを参照してください。
フェールオーバー クラスター インスタンスと可用性グループの比較
FCI のノードの数に関係なく、FCI 全体は可用性グループ内の 1 つのレプリカをホストします。 次の表に、FCI 内のノードと可用性グループ内のレプリカの概念の違いについて説明します。
FCI 内のノード | 可用性グループ内のレプリカ | |
---|---|---|
WSFC クラスターを使用する | はい | はい |
保護レベル | インスタンス | データベース |
ストレージの種類 | Shared | 非共有 可用性グループ内のレプリカがストレージを共有しない一方、FCI によってホストされるレプリカは、FCI によって必要とされたときに共有ストレージ ソリューションを使用することに注意してください。 ストレージ ソリューションは、可用性グループのレプリカ間ではなく、FCI 内のノードでのみ共有されます。 |
ストレージ ソリューション | 直接接続、SAN、マウント ポイント、SMB | ノードの種類によって異なる |
読み取り可能なセカンダリ | いいえ* | はい |
該当するフェールオーバー ポリシー設定 | WSFC クォーラム FCI 固有 可用性グループ設定** |
WSFC クォーラム 可用性グループの設定 |
フェールオーバー リソース | サーバー、インスタンス、およびデータベース | データベースのみ |
*可用性グループ内の同期セカンダリ レプリカは、常に対応する SQL Server インスタンス上で実行されていますが、FCI 内のセカンダリ ノードは、実際には対応する SQL Server インスタンスを起動していないため、読み取り不可能です。 FCI 内のセカンダリ ノードは、FCI フェールオーバー中にリソース グループの所有権が転送されたときにのみ、 SQL Server インスタンスを起動します。 ただし、アクティブな FCI ノードにおいて、FCI によってホストされるデータベースが可用性グループに属している場合にローカルな可用性グループが読み取り可能なセカンダリ レプリカとして実行されていると、データベースは読み取り可能です。
**可用性グループのフェールオーバー ポリシー設定は、スタンドアロン インスタンスと FCI インスタンスのどちらでホストされているかに関係なく、すべてのレプリカに適用されます。
Note
SQL Serverの各エディションのフェールオーバー クラスタリングと AlwaysOn 可用性グループ内のノード数の詳細については、「SQL Server 2012 の各エディションでサポートされる機能 (https://go.microsoft.com/fwlink/?linkid=232473)」を参照してください。
FCI で可用性レプリカをホストする場合の考慮事項
重要
SQL Server フェールオーバー クラスター インスタンス (FCI) で可用性レプリカをホストすることを計画している場合は、Windows Server 2008 ホスト ノードが AlwaysOn の前提条件およびフェールオーバー クラスター インスタンス (FCI) の制限を満たしていることを確認してください。 詳細については、「AlwaysOn 可用性グループの前提条件、制限事項、および推奨事項 (SQL Server)」を参照してください。
SQL Server フェールオーバー クラスター インスタンス (FCI) は可用性グループによる自動フェールオーバーをサポートしないため、FCI によってホストされる可用性レプリカは手動フェールオーバー用にのみ構成できます。
場合により、すべてのノードで使用できない共有ディスクを含めるように Windows Server フェールオーバー クラスタリング (WSFC) クラスターを構成する必要があります。 たとえば、3 つのノードを持つ 2 つのデータ センター間の WSFC クラスターを検討します。 ノードのうちの 2 つは、プライマリ データ センター内の SQL Server フェールオーバー クラスタリング インスタンス (FCI) をホストし、同じ共有ディスクにアクセスできます。 3 つ目のノードは、別のデータ センター内の SQL Server のスタンドアロン インスタンスをホストし、プライマリ データ センターの共有ディスクにはアクセスできません。 この WSFC クラスター構成では、FCI でプライマリ レプリカがホストされ、スタンドアロン インスタンスでセカンダリ レプリカがホストされる場合に可用性グループの配置がサポートされます。
特定の可用性グループの可用性レプリカをホストするために FCI を選択する場合は、FCI フェールオーバーによって 1 つの WSFC ノードで同じ可用性グループの 2 つの可用性レプリカをホストする操作が試行されないように注意してください。
この構成によってどのような問題が起きるかを次のサンプル シナリオに示します。
Marcel は、 NODE01
と NODE02
の 2 つのノードから成る WSFC クラスターを構成しています。 SQL Server フェールオーバー クラスター インスタンス fciInstance1
は、 NODE01
と NODE02
の両方にインストールされています。 NODE01
の現在の所有者は fciInstance1
です。
Marcel は、 NODE02
に、別の SQL Serverインスタンス Instance3
をインストールすることにしました。Instance3 はスタンドアロン インスタンスです。
ではNODE01
、マルセルはAlways On可用性グループに対して fciInstance1 を有効にします。 ではNODE02
、Always On可用性グループを有効にしますInstance3
。 さらに、可用性グループをセットアップしました。この可用性グループは、 fciInstance1
がプライマリ レプリカをホストするためだけでなく、 Instance3
がセカンダリ レプリカをホストするためにも使用されます。
あるとき、 fciInstance1
上の NODE01
が利用できなくなり、WSFC クラスターによって、 fciInstance1
が NODE02
にフェールオーバーされたとします。 フェールオーバー後、 fciInstance1
は、 のプライマリ ロールNODE02
の下で実行されているAlways On可用性グループ対応インスタンスです。 しかし、この時点で Instance3
は、 fciInstance1
と同じ WSFC ノードに存在します。 これは、Always On可用性グループの制約に違反します。
このシナリオで起きる問題を回避するには、スタンドアロン インスタンス ( Instance3
) が、 NODE01
や NODE02
と同じ WSFC クラスター内の別のノードに存在している必要があります。
フェールオーバー クラスタリングSQL Server詳細については、「AlwaysOn フェールオーバー クラスター インスタンス (SQL Server)」を参照してください。
WSFC フェールオーバー クラスター マネージャーを使用した可用性グループの操作に関する制限事項
フェールオーバー クラスター マネージャーを使用して可用性グループを操作しないでください。次に例を示します。
可用性グループのクラスター化されたサービス (リソース グループ) のリソースの追加や削除を行わないでください。
可用性グループのプロパティ (たとえば、有効な所有者、優先所有者) を変更しないでください。 これらのプロパティは、可用性グループによって自動的に設定されます。
フェールオーバー クラスター マネージャーを使用して可用性グループを他のノードに移動したり可用性グループをフェールオーバーしたりしないでください。 フェールオーバー クラスターは可用性レプリカの同期状態を認識しないため、そのような操作を行うとダウンタイムが長くなることがあります。 Transact-SQL または SQL Server Management Studio を使用する必要があります。
関連コンテンツ
ブログ:
制限付きセキュリティを使用した SQL Server 用 Windows フェールオーバー クラスタリング (可用性グループまたは FCI) の構成
SQL Server AlwaysOn チームのブログ:SQL Server AlwaysOn チームのオフィシャル ブログ
ホワイト ペーパー:
AlwaysOn アーキテクチャ ガイド: フェールオーバー クラスター インスタンスと可用性グループの使用による高可用性および災害復旧ソリューションの構築
高可用性と災害復旧のための Microsoft SQL Server AlwaysOn ソリューション ガイド
参照
AlwaysOn 可用性グループの概要 (SQL Server)AlwaysOn 可用性グループの有効化と無効化 (SQL Server)可用性グループの監視 (Transact-SQL)
AlwaysOn フェールオーバー クラスター インスタンス (SQL Server)