PowerScale:群集上的时间未与 Active Directory 同步
Summary: 群集上的时间未与 Active Directory 域控制器同步。
Symptoms
如果 Active Directory 时间与群集时间相差四分钟以上,客户端可能无法进行身份验证。加入 AD 域的群集必须与域控制器的时间非常匹配。节点时钟可能相差几秒或最多一分钟,但四分钟或更长时间的差异可能会导致以下症状:
- 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 中,时间同步以两种方式进行管理:
-
内部时间同步(在群集节点内)
- 外部时间同步(群集外部)
当群集加入 AD 域时,默认情况下,它使用 Server Messenger 块 (SMB) 进行外部时间同步,精确到秒。在内部,网络时间协议 (NTP) 以毫秒级精度管理时间同步。
为了防止在与 AD 域控制器同步时进行大量时间更正,请将控制器配置为使用 NTP 而不是 SMB,以实现更高的精度。重大调整可能会导致性能问题,例如 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 网站上的 Windows 时间服务工具和设置 页。
注意
如果其中一个 AD 域控制器无法访问,请确保有两个 AD 域控制器可用于冗余。时间必须遵循准确的层次结构,可以来自公共 NTP 服务器,也可以来自内部源(例如配备 GPS 的系统)。
验证 AD 域控制器是否支持 NTP,以及 NTP 是否未被防火墙或其他设置阻止:
-
在群集中的任意节点上打开 SSH 连接,并使用“root”帐户登录。
-
运行以下命令,其中
<ipaddr1>和<ipaddr2>是第一个和第二个 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]: adjust 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 文件是系统时钟的时钟漂移记录。系统在积累足够的数据后重新创建此文件。
-
在群集中的任意节点上打开 SSH 连接,然后使用“root”帐户登录。
-
根据您运行的 OneFS 版本,从命令行运行以下命令之一:
isi_for_array -sX “rm -fv /var/crash/ntp.drift”
将群集配置为使用 AD 域控制器作为 NTP 服务器:
-
打开 OneFS Web 管理界面,然后执行以下作之一:
-
在 OneFS 7.0 及更高版本中,单击Cluster ManagementGeneral > SettingsNTP>选项卡。
-
对于每个 AD 域控制器,在 服务器 IP 或主机名 框中输入 IP 地址,然后单击 添加。
-
单击 Submit。
或者,也可以从命令提示符完成此任务:
-
在群集中的任意节点上打开 SSH 连接,并使用“root”帐户登录。
-
运行以下命令,其中
<ipaddr1>和<ipaddr2>是第一个和第二个 AD 域控制器的 IP 地址:
isi_ntp_config添加服务器 <ipaddr1>
isi_ntp_config添加服务器 <ipaddr2>
注意
新的 NTP 设置可能需要 23 小时才能传播到群集中的所有节点。chimer 节点将其时间同步到 AD 域控制器,群集中的节点将其时间同步到 chimer 节点。