sql >> データベース >  >> RDS >> Database

AlwaysOn可用性グループ:クォーラム

    SQL Server AlwaysOn可用性グループは、SQLServerを使用する組織の高可用性と障害復旧のニーズに対応するためのMicrosoftの最新テクノロジです。 AlwaysOnの大きな利点の1つは、1つの実装でHAとDRの両方に対応できることです。私たちが経験したAlwaysOnの主な利点は次のとおりです。

    1. 関連するデータベースを単一の可用性グループの一部としてグループ化し、そのような必要がある場合にそれらを一緒にフェイルオーバーさせることができます。これは、Microsoft Office SharePoint、Microsoft Lync、Sageなどの複数のデータベースに依存するアプリケーションで特に役立ちます。

    2. SQL Serverフェールオーバークラスターインスタンスと比較すると、レプリカを構成する各インスタンスに独自のストレージが割り当てられているため、単一障害点としてのストレージが排除されていることがわかります。

    3. AlwaysOnを使用すると、HAとDRを一度に構成できます。これは、AlwaysOn構成の基礎としてマルチサイトWindowsフェールオーバークラスターを作成することで実現されます。 AlwaysOnを使用する場合の役割の切り替えの実行は、トランザクションログ配布を使用する場合の実行よりもはるかに簡単です。

    WSFCの依存関係

    SQL Server AlwaysOn AGを使用して高可用性と障害復旧を行う場合は、最初にWindowsフェールオーバークラスターを構成する必要があります。 AlwaysOn AGは、可用性グループ名、ファイル共有名、リスナー名、IPアドレスなどのクラスターリソースで構成される役割としてAlwaysOnAGを管理するためにWFCSに依存しています。

    図。 1クラスターリソースとしてのAlwaysOnAG

    クォーラム

    クォーラムは、フェールオーバークラスターの過半数に必要な最小投票数です。クォーラムは、クラスターが維持できるノード障害の数を決定します。ポート3343のプライベートネットワークを介して、すべてのクラスターノードがヘルスステータスとリソース監視情報を通信します。失敗した場合、投票により、どのノードが「稼働中」のステータスになり、どのノードのリソースをオンラインにする必要があるかが示されます。

    Windows Server 2012以降、サポートされるクラスターノードの最大数は16です。ただし、私が精通しているほとんどの環境では、2ノードクラスターが一般的です。 2ノードクラスタは、各ノードに1つの投票があるため、クォーラムの達成に関して小さな問題を引き起こします。2つのノード間の通信に問題がある場合、それぞれが他方が正常でないと見なす可能性があります。これはスプリットブレインシナリオと呼ばれます。スプリットブレインシナリオは、ディスクやファイル共有などのタイブレーカーを構成する理由です。

    ノードの数が奇数の場合、タイブレーカーを構成する必要はありません。動的クォーラム構成と動的監視は、それぞれWindowsServer2012とWindowsServer2012R2で導入されました。これらのテクノロジの助けを借りて、Windowsはクラスター内の投票を自動的に再配布するため、クォーラムを確立する際にクラスター内のノードの数は重要ではありません。クラスタプロパティ「NodeWeight」を0に設定すると、クラスタノードの投票が削除されます。これらの機能はデフォルトで有効になっています。

    図。 2PowerShellを使用してすべてのクラスタープロパティを取得する

    図。 2ノードクラスターで割り当てられた3票

    PowerShellの使用

    PowerShellコマンドのGet-Clusterを使用して、Windowsクラスターのクォーラム構成を確認できます。図4は、クラスター上のクォーラムに関連するすべてのクラスタープロパティを確認する方法を示し、図5は、ファイル共有監視のプロパティを示しています。 Windowsクラスターをチェックおよび管理するPowerShellコマンドは他にもたくさんあります。

    Get-Cluster | Format-List –Property *Quorum*

    図。 4クォーラム関連のプロパティを確認するPowerShellコマンド

    Get-ClusterResource
    Get-ClusterResource -Name "File Share Witness" | Get-ClusterParameter

    図。 5ファイル共有監視プロパティの詳細を確認するPowerShellコマンド

    クォーラムモード

    Windows Serverフェールオーバークラスターでは、最大4つのモードを構成できます。クォーラムモードは基本的に、クラスターがノード障害を処理する方法を決定するために選択するオプションです。

    1。ノードマジョリティ

    このクォーラムモードは、最大(n / 2)-1ノードの障害に耐えることができます。ノード数が奇数のクラスターに推奨されます。たとえば、5ノードのクラスターでは、2つのノードに障害が発生してクラスター障害が発生します。

    2。ノードとディスクの大部分

    ディスク監視(クォーラムディスクとも呼ばれる)がオンラインである限り、クラスターノードの数の最大半分の障害に耐えることができます。

    3。ノードとファイル共有の大部分

    このクォーラムモードは、ファイル共有にアクセスできる限り、クラスターノードの数の最大半分の障害に耐えることができます。 Windows Server 2012 R2の時点で、Microsoftは、クラスターを構築するときに常に監視(ディスクまたはファイル共有)を構成することをお勧めします。

    4。過半数なし

    これはディスクのみのモードです。このモードは、ディスクがオンラインである限り、1つを除くすべてのノードの障害に耐えることができます。ディスクが単一障害点になるため、このモードはお勧めしません。

    ノードとファイル共有の大部分を構成するためのヒント

    AlwaysOn可用性グループは、これらのクォーラムモードのうち、ノードマジョリティとノードおよびファイル共有マジョリティの2つのみをサポートします。 SQL Server AlwaysOn可用性グループクラスターを構築する場合、DBAが留意すべき点がいくつかあります。

    1。物理サーバーの使用

    AlwaysOn用に2ノードクラスターを構成する場合、ノードは異なる物理ラックに存在する必要があります。ファイル共有をホストするサーバーは、3番目のラックに存在する必要があります。

    2。仮想サーバーの使用

    AlwaysOn用に2ノードクラスターを構成する場合、仮想マシンは別々のホストに存在する必要があります。ファイル共有をホストする仮想マシンは、3番目のホストに存在する必要があります。

    3。マルチサイトクラスタリング

    データセンター間でAlwaysOnのマルチノードクラスターを構成する場合、理想的なシナリオでは、ファイル共有をホストするファイルサーバーは3番目のデータセンターに存在する必要があります。

    4。ファイル共有のアクセス許可

    クラスター名オブジェクトには、クォーラムウィットネスとして使用されるファイル共有に対するアクセス許可が必要です。これがないと、通常、クォーラムウィットネスを構成しようとするとエラーが発生します。

    図。 6ファイル共有の権限

    5。オンライン構成

    クォーラムモードは、クラスターがオンラインのときに構成できます。したがって、ファイル共有サーバーに障害が発生した場合、または再構成が必要な場合は、特に2ノードクラスターで予期しない障害が発生しないように、すばやく再構成してください。

    実際のユースケース

    図7の図は、実際のマルチサイトAlwaysOnAGクラスターを示しています。これは、1つのサイトに2つのノードがあり、リモートDRサイトに他の2つのノードがある4ノードのクラスターです。タイブレーカーとして使用されるファイル共有をホストするファイルサーバーは、3番目のデータセンターでホストされます。この場合、ファイルサーバーはプライマリデータセンターと同じ都市にありますが、余裕があれば、ファイルサーバーを別の都市に置くことが理想的です。誤検知を避けるために、3者間のコミュニケーションは質の高いものでなければなりません。

    たとえば、このクラスターの最初の実装では、ライブサイトとDRサイトで「自動フェイルオーバーを使用した同期レプリケーション」を使用しました。何度か通信の不具合が発生し、DRサイトへの自動フェイルオーバーがトリガーされ、構成の欠陥が明らかになりました。これにより、リスナー名がDRサイト内の関連付けられたIPアドレスに解決され、この新しいIPアドレスとの通信がネットワークファイアウォールで許可されなかったため、クライアントは接続できなくなりました。問題を軽減するためにプライマリサイトにフェイルバックし、データセンター全体に存在するノードの構成を「手動フェイルオーバーを使用した非同期レプリケーション」に変更しました。次の「AlwaysOn」の記事で名前解決の側面について説明する予定です。

    図。 7実際のユースケース

    結論

    AlwaysOn可用性グループ機能はSQLServer2012で導入され、高可用性とディザスタリカバリの両方のニーズに対応するためのMicrosoftの最新テクノロジです。 AlwaysOn可用性グループの構成は、Windowsフェールオーバークラスターサービスに大きく依存します。次に、フェールオーバークラスターは、正しいクォーラム構成に大きく依存します。マルチサイトクラスターでAlwaysOnを構築する場合、異なるサイトのノード間のレイテンシーとアービターとして使用されるファイル共有が非常に重要です。可用性グループでの予期しない動作を回避するために、クォーラム構成が常に最高の状態であることを確認してください。

    参照
    1. AlwaysOn可用性グループの概要

    2. SQLServerを使用したWindowsフェールオーバークラスタリング

    3. PowerShellドキュメント

    4. WindowsServerフェールオーバークラスタークォーラムについて


    1. 動的列の行への転置

    2. MariaDB BENCHMARK()の説明

    3. sql地理からdbgeographyへ?

    4. 結合されたテーブル列の個別の合計を取得します