SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

WSFC のクラスターリソースとドメインコントローラーの冗長化の必要性についてのメモ

leave a comment

WSFC (Windows Server Failover Clustering) を使用するためには、Active Directory が必要となるため、ドメインコントローラーの準備が必要となります。

検証環境などではドメインコントローラーを冗長構成にしていなくても、検証は可能ですが実運用環境では冗長化されたドメインコントローラーの利用が強く推奨されます。

詳細については DC 停止時の WSFC への影響について が参考になります。
また フェールオーバー クラスター ステップ バイ ステップ ガイド: Active Directory のアカウントの構成 も確認をしておくとよいかと。

WSFC の操作をするためには、ドメインユーザーが必要となりますので、

  • 操作用のドメインユーザー

が必要となります。

WSFC のクラスターのリソースですが、基本的な構成としては、

  • クラスターコアリソース
  • アプリケーションで利用する用途のクラスターリソース

の 2 種類で構成が行われるかと思います。

クラスターコアリソースについては WSFC を構成するうえで必須となるリソースで、

  • CNO (クラスター名オブジェクト : Cluster Name Object)
  • IP アドレス
  • クラスタークォーラム

の 3 種類のリソースが含まれていることになるかと。

アプリケーションで利用する用途のクラスターリソースについては、

  • CAP (クライアントアクセスポイント : Client Access Point)
    • ネットワーク名
    • IP アドレス
  • アプリケーション用途のリソース (例 : AlwaysOn 可用性グループであれば、SQL Server Availability Group のリソース)

で構成が行われます。

この中でドメインコントローラーが必要となるのは、

  • 操作用のドメインユーザー
  • CNO (クラスター名オブジェクト : Cluster Name Object)
  • ネットワーク名

になってくるかと。

操作用のドメインユーザーについては操作をするために必要となるものですので、直接の影響はありません。

  • CNO (クラスター名オブジェクト : Cluster Name Object)
  • ネットワーク名

がドメインコントローラーが存在をしないことにより、大きく影響を受けるリソースとなるかと思います。
CNO / ネットワーク名については Active Directory 上に作成されているコンピューターアカウントでもありますので、単純な名前ではなく、AD のオブジェクトとなります。
ファイル共有監視を使用している場合、共有フォルダーへの接続は CNO のコンピューターアカウントで実行されますので、ドメインコントローラーにアクセスができない場合、共有フォルダーへのアクセスについても影響が出てくるため、クラスターの維持にも影響があります。

WSFC では、

  • LooksAlive (基本的なリソース正常性チェック)
  • IsAlive (完全なリソース正常性チェック)

の 2 種類の死活監視の仕組みを持っており、ネットワーク名については、

  • LooksAlive : 5,000 ミリ秒
  • IsAlive : 60,000 ミリ秒

で監視が行われます。

Windows Server 2003 の情報になりますが、Windows Server 2003 の Windows Server クラスタ コンポーネントに含まれるリソースに対する LooksAlive 関数と IsAlive 関数の動作 が監視の内容について参考になります。

ネットワーク名については、ドメインコントローラーが停止されている状態では、以下のように DNS と Kerberos 状態が書き換えることができず、これらの状態がエラーとなってしまいます。
image

ネットワーク名の名前解決は、一般的には AD の DNS が利用されているケースが多いので、ネットワーク名の名前解決についてもドメインコントローラーが停止している状態だと解決ができないことがあります。
# AlwaysOn 可用性グループの場合にはリスナーの名前い解決ができなくなっていることがあるかと。

 

また、アプリケーションによってはサービスをドメインユーザーで実行させる必要がある場合もありますので、これらについてもドメインコントローラーが存在していない環境だと正常に動作がしない可能性があります。
# キャッシュされている情報で動作してしまうこともありますが。

 

 

冒頭に紹介したリンクでは、以下のように記載されています。

弊社に頂くお問い合わせでは、クラスター上の操作、動作が無い場合として「(数時間の停止では)問題が無かった」、「DC を再起動したところ、フェールオーバーが発生した」などの事象が報告されており、実際には環境やタイミングによってその影響の有無があるようです。具体的なところではドメイン コントローラー停止中のフェールオーバー動作にてイベント 1207 が記録され、ネットワーク名リソースのオンラインに失敗するとの報告もありました。

Event ID 1207 – Active Directory Permissions for Cluster Accounts
http://technet.microsoft.com/en-us/library/cc773451(v=ws.10).aspx

いくつかの例を挙げましたが、結論としては動作要件を満たさない状況での正常動作については保証されないことになります。もしメンテナンス等で AD 内の DC が不在となるような場合には、安全策として事前にクラスターを停止することについてご検討をお願いします

 

ドメインコントローラーが存在しなくても、サービスの起動やフェールオーバーの実行が「できてしまう可能性がある」のが、実際のところだと思いますが、WSFC はドメインコントローラーのオブジェクトや認証の仕組みに大きく依存がしているところがあります。

ドメインコントローラーが存在していない状態でも、

  • 短時間であれば動作してしまう
  • フェールオーバーが実行できる

というような、実運用で必要となる動作ができてしまいますが、「確実に動作することは保証されず、クラスターが起動しないことがある」ということを認識しておく必要があります。

確実性が求められないのであれば、瞬間的にドメインコントローラーが存在していない状態にしてしまってもよいですが、確実性が求められるのであれば、ドメインコントローラーを冗長化しておくのは必須となってきます。

Written by masayuki.ozawa

1月 4th, 2015 at 5:03 pm

Posted in SQL Server

Tagged with

Leave a Reply

*