一、NTP原理:
http://en.wikipedia.org/wiki/Network_Time_Protocol
二、遇到的问题:
公网NTP服务器的可靠性问题
典型的例子是: pool.ntp.org的服务器可能会出现故障。
ntpd程序只会在第一次启动的时候去解析NTP服务器的域名。如果对应服务器出现问题又没有下线,那么会导致服务器同步到错误的时间。
三、解决方案:
1、自建NTP Server,然后整个集群使用相同的NTP设置
优点:
1. 只要服务器上ntpd都运行正常,整个集群的时间基本会保证一致。
2. 可以做ntpd认证,防止骇客伪造ntp数据包,修改系统文件的时间戳。
缺点:
无法解决上游NTP运行错误的情况,最坏的情况是整个集群时间都错误。如果自建NTP使用硬件时钟作为server,则不存在这个问题。
2、选用相对可靠的公网服务器,增强监控。
四、当前策略
1.使用自建NTP Server,确保整个集群时间一致。为了解决ntpd上游可能的错误,每月重启内部ntpd server进程,确保不会连接到过期的ntp服务器。
2.Client端的ntp,一般设置为开机自启动。而且puppet每半小时会检测ntp进程。不管是server还是client,均会配置多个server地址,优先使用硬件时钟地址。
硬件时钟->公网NTP: 使用公网NTP服务同步
公网NTP->NTP server: 使用公网NTP服务同步
NTP server->NTP client: 使用内部server同步
硬件时钟-->NTP server: 公司GPS NTP时钟(XXXXXXXX/ntp.super.com)
以上是服务器NTP情况,所管理的服务器只分为server和client,server直接使用公司GPS时钟,client使用各自IDC的内网server即可。
每个IDC的基础设施如DNS、NTP、NAT等服务均会部署一套,一般为两台tunnel服务器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。