时间同步

{pve} 集群堆栈本身非常依赖于所有节点都有精确同步的时间这一事实。如果所有节点上的本地时间没有同步,其他一些组件,比如 Ceph,也将无法正常工作。

节点之间的时间同步可以通过网络时间协议NTP)来实现。从{pve} 7开始,默认使用`chrony`作为NTP守护进程,而{pve} 6使用`systemd-timesyncd`。两者都预配置为使用一组公共服务器。

Important
如果你将系统升级到 {pve} 7, 建议你手动安装 chronyntpopenntpd 中的任何一个。

使用自定义NTP服务器

在某些情况下,可能希望使用非默认的NTP服务器。例如,如果您的 {pve} 节点由于严格的防火墙规则而无法访问公共互联网,您需要设置本地NTP服务器,并告知NTP守护程序使用它们。

对于使用chrony的系统:

指定`chrony`应该在`/etc/chrony/chrony.conf`中使用哪些服务器:

server ntp1.example.com iburst
server ntp2.example.com iburst
server ntp3.example.com iburst

重新启动 chrony

systemctl restart chronyd

检查日志以确认新配置的NTP服务器是否正在被使用:

journalctl --since -1h -u chrony

...
Aug 26 13:00:09 node1 systemd[1]: 已启动 Chrony,一个NTP客户端/服务器。
Aug 26 13:00:15 node1 chronyd[4873]: 已选择源 10.0.0.1 (ntp1.example.com)
Aug 26 13:00:15 node1 chronyd[4873]: 系统时钟TAI偏移设置为37秒
...

对于使用systemd-timesyncd的系统:

指定 /etc/systemd/timesyncd.confsystemd-timesyncd 应使用哪些服务器:

[Time]
NTP=ntp1.example.com ntp2.example.com ntp3.example.com ntp4.example.com

然后,重新启动同步服务(systemctl restart systemd-timesyncd),并通过检查日志(journalctl --since -1h -u systemd-timesyncd)来验证您新配置的NTP服务器是否正在使用:

...
Oct 07 14:58:36 node1 systemd[1]: Stopping Network Time Synchronization...
Oct 07 14:58:36 node1 systemd[1]: Starting Network Time Synchronization...
Oct 07 14:58:36 node1 systemd[1]: Started Network Time Synchronization.
Oct 07 14:58:36 node1 systemd-timesyncd[13514]: Using NTP server 10.0.0.1:123 (ntp1.example.com).
Oct 07 14:58:36 node1 systemd-timesyncd[13514]: interval/delta/delay/jitter/drift 64s/-0.002s/0.020s/0.000s/-31ppm
...