共计 10757 个字符,预计需要花费 27 分钟才能阅读完成。
最近在搭建 Openstack 以及 Ceph 的集群,由于集群中都存在多个节点,且节点间需要时间的同步,所以需要使用 NTP,又考虑到有些时候网络环境是封闭的,所以需要自己搭建一个 NTP 的服务器
服务器IP | 角色 | 说明 | 同步方式 |
192.168.100.203 | NTPD服务 | 1、负责与外部公共 NTPD 服务同步标准时间 2、作为内外网络的 NTPD 服务 | NTPD服务平滑同步 |
192.168.40.xxx | 内外 NTP 客户端 | 内网设备与 192.168.100.203 同步时间 | NTPD服务平滑同步 |
NTP 时间同步方式选择
NTP 同步方式在 linux 下一般两种:使用 ntpdate 命令直接同步和使用 NTPD 服务平滑同步。有什么区别呢,简单说下,免得时间长了,概念又模糊。
现有一台设备,系统时间是 13:00 , 真实的当前时间 (在空中,也许卫星上,这里假设是在准备同步的上级目标 NTP 服务器) 是: 12:30。如果我们使用 ntpdate 同步(ntpdate -u 目标 NTP 服务器 IP),操作系统的时间立即更新为 12:30, 假如,我们的系统有一个定时应用,是在每天 12:40 运行,那么实际今天这个的任务已经运行过了(当前时间是 13:00 嘛),现在被 ntpdate 修改为 12:30,那么意味作 10 分钟后,又会执行一次任务,这就糟糕了,这个任务只能执行一次的嘛!!我想你(其实是我)已经懂了 ntpdate 时间同步的隐患,当然这个例子有些极端,但的确是有风险的,生产环境我不打算这么干,还是稳妥点好。所以解决该问题的办法就是时间平滑更改,不会让一个时间点在一天内经历两次,这就是 NTPD 服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,是慢慢来的(问:怎么来,没有细究,只晓得一次一点的同步,完全同步好需要较长时间,所以一般开启 NTPD 服务同步前先用 ntpdate 先手动同步一次)。
安装配置
CentOS 6.3 系统已经自带了 NTPD 服务,一般默认是按照了的,如果没有安装,先检查下,然后配置好 yum 仓库,yum 方式安装下就 OK,具体如下:
#rpm -q ntp
如果没有安装,我们按照下
# yum install ntp
按上面的安装方式在内网每台服务器上都安装好 NTP 软件包。
完成后,都需要配置 NTP 服务为自启动
# chkconfig ntpd on
# chkconfig –list ntpd
在配置前,先使用 ntpdate 手动同步下时间,免得本机与外部时间服务器时间差距太大,让 ntpd 不能正常同步。
# ntpdate -u 202.112.10.36
22 Dec 16:52:38 ntpdate[6400]: adjust time server 202.112.10.36 offset 0.012135 se
配置内网 NTP-Server(192.168.100.203)
————————————– 分割线 ————————————–
CentOS NTP 服务器安装与配置 http://www.linuxidc.com/Linux/2014-01/95258.htm
Linux 实战部署系列之 NTP 服务器 http://www.linuxidc.com/Linux/2013-11/92275.htm
多种操作系统 NTP 客户端配置 http://www.linuxidc.com/Linux/2013-10/91928.htm
搭建企业级 NTP 时间服务器 http://www.linuxidc.com/Linux/2014-02/97205.htm
Linux 下快速搭建 ntp 时间同步服务器 http://www.linuxidc.com/Linux/2014-07/104371.htm
CentOS 6.3 下实现 NTP 时间服务器 http://www.linuxidc.com/Linux/2014-08/105414.htm
————————————– 分割线 ————————————–
下面主要是配置内网的 NPTD 服务器(192.168.100.203), NTPD 服务配置核心就在 /etc/ntp.conf 文件,配置好了就 OK。网上特别是老外的文章都很简单,我上当了,妈哟,基础环境不一样,我们得中国特色才行。先上配置文件再说,红色部分是我的修改,其他的是默认。
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
# 允许内网其他机器同步时间
restrict 192.168.40.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer # 中国国家受时中心
server 202.112.10.36 # 1.cn.pool.ntp.org
server 59.124.196.83 # 0.asia.pool.ntp.org
#broadcast 192.168.40.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# allow update time by the upper server
# 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
# 外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
配置参数和命令简单说明请参考:http://linux.vbird.org/linux_server/0440ntp.php#server_ntp.conf
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/109412p2.htm
配置文件修改完成,保存退出,启动服务。
# service ntpd start
启动后,一般需要 5 -10 分钟左右的时候才能与外部时间服务器开始同步时间。可以通过命令查询 NTPD 服务情况。
查看服务连接和监听
# netstat -tlunp | grep ntp
udp 0 0 192.168.100.203:123 0.0.0.0:* 23103/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 23103/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 23103/ntpd
udp 0 0 fe80::6cae:8bff:fe3d:f65:123 :::* 23103/ntpd
udp 0 0 fe80::6eae:8bff:fe3d:f65:123 :::* 23103/ntpd
udp 0 0 ::1:123 :::* 23103/ntpd
udp 0 0 :::123 :::* 23103/ntpd
ntpq -p 查看网络中的 NTP 服务器,同时显示客户端和每个服务器的关系
# ntpq -p
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*202.112.10.36 202.112.10.60 2 u 277 128 314 201.553 9.193 17.068
+59.124.196.83 129.6.15.28 2 u 88 128 377 71.153 -25.111 14.004
LOCAL(0) .LOCL. 10 l 15 64 377 0.000 0.000 0.000
位置 | 标志 | 含义 |
符号 | * | 响应的 NTP 服务器和最精确的服务器 |
+ | 响应这个查询请求的 NTP 服务器 | |
blank(空格) | 没有响应的 NTP 服务器 | |
标题 | remote | 响应这个请求的 NTP 服务器的名称 |
refid | NTP服务器使用的更高一级服务器的名称 | |
st | 正在响应请求的 NTP 服务器的级别 | |
when | 上一次成功请求之后到现在的秒数 | |
poll | 本地和远程服务器多少时间进行一次同步,单位秒,在一开始运行 NTP 的时候这个 poll 值会比较小,服务器同步的频率大,可以尽快调整到正确的时间范围,之后 poll 值会逐渐增大,同步的频率也就会相应减小 | |
reach | 用来测试能否和服务器连接,是一个八进制值,每成功连接一次它的值就会增加 | |
delay | 从本地机发送同步要求到 ntp 服务器的往返时间 | |
offset | 主机通过 NTP 时钟同步与所同步时间源的时间偏移量,单位为毫秒,offset越接近于 0,主机和ntp 服务器的时间越接近 | |
jitter | 统计了在特定个连续的连接数里 offset 的分布情况。简单地说这个数值的绝对值越小,主机的时间就越精确 |
ntpstat 命令查看时间同步状态,这个一般需要 5 -10 分钟后才能成功连接和同步。所以,服务器启动后需要稍等下。
刚启动的时候,一般是:
# ntpstat
unsynchronised
time server re-starting
polling server every 64 s
连接并同步后:
synchronised to NTP server (202.112.10.36) at stratum 3
time correct to within 275 ms
polling server every 256 s
OK,内网的 NTPD 服务已经配置完成,如果所有正常后,开始配置内网的其他设备与这台服务器作为时间同步服务。
配置内网 NTP-Clients
内网其他设备作为 NTP 的客户端配置,相对就比较简单,而且所有设备的配置都相同。
首先需要安装 NTPD 服务,然后配置为自启动(与 NTP-Server 完全一样)。然后找其中一台配置 /etc/ntp.conf 文件,配置完成验证通过后,拷贝到其他客户端机器,直接使用即可。
# yum install ntp
# chkconfig ntp on
# vim /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
# 配置时间服务器为本地的时间服务器
server 192.168.100.203
restrict 192.168.100.203 nomodify notrap noquery
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
保存退出,请求服务器前,请先使用 ntpdate 手动同步下时间
# ntpdate -u 192.168.0.135
22 Dec 17:09:57 ntpdate[6439]: adjust time server 192.168.100.203 offset 0.004882 sec
这里有可能出现同步失败,一般情况下原因都是本地的 NTPD 服务器还没有正常启动起来,一般需要几分钟时间后才能开始同步。
错误判断请参考后面的错误处理。
# service ntpd start
启动后,查看同步情况
# ntpq -p
# ntpstat
错误问题处理
用于收集安装,配置和应用中出现的问题
错误 1:ntpdate -u ip -< no server suitable for synchronization found
判断:在 ntp 客户端用 ntpdate –d serverIP 查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下 stratum 这个值得范围是“0~15”。
原因:NTP server 还没有和其自身或者它的 server 同步上。在 ntp server 上重新启动 ntp 服务后,ntp server 自身或者与其 server 的同步的需要一个时间段,这个过程可能是 5 分钟,在这个时间之内在客户端运行 ntpdate 命令时会产生 no server suitable for synchronization found 的错误。
处理:等待几分钟后,重试一般解决。
也可以使用命令 ntpq - p 查看情况
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14
最近在搭建 Openstack 以及 Ceph 的集群,由于集群中都存在多个节点,且节点间需要时间的同步,所以需要使用 NTP,又考虑到有些时候网络环境是封闭的,所以需要自己搭建一个 NTP 的服务器
服务器IP | 角色 | 说明 | 同步方式 |
192.168.100.203 | NTPD服务 | 1、负责与外部公共 NTPD 服务同步标准时间 2、作为内外网络的 NTPD 服务 | NTPD服务平滑同步 |
192.168.40.xxx | 内外 NTP 客户端 | 内网设备与 192.168.100.203 同步时间 | NTPD服务平滑同步 |
NTP 时间同步方式选择
NTP 同步方式在 linux 下一般两种:使用 ntpdate 命令直接同步和使用 NTPD 服务平滑同步。有什么区别呢,简单说下,免得时间长了,概念又模糊。
现有一台设备,系统时间是 13:00 , 真实的当前时间 (在空中,也许卫星上,这里假设是在准备同步的上级目标 NTP 服务器) 是: 12:30。如果我们使用 ntpdate 同步(ntpdate -u 目标 NTP 服务器 IP),操作系统的时间立即更新为 12:30, 假如,我们的系统有一个定时应用,是在每天 12:40 运行,那么实际今天这个的任务已经运行过了(当前时间是 13:00 嘛),现在被 ntpdate 修改为 12:30,那么意味作 10 分钟后,又会执行一次任务,这就糟糕了,这个任务只能执行一次的嘛!!我想你(其实是我)已经懂了 ntpdate 时间同步的隐患,当然这个例子有些极端,但的确是有风险的,生产环境我不打算这么干,还是稳妥点好。所以解决该问题的办法就是时间平滑更改,不会让一个时间点在一天内经历两次,这就是 NTPD 服务方式平滑同步时间,它每次同步时间的偏移量不会太陡,是慢慢来的(问:怎么来,没有细究,只晓得一次一点的同步,完全同步好需要较长时间,所以一般开启 NTPD 服务同步前先用 ntpdate 先手动同步一次)。
安装配置
CentOS 6.3 系统已经自带了 NTPD 服务,一般默认是按照了的,如果没有安装,先检查下,然后配置好 yum 仓库,yum 方式安装下就 OK,具体如下:
#rpm -q ntp
如果没有安装,我们按照下
# yum install ntp
按上面的安装方式在内网每台服务器上都安装好 NTP 软件包。
完成后,都需要配置 NTP 服务为自启动
# chkconfig ntpd on
# chkconfig –list ntpd
在配置前,先使用 ntpdate 手动同步下时间,免得本机与外部时间服务器时间差距太大,让 ntpd 不能正常同步。
# ntpdate -u 202.112.10.36
22 Dec 16:52:38 ntpdate[6400]: adjust time server 202.112.10.36 offset 0.012135 se
配置内网 NTP-Server(192.168.100.203)
————————————– 分割线 ————————————–
CentOS NTP 服务器安装与配置 http://www.linuxidc.com/Linux/2014-01/95258.htm
Linux 实战部署系列之 NTP 服务器 http://www.linuxidc.com/Linux/2013-11/92275.htm
多种操作系统 NTP 客户端配置 http://www.linuxidc.com/Linux/2013-10/91928.htm
搭建企业级 NTP 时间服务器 http://www.linuxidc.com/Linux/2014-02/97205.htm
Linux 下快速搭建 ntp 时间同步服务器 http://www.linuxidc.com/Linux/2014-07/104371.htm
CentOS 6.3 下实现 NTP 时间服务器 http://www.linuxidc.com/Linux/2014-08/105414.htm
————————————– 分割线 ————————————–
下面主要是配置内网的 NPTD 服务器(192.168.100.203), NTPD 服务配置核心就在 /etc/ntp.conf 文件,配置好了就 OK。网上特别是老外的文章都很简单,我上当了,妈哟,基础环境不一样,我们得中国特色才行。先上配置文件再说,红色部分是我的修改,其他的是默认。
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
# Hosts on local network are less restricted.
# 允许内网其他机器同步时间
restrict 192.168.40.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer # 中国国家受时中心
server 202.112.10.36 # 1.cn.pool.ntp.org
server 59.124.196.83 # 0.asia.pool.ntp.org
#broadcast 192.168.40.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# allow update time by the upper server
# 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
# 外部时间服务器不可用时,以本地时间作为时间服务
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
配置参数和命令简单说明请参考:http://linux.vbird.org/linux_server/0440ntp.php#server_ntp.conf
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/109412p2.htm