クラスター環境での認証情報不一致によるOS復旧作業

Last Update: feedback 共有

※ 本記事は弊社の Technet から移行した記事です。
いつも弊社製品をご利用いただきまして誠にありがとうございます。日本マイクロソフトの Windows サポートチームです。

今回のブログでは、クラスター環境でノードとドメイン コントローラー (DC) が持つ認証の情報が合わなくなってしまった場合に、OS として復旧が必要な作業についてご紹介します。

このような状態が発生するのは、チェックポイント (旧スナップショット) の適用や過去に取得したバックアップからリストアなど、クラスター ノードや DC が過去もしくは別の時刻の状態になるような操作を行った場合あるいはノードをしばらくシャットダウンしていた場合などです。

また、今回対象とするのは、ドメインの変更を伴わない作業です。バックアップを取得した環境と、リストアをした環境が別のドメイン環境である場合は、この作業ではクラスターを正常稼働させることができません。Windows Server 2008 以降のクラスターのドメインの移動は残念ながらマイクロソフトではサポートしておりません。

How to move a Windows Server cluster from one domain to another

Because of an increased dependence on Active Directory Domain Services, Microsoft does not support moving an already installed and configured Windows Server 2008, Windows Server 2008 R2 and Windows Server 2012 failover cluster from one domain to another.  

クラスターが稼働するためには、クラスターを構成するノードが Active Directory (AD) ドメインに所属することが前提となります。クラスター ノードとクラスター ノードが所属するドメインのドメイン コントローラー (DC) が長期間通信できていないような状態になった場合、その間にパスワードの変更期限超過してしまうことにより、ノードと DC の間のパスワードなどの認証情報をもつセキュア チャネルに破損が生じることがあります。

クラスター環境の場合、このような破損が起こりうるセキュア チャネルとは、以下の 2 箇所が該当します。

  1. クラスター ノード自身の DC とのセキュア チャネル
  2. クラスターの名前を表すクラスター名オブジェクト (CNO) のコンピューター アカウントの DC とのセキュア チャネル

1 については一般的な AD 環境とのセキュア チャネルが破損した場合の復旧手順と同様です。詳細については以下の公開情報を御覧ください。

Azure Windows VM で失敗した信頼関係のトラブルシューティング

ドメインへの再参加でノード自身のセキュア チャネルの破損がクラスターに参加する全ノードで解消されたのち、2 の CNO のセキュア チャネルの破損の解消を実施します。
この事象が発生しているかどうかは、フェールオーバー クラスター マネージャーの画面から、[クラスター コア リソース] の CNO の状態から確認できます。クラスター コア リソースのクラスター名の [名前: <クラスター名>] が “オフライン” もしくは “失敗” 状態になっている場合、CNO のセキュア チャネルが破損している可能性があります。

また、その場合、以下のような イベント ログが記録されている場合もございます。

エラー,Microsoft-Windows-Security-Kerberos,4,なし,Kerberos クライアントはサーバー xxxxx から KRB_AP_ERR_MODIFIED エラーを受信しました。使用したターゲット名は xxxxx でした。これは、ターゲット サーバーがクライアントにより提供されたチケットの暗号化に失敗したことを示します。これは、ターゲット サーバーのプリンシパル名  (SPN) が、ターゲット サービスにより使用されているアカウントとは別のアカウントで登録されている場合に発生します。ターゲット SPN をサーバーにより使用されているアカウントで登録したうえで、その他のアカウントでは登録しないようにしてください。このエラーは、ターゲット サービスが使用しているターゲット サービス アカウントのパスワードが、Kerberos キー配布センター (KDC) の持っているターゲット サービス アカウントのパスワードと異なる場合にも発生します。サーバー上のサービスと KDC の両方が最新のパスワードを使用するように更新されていることを確認してください。ターゲット ドメイン (xxxxx) がクライアント ドメイン (xxxxx) と異なっており、サーバー名が完全修飾名になっていない場合は、これら 2 つのドメイン内に同じ名前を与えられたサーバー アカウントがないかをチェックするか、またはサーバーの指定に完全修飾名を使用してください。  

AD 環境にて管理される CNO のコンピューター オブジェクトの認証に必要なパスワード情報は、通常のアカウントと同様、2 世代保存されております。
コンピューター アカウントのパスワードの更新間隔はグループ ポリシーでの設定値に依存しますが、クラスターが利用するオブジェクトについては、更新が完了する確度をあげるため、その 75 % で更新されるという動作となっております。この動作は AD 環境のバージョンには依存しません。
グループ ポリシーは DefaultDomainPolicy では未定義が規定であり、その場合ローカル ポリシーの値が反映されますが、その既定値は 30 日と定義されているため、CNO ではその 75 % の 22 日が更新間隔の規定値になります。

よって、この更新をまたぐタイミングの時刻のずれが発生すると、セキュア チャネルの破損が発生します。その場合、クラスターから [Active Directory オブジェクトの修復] という作業が必要になります。手順については、後述いたします。

この作業は、セキュア チャネルが破損していない状態で実施いただいても、問題はございません。よって、クラスター コア リソースのクラスター名がオンラインにならない場合は、当作業をお試しいただくことが有効な方法のひとつとなります。

========================================================================  
[Active Directory オブジェクトの修復] の手順  
   (クラスターに参加するノード 1 台から実施)  
========================================================================  
1. [フェールオーバー クラスター マネージャー] 画面を開きます。  

2. 左ペインからツリーを展開し、クラスター名を選択します。  

3. 中央のペインから [クラスター コア リソース] を展開、表示します。  

4. クラスター名リソースの現在の状態が "オフライン" もしくは "失敗" 状態になっていることを確認します。  
"オフライン" もしくは "失敗" 状態になっていない場合、クラスター名リソースの右クリック メニューから [その他のアクション] - [このリソースのエラーをシミュレーションする] を選択し、エラーを発生させます。  
   この操作を繰り返し実施し、クラスター名 リソースを “失敗” のステータスにします。  

5. クラスター名リソースに対して、右クリック メニューから [その他のアクション] - [Active Directory オブジェクトの修復] を選択します。  
    (Windows Server 2012 以降ではメニュー名が [他のアクション] - [修復]  に変更されております。)  
   修復が正常に行われた場合にはクラスター名リソースの状態が “オンライン” となります。  
========================================================================  

以上の手順にて、クラスター環境に時刻変化が起きたことによるセキュア チャネル破損に対する OS として必要な復旧作業は完了です。

クラスター環境にチェックポイントの適用、バックアップ&リストアをしたときや久しぶりにクラスター環境を起動したとき、クラスター コア リソースがオンラインにならない。そんなとき、本ブログが少しでも皆様のお役に立てば幸いです。