Avamar:对 Avamar “asktime” 和相关 NTP 问题进行故障处理

摘要: 此解决方案旨在提供有关 Avamar Server 所使用的网络时间协议 (NTP) 的使用和配置的更多信息。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

此解决方案旨在提供有关 Avamar 网格所使用的网络时间协议 (NTP) 的使用和配置的其他信息。

它还提供了在使用 NTP 配置期间出现的问题的更多详细信息和故障排除步骤 asktime 效用。

它涵盖了为节点添加或额外服务器(如网络数据管理协议 (NDMP) 加速器)配置 NTP 所需的步骤。

原因

Avamar 使用 NTP 在外部时间源和所有 Avamar Data Store (ADS) 节点之间保持时间同步。

ADS 软件捆绑包包含用于配置 NTP 的实用程序 asktime。这可以是设置过程的一部分,也可以根据需要手动完成。 

本文的目的是提供有关故障处理的其他信息和提示 asktime 以及与 NTP 相关的问题。

解决方案

提醒: 
  • 除非另有说明,否则本文中列出的所有命令都应以管理员身份从加载 ssh 密钥的 Avamar 应用工具节点运行。有关密钥的更多信息,请参阅 Avamar:如何登录到 Avamar Server 并加载各种密钥。
  • 为了简洁起见,本文中的一些输出被特意进行了修剪,特别是重复的输出 mapall 命令。
  • 例如,引用的任何名称和 IP 地址均仅供参考。这些应替换为特定于客户的详细信息。
 

部分 #1 - 基本 NTP 功能:

1.Avamar 中的 NTP 功能的基本示意图如下所示:
  • 所有节点(实用程序和存储)都应轮询一个或多个用户或公共 NTP 服务器。
  • 所有存储(数据)节点都应轮询相同的用户服务器。此外,存储节点轮询实用程序节点 (0.s) 和第一存储节点 (0.0)。
  • 实用程序节点以本地时间运行。所有存储节点均以 UTC 运行。

2.这里的意图是所有节点都可以独立维护时间。(在外部 NTP 服务器不可用的情况下,节点可以通过使用 0.s 和 0.0 继续保持同步。)

 

部分 #2 - 用于检查 NTP 功能的其他 UNIX 实用程序:

1.其他 UNIX 实用程序可用于验证在节点上运行的网络时间协议守护程序 (NTPD) 的状态,以维护系统时间。
  • service ntpd status/stop/start - 验证网络时间协议守护程序 (NTPD) 是否正在运行/根据需要停止和启动。
  • date - 显示当前系统日期和时间。
  • ntpdate - 用于轮询远程 NTP 服务器,并在需要时设置本地系统时钟。
  • ntpq - 用于查看当前 NTP 连接。  
 
 

部分 #3 - 用于检查 NTP 功能的其他 Avamar 实用程序:

通过使用 "check.dpn --preinstall --checktime“脚本,以便在所有或指定的节点上自动运行 NTPD, 以便验证一个或多个节点是否正确运行 NTPD 并选择了时间服务器。
安装程序和 GSAN 启动时,这是 NTPD 按要求工作的关键指标。

这些命令,尤其是与 mapall 命令应该足以调试大多数与 NTP 相关的错误。

 

部分 #4 - 对 NTP 问题进行故障排除:

1.NTP 问题通常会在执行新安装时立即发生,因为 timeserver 由客户提供的地址,或者由于防火墙或路由问题导致的地址。  

2.当(在正常工作一段时间后)对客户网络进行更改、NTP 服务器被删除等时,也会出现 NTP 问题。随着时间的推移,这开始影响 Avamar 网格。  

3.要最大程度地降低安装期间出现问题的风险,请使用 ntpdate 带有调试选项的程序 (-d验证一个或多个分配的时间服务器是否可用并处理请求。

有关完整的输出示例,请参阅附录 A

在下面的示例中,可以看到 Avamar 节点与时间服务器之间的握手。在此实例中,时间服务器报告 0.000006 秒的小偏移量:  

ntpdate -d 168.xxx.xx.x
offset 0.000006
29 Dec 15:47:15 ntpdate[10500]: adjust time server 168.xxx.xx.x offset 0.000006 sec 
 

将其与 timeserver 不可用。

ntpdate -d 168.xxx.xx.x
offset 0.000000
29 Dec 15:49:13 ntpdate[10699]: no server suitable for synchronization found 
 

在此示例中,时间服务器显然不可用,如果 asktime 是要针对这个运行的 timeserver 它永远不会被看到同步。 

在这种情况下,与客户合作,验证分配的地址是否正确,以及 NTP 端口 (UDP 123)未被防火墙阻止。

4.不要依赖简单的 ping 测试来验证 timeserver。NTP 未阻止的防火墙可能会阻止 ping,反之亦然。 Ntpdate 在使用 NTP 以验证连接时,实际上是 ping 的替代品。

5.所有节点都必须能够与外部时间服务器通信,这可以使用 Avamar 进行验证 mapall 命令:
(假设已安装 Avamar,并且 probe.xml 文件配置正确。)

mapall --all --user=root ntpdate -d 168.xxx.xx.x
 

6.查看输出,并根据上述示例验证所有节点是否可以与时间服务器通信。

如果所有节点都根据需要进行通信,则运行 ntpdate 不带”-d“标记来实际更新系统时间(假设 NTPD 尚未运行):

mapall --all --user=root ntpdate 168.xxx.xx.x
Using /usr/local/avamar/var/probe.xml
(0.s) ssh  -x  root@10.x.xxx.xxx 'ntpdate 168.xxx.xx.x'
29 Dec 17:40:41 ntpdate[23552]: adjust time server 168.xxx.xx.x offset 0.014792 sec
(0.0) ssh  -x  root@10.x.xxx.xxx 'ntpdate 168.xxx.xx.x'
30 Dec 01:40:42 ntpdate[18131]: adjust time server 168.xxx.xx.x offset 0.029407 sec
(0.1) ssh  -x  root@10.x.xxx.xxx 'ntpdate 168.xxx.xx.x'
30 Dec 01:40:43 ntpdate[16250]: adjust time server 168.xxx.xx.x offset 0.000689 sec
 

提醒:重新启动 NTPD 服务(service NTPD restart)调用 ntpdate 以执行类似的步骤。但是,当服务从 中重新启动时 asktime 没有直接的迹象表明 ntpdate 命令成功或失败。理想 asktime 应单独运行以验证连接是否良好。

 
 

部分 #5 - NTP 服务器选择:

客户站点上的 NTP 服务可能由网络团队管理,而备份 (Avamar) 更可能由服务器团队管理。 

服务器团队可能不知道 NTP 服务器、允许连接所需的任何防火墙更改,或更改请求要求等。

因此,请在安装之前进行计划,并确保客户事先知道需要什么。

如果没有明显的 NTP 服务器可用:
  • 许多路由器配置为运行 NTP,因此请尝试使用默认网关 IP。如果它响应,则确保它的时间正确无误!
  • 默认情况下,Windows Active Directory (AD) 服务器运行 NTP。但是,它们可以在虚拟机上运行,而虚拟机通常不可靠。如果 ntpdate 报告连接良好,但 NTPD 无法与目标建立良好的同步,请与客户一起查找良好的本地时间源。
  • 如果可以找到时间源,则在配置 Avamar 以使用它之前,请始终与客户确认它是否合适。
  • 尽可能尝试在本地园区内找到 NTP 服务器,以尽可能减少连接慢速或高延迟导致的问题。
  • 尽可能尝试使用多个 NTP 服务器。可用的服务器越多,NTP 就越好,可以更好地比较各种服务器并建立最准确的时间。

提醒:Avamar 可以在没有时间服务器的情况下工作:数据节点与 Avamar Utility Node 同步,但整个网格最终会在一段时间内发生漂移。

提醒: check.dpn (因此安装和 GSAN startup) 如果选择的 Time Served 少于三次,则发出警告。这只是警告而不是错误,但请尽可能尝试配置多个服务器。

 
 

部分 #6 - 进一步的故障排除:

偶尔,尽管 ntpdate 最初显示良好 timeserver 握手,NTPD 始终无法使用 timeserver 作为权威的时间源。这可以通过以下命令的输出来验证: ntpq (详情如下):

通常,输出 ntpdate 可用于向客户演示这一点,例如:
  • 重新运行 "ntpdate -d <timeserver>" 显示一个波动的偏移值,指示提供的时间不一致(请参阅之前有关在虚拟机 (VM) 上运行的 NTP 的注释)或高网络延迟导致问题。
  • Running ntpdate 针对几个不同的 NTP 服务器始终显示它们报告的时间不同;这可能只有几秒钟的时间,但足以使 NTPD 拒绝两个服务器作为有效候选服务器。
  • 确定良好的本地 timeservers.如果在构建期间发生这种情况并影响计划,请考虑在没有任何时间服务器的情况下构建(系统将恢复到实用程序节点作为时间源),并在以后使用以下命令重新配置时间服务器: asktime 一旦可以正确验证它们。     
 

第 #7 节 - 使用 ntpq 要检查当前 NTPD 状态,请执行以下作:

提醒: 完整解释 ntpq 输出数据不在本文的讨论范围之内,但可以在此处引用:http://doc.ntp.org (external link)

ntpq 实用程序可用于查看当前 NTPD 配置和时钟选择一次 asktime 已手动或作为构建过程的一部分运行。  

典型输出如下所示:  

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+d-host.company.com 168.xxx.xx.xx    3 u   59   64  377   78.917   -6.205   8.690
+e-host.company.com 168.xxx.xx.xx    3 u   54   64  377   77.521   -4.340   8.744
+f-host.company.com 168.xxx.xx.xx    3 u   58   64  377   78.063   -1.381  10.317
+g-host.company.com 168.xxx.xx.xx    3 u   49   64  377   77.723   -6.972   8.570
*h-host.company.com 128.xx.xx.xx     2 u   49   64  377   77.003   -7.736   8.511
+i-host.company.com 130.xxx.xxx.xxx  2 u   42   64  377   78.341   -1.701   9.984
 j-host.company.com .INIT.          16 u    -  256    0    0.000    0.000 4000.00
 LOCAL(0)        LOCAL(0)         8 l   51   64  377    0.000    0.000   0.001

如果 ntpq 最初响应缓慢,这可能是因为它尝试根据配置错误的域名系统 (DNS) 配置解析时间服务器的名称。 

如果是这样,请运行 ntpq 使用 -n 标志以跳过名称查找。但是,也请尝试确定 DNS 无法解析名称的原因并相应地进行修复:  

ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+128.xxx.xx.xx   168.xxx.xx.xx    3 u   63   64  377   78.917   -6.205   8.690
+128.xxx.xx.xx   168.xxx.xx.xx    3 u   58   64  377   77.521   -4.340   8.744
+10.xxx.xxx.xx   168.xxx.xx.x     3 u   62   64  377   78.063   -1.381  10.317
+10.xxx.xxx.xx   168.xxx.xx.xx    3 u   53   64  377   77.723   -6.972   8.570
*168.xxx.xx.x    128.xx.xx.xx     2 u   53   64  377   77.003   -7.736   8.511
+168.xxx.xx.xx   130.xxx.xxx.xxx  2 u   46   64  377   78.341   -1.701   9.984
 168.xxx.xx.x    .INIT.          16 u    -  256    0    0.000    0.000 4000.00
 127.xxx.x.x     LOCAL(0)         8 l   55   64  377    0.000    0.000   0.001
 

关于 ntpq 但是,输出超出了本文档的范围 ntpq,其他 NTP 程序在 http://doc.ntp.org外部链接)中有很好的记录。 

Avamar 正常工作的关键是选择时间良好的服务器,这由最左侧列中的星号表示。This is i-host.company.com 或上述示例中的 168.xxx.xx.x。

上一个示例适用于实用程序节点。以下示例显示了一个存储节点,该节点也尝试使用实用程序节点 (0.s) 和第一个存储节点 (0.0) 作为时间源:  

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+d-host.company.com 168.xxx.xx.xx    3 u   36  128  377   78.403   15.627  26.941
+e-host.company.com 168.xxx.xx.xx    3 u   82  128  377   77.740   10.448  23.707
+f-host.company.com 168.xxx.xx.x     3 u   89  128  377   77.982  -16.786  18.895
+g-host.company.com 168.xxx.xx.xx    3 u   40  128  377   78.565    3.230  16.925
+h-host.company.com 10.xxx.x.xx      2 u   96  128  377   78.082    0.369  17.982
*i-host.company.com 128.xx.xx.xx     2 u   35  128  377   77.954   16.410  26.429
 j-host.company.com .INIT.          16 u    -  256    0    0.000    0.000 4000.00
+utility.company.com 168.xxx.xx.x    3 u   34  128  377    0.226   -1.589  15.290
+sn1.company.com  168.xxx.xx.xx    3 u   97  128  377    0.214   -6.072  31.263
 
从此输出中:  
      • 无法在此配置中预先确定选择哪个时间服务器作为权威时间源(如 ntpq -p 左列中的输出)。主要目标是确保所有定义的时间服务器均已正确选择且可用。ntpd 服务负责决定要使用哪些时间服务器。
      • j-host.company.com 不处理时间请求。这从左列中没有字符以及各种其他状态处于启动默认值中可以看出;从未建立连接以开始时间调整过程。这是使用 进行测试时 ntpdate 有助于事先确定。
      • 在实用程序节点 (utility.company.com) 和存储节点 0.0 (sn.company.com) 也存在于有效服务器列表中,如前所述。  

提醒: 实用程序 (0.s) 和第一个存储 (0.0) 节点在完全稳定之前不会提供时间请求,因此这些服务器可能会被标记为 INIT 在初始配置后的一段时间内,因为它们不会响应请求,直到它们本身正确同步。

 

部分 #8 - 在其他节点上配置时间:

节点添加: 

在过程生成器的“容量升级过程”部分详细记录了在要添加到网格的其他存储节点上配置时间服务。 

 其他节点(加速器等):

必须在其他节点(如加速器)上正确配置时间,以便正确记录备份时间戳。这是一个手动过程:

一个。以 root 用户身份,复制 /etc/ntp.conf 从现有存储节点(0.0 除外)到加速器。 

这为外部节点提供了 timeservers 和键(0.0 和 0.s)网格 timeservers.

b.以 root 用户身份,编辑 /etc/ntp.conf 在实用程序节点 (0.S) 和第一个存储节点 (0.0) 上。
(在 ntp.conf file 定义 NTP 的运行时参数。)  

必须将新节点 IP 添加到节点 0.s 和 0.0 上的访问控制列表中,以允许它们响应来自加速器的请求:   

# - - - - -
# Inpidual DPN node restrictions - they can listen, but they can't
# change us, except as above.
#
restrict 10.x.xxx.xxx    nomodify
restrict 10.x.xxx.xxx    nomodify
restrict 10.x.xxx.xxx    nomodify
restrict <Accelerator server IP>    nomodify 
 

c.c. 添加加速器节点后,在实用程序节点 (0.s) 和节点 0.0 上重新启动 ntpd 服务,以便重新读取配置文件:  

mapall --nodes=0.0,0.s --user=root service ntpd restart 
 

d.d. 在新节点上,以 root 用户身份,将服务配置更改为在启动时自动运行 ntpd:  

chkconfig --level 35 ntpd on 
 

e.在新节点上启动 ntpd:

service ntpd start
ntpd: Synchronizing with time server:           [  OK  ]
Starting ntpd:                                  [  OK  ] 
 

f.加速器节点采用本地时间报告。时区由文件控制 /etc/localtime。这是被修改的内容 asktime 设置时区时。设置它的最简单方法是直接从实用程序节点复制它:

scp /etc/localtime root@accelerator:/etc/localtime
 

g.在新加速器节点上使用 date 命令验证报告的时间和时区是否正确。

 

部分 #9 - 正常作期间的时间同步问题:

NTP 非常可靠,除非网络配置发生更改、时间服务器 IP 被修改等。 

当 Avamar 将其节点同步到应用工具和第一个存储节点(0.0 和 0.s)时,可以进行更改,并且在一段时间内不会真正成为问题。

如果节点配置错误,它们可能无法与实用程序节点或第一个存储节点同步,最终将与其他数据节点不同步。

网格 (GSAN) 检查在每个维护活动启动期间时间同步是否适当。如果任何节点之间的时间差异超过两秒,则活动会失败。一个或多个节点上的err.log文件中可能会显示类似于以下内容的消息:  

2010/12/30-02:23:10.57646 {0.3} [cpman:3411]  WARN: <0980> samconn::dpntimecheck retrying dpn time check mytime=1293675790
2010/12/30-02:23:10.57712 {0.3} [cpman:3411]  WARN: <0980> samconn::dpntimecheck retrying dpn time check mytime=1293675790
2010/12/30-02:23:10.57782 {0.3} [cpman:3411]  ERROR: <0001> samconn::dpntimecheck time mismatch: synchronize clocks and retry
 

或者这个从 status.dpn

Checkpoint failed with result MSG_ERR_BADTIMESYNC : cp.20101229150030 started Wed Dec 29 07:00:30
 

要解决此问题,请查看 ntpq 如上所述的输出,以确定哪些节点无法同步以及原因。与客户合作,查看最近是否发生了导致此问题的网络更改。

一个常见原因是 asktime 运行不正确,因为只选择了新节点进行修改; asktime 正确配置这些节点,但不更新 ntp.conf 0.s 和 0.0 上的访问控制列表,以添加新节点的 IP。此外,它不会在重新读取 ntp.conf 文件中定义。这反过来又意味着新节点永远不会与网格同步时间。 

如果指定了外部时间服务器,则它们应与该服务器同步时间(网格也应如此),以便网格和新节点都显示为具有权威时间服务器。但是,其他节点无法同步到 0.0 和 0.s,因此如果外部时间服务器变得不可用,那么它们最终会不同步并失败。

其他信息

补充说明: 
 
 

附录 A: 

以下项的输出示例: ntpdate 显示良好响应的命令:

ntpdate -d 168.xxx.xx.x
29 Dec 15:47:14 ntpdate[10500]: ntpdate 4.2.0a@1.1190-r Thu Oct  5 04:11:33 EDT 2006 (1)
Looking for host 168.xxx.xx.x and service ntp
host found : h-host.company.com
transmit(168.xxx.xx.x)
receive(168.xxx.xx.x)
transmit(168.xxx.xx.x)
receive(168.xxx.xx.x)
transmit(168.xxx.xx.x)
receive(168.xxx.xx.x)
transmit(168.xxx.xx.x)
receive(168.xxx.xx.x)
transmit(168.xxx.xx.x)
server 168.xxx.xx.x, port 123
stratum 2, precision -17, leap 00, trust 000
refid [168.xxx.xx.x], delay 0.10268, dispersion 0.00024
transmitted 4, in filter 4
reference time:    d0c646c4.f9ac7000  Wed, Dec 29 2010 15:46:12.975
originate timestamp: d0c64702.fb7f0000  Wed, Dec 29 2010 15:47:14.982
transmit timestamp:  d0c64702.f192b7fe  Wed, Dec 29 2010 15:47:14.943
filter delay:  0.10661  0.10268  0.10274  0.10298
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.00184 0.000006 0.000053 -0.00000
         0.000000 0.000000 0.000000 0.000000
delay 0.10268, dispersion 0.00024
offset 0.000006
29 Dec 15:47:15 ntpdate[10500]: adjust time server 168.xxx.xx.x offset 0.000006 sec 
 

 

以下项的输出示例: ntpdate 命令显示较差 的响应:

ntpdate -d 168.xxx.xx.x
29 Dec 15:49:09 ntpdate[10699]: ntpdate 4.2.0a@1.1190-r Thu Oct  5 04:11:33 EDT 2006 (1)
Looking for host 168.xxx.xx.x and service ntp
host found : j-host.company.com
transmit(168.xxx.xx.x)
transmit(168.xxx.xx.x)
transmit(168.xxx.xx.x)
transmit(168.xxx.xx.x)
transmit(168.xxx.xx.x)
168.xxx.xx.x: Server dropped: no data
server 168.xxx.xx.x, port 123
stratum 0, precision 0, leap 00, trust 000
refid [168.xxx.xx.x], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Wed, Feb  6 2036 22:28:16.000
originate timestamp: 00000000.00000000  Wed, Feb  6 2036 22:28:16.000
transmit timestamp:  d0c64778.b4da6e75  Wed, Dec 29 2010 15:49:12.706
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000
29 Dec 15:49:13 ntpdate[10699]: no server suitable for synchronization found

受影响的产品

Avamar, Avamar Server
文章属性
文章编号: 000163671
文章类型: Solution
上次修改时间: 24 9月 2025
版本:  10
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。