PowerScale:クラスター上の時刻がActive Directoryと同期されていません
Summary: クラスターの時刻がActive Directoryドメイン コントローラーと同期されていません。
Symptoms
Active Directoryの時刻とクラスターの時刻の誤差が4分を超えると、クライアントは認証に失敗する可能性があります。ADドメインに参加しているクラスターは、ドメイン コントローラーの時刻と厳密に一致している必要があります。ノード クロックは、秒単位または最大1分単位で異なる場合がありますが、4分以上の差があると、次の現象が発生する可能性があります。
- Windowsクライアントは、クラスターに対して認証を行うことができません。
- 時刻同期エラーに関するアラートが送信されます。
- 「
/var/log/messagesファイルには、次のようなエントリーが含まれています。
2014-04-07T04:15:01-03:00 <4.5> example-1(id1) lsass[60726]: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Clock skew too great) 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] Resetting schannel due to status STATUS_TIME_DIFFERENCE_AT_DC (0xc0000133) while authenticating user 'LAB\jdoe' 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] AD_NetrlogonOpenSchannel(dc1.example.com) failed with 3221225779 (0xc0000133) (symbol: 'STATUS_TIME_DIFFERENCE_AT_DC') 2014-04-07T07:41:28-03:00 <30.3> example-3(id3) lsass[59264]: [lsass] Network error connecting to EXAMPLE.COM. Error code: 40134 (symbol: LW_ERROR_RPC_ERROR) 2014-04-07T07:41:28-03:00 <30.5> example-3(id3) lsass[59264]: [lsass] Domain 'example.com' is now offline
Cause
OneFSでは、時刻同期は次の2つの方法で管理されます。
-
内部時刻同期(クラスター ノード内)
- 外部時刻同期(クラスターの外部)
クラスターがADドメインに参加すると、デフォルトでは、秒単位の正確な外部時刻同期にServer Messenger Block (SMB)が使用されます。内部的には、Network Time Protocol (NTP)がミリ秒単位の精度で時刻の同期を管理します。
ADドメイン コントローラーとの同期時に大幅な時間修正を回避するには、精度を高めるためにSMBではなくNTPを使用するようにコントローラーを構成します。大幅に調整すると、Kerberosチケットの有効期限が切れたように見えたり、認証エラーがトリガーされたりするなど、パフォーマンスの問題が発生する可能性があります。
Resolution
クラスターとドメイン間の時間のずれを確認します。
次のコマンドを実行して、ノードとドメイン コントローラーの日付と時刻を確認します。
# isi_for_array -s date
# isi_for_array -s /usr/likewise/bin/lw-get-dc-time <domain_name>
時刻同期が正しく設定されていることを確認します。
ADドメイン コントローラーを構成し、クラスターがADコントローラーと正しく同期されるようにするには、以下のすべての手順を実行します。
Active DirectoryサーバーでNTPを構成します。
Windows 2003 - 2012 Serverの場合は、NTPサーバーをポイントするようにNTPを構成します。詳細については、Microsoft TechNet Webサイトの 「Windows Time Sサービスのツールと設定 」ページを参照してください。
メモ
一方にアクセスできなくなった場合に備えて、冗長性を確保するために2つのADドメイン コントローラーが使用可能であることを確認します。時刻は、パブリックNTPサーバーまたはGPS搭載システムなどの内部ソースのいずれかから、正確な階層に従う必要があります。
ADドメイン コントローラーがNTPをサポートしていること、およびNTPがファイアウォールまたはその他の設定によってブロックされていないことを確認します。
-
クラスター内の任意のノードでSSH接続を開き、「root」アカウントを使用してログインします。
-
次のコマンドを実行します。ここで
<ipaddr1>と<ipaddr2>は、1 番目と 2 番目の AD ドメイン コントローラーの IP アドレスです。
ntpdate -q -u <ipaddr1>
ntpdate -q -u <ipaddr2>
ADドメイン コントローラーがNTPをサポートしている場合、各コマンドの出力は次のようになります。
server <ipaddr1>、stratum 1、offset 0.427215、delay 0.04138
11 May 15:45:46 ntpdate [79498]: time server <ipaddr1> offset 0.427215 sec の調整
ADドメイン コントローラーがNTPをサポートしていない場合、出力は次のようになります。その場合は、ドメイン管理者にサポートを依頼する必要があります。
B5-10-3: 11 May 15:49:40 ntpdate [79741]: 同期に適したサーバーが見つかりません
ADドメイン コントローラーの時刻と一致するようにクラスターの時刻を設定します。
- クラスター内の任意のノードでSSH接続を開き、「root」アカウントを使用してログインします。
- 次のコマンドを実行します。ここで、
<ippaddr1>は、クラスターと同期するADドメイン コントローラーのIPアドレスです。
isi_for_array -s "ntpdate -u -b <ipaddr1>"
出力は次のようになります。
例-1: 11 May 15:49:48 ntpdate [79756]:ステップタイムサーバー <ipaddr1> オフセット0.541754秒
例-2: 11 May 15:49:48 ntpdate [99580]:ステップタイムサーバー <ipaddr1> オフセット0.541843秒
例-3: 11 May 15:49:48 ntpdate [63251]:ステップタイムサーバー <ipaddr1> オフセット0.480573秒
ntp.driftファイルを削除します。
「 ntp.drift file は、システム クロックのクロック ドリフトの記録です。システムは、十分なデータを蓄積した後で、このファイルを再作成します。
-
クラスターの任意のノードでSSH接続を開き、「root」アカウントを使用してログオンします。
-
実行中のOneFSのバージョンに応じて、コマンド ラインから次のコマンドのいずれかを実行します。
isi_for_array-sX "rm -fv /var/crash/ntp.drift"
ADドメイン コントローラーをNTPサーバーとして使用するようにクラスターを構成します。
-
OneFS Web管理インターフェイスを開き、次のいずれかを実行します。
-
OneFS 7.0以降では、NTPタブのGeneral Settings>Cluster Management>クリックします。
-
各ADドメイン コントローラーについて、 Server IP or hostname ボックスにIPアドレスを入力し、 Addをクリックします。
-
[送信]をクリックします。
または、コマンド プロンプトから次のタスクを実行することもできます。
-
クラスター内の任意のノードでSSH接続を開き、「root」アカウントを使用してログインします。
-
次のコマンドを実行します。ここで、
<ipaddr1>と<ipaddr2>は、1 番目と 2 番目の AD ドメイン コントローラーの IP アドレスです。
サーバーを追加するisi_ntp_config <ipaddr1>
isi_ntp_configサーバー <ipaddr2を追加します>
メモ
新しいNTP設定がクラスター内のすべてのノードに反映されるまでに23時間かかる場合があります。チャイマー ノードは時刻をADドメイン コントローラーと同期し、クラスター内のノードは時刻をチャイマー ノードと同期します。