1、概述
NTP(Network Time Protocol)可以很方便的解决服务器之间的时间同步问题,Ubuntu系统下NTP安装也很方便,经过测试,在Ubuntu 16.04环境下,直接安装NTP服务,使用Ubuntu系统自带的pool ntp.ubuntu.com 时间服务器地址池,就可以实现时间同步。用户也可以选择NTP官方网站推荐的pool pool.ntp.org地址池,或者选择中国区的pool cn.pool.ntp.org地址池,都会生效的。
用户还可以选择集群中的1台作为主授时服务器(NTP 服务器角色),通过配置文件中的pool 地址池与上层的服务器同步时间,集群内所有其他机器(NTP客户端角色)的NTP配置文件中,使用Server xx.xx.xx.xx形式,明确指向主授时服务器IP地址,也可以实现为集群提供统一的时间服务。如果考虑高可靠性,还可以将多台服务器作为集群的授时服务器。
也可以到www.ntp.org网站中查找中国区的服务器地址,直接在NTP配置文件中使用这些地址,比如 server xx.xx.xx.xx 。
下面的例子中,我们使用到的服务器信息:
服务器名 IP地址 角色
rancher2 192.168.3.220 NTP 服务器
node221 192.168.3.221 NTP 客户端
2、部署NTP时间同步服务
2.1 所有服务器使用yum安装ntp服务
1 | yum -y install ntp |
改时区
1 | echo " export TZ='Asia/Shanghai'" >> /etc/profile \ |
2.2 服务端配置
1 | vim /etc/ntp.conf |
修改/etc/ntp/step-tickers文件如下
1 | List of NTP servers used by the ntpdate service. |
重启ntp服务,并查看server端是否运行正常,正常的标准就是ntpq -p指令的最下面一行是*:
1 | systemctl enable ntpd |
2.3 客户端配置
1 | vim /etc/ntp.conf |
重启ntp服务并观察client是否正确连接到server端,同样正确连接的标准是ntpq -p的最下面一行以*号开头:
1 | systemctl enable ntpd |
3、常用命令
停止NTP服务
1 | sudo service ntp stop |
只查询、不更新本机系统时间
1 | sudo ntpdate -q pool.ntp.org |
使用debug(-d)模式查询详细更新信息
1 | sudo ntpdate -d pool.ntp.org |
直接与pool.ntp.org中的服务器同步本机系统时间
1 | sudo ntpdate pool.ntp.org |
查询NTP连接上层授时服务器的状态
1 | nptq -p |
启动NTP服务
1 | sudo service ntp start |
查询ntp运行状态
1 | sudo ntpstat |
查看系统时间
1 | date |
查看硬件时间
1 | sudo hwclock --show |
设置硬件时间
1 | sudo hwclock --set --date="07/09/18 14:55:30" |
使用硬件时间同步系统时间
1 | sudo hwclock --hctosys |
使用系统时间同步硬件时间
1 | sudo hwclock --systohc |