2016-10-07 15:28:31 +02:00
Time Synchronization
--------------------
2016-10-14 07:23:15 +02:00
ifdef::wiki[]
:pve-toplevel:
endif::wiki[]
2016-10-07 15:28:31 +02:00
The {pve} cluster stack itself relies heavily on the fact that all
the nodes have precisely synchronized time. Some other components,
2021-08-26 14:39:10 +02:00
like Ceph, also won't work properly if the local time on all nodes is
2016-10-07 15:28:31 +02:00
not in sync.
2021-08-26 14:39:10 +02:00
Time synchronization between nodes can be achieved using the ``Network
Time Protocol'' (`NTP`). As of {pve} 7, `chrony` is used as the default
NTP daemon, while {pve} 6 uses `systemd-timesyncd`. Both come preconfigured to
use a set of public servers.
2016-10-07 15:28:31 +02:00
2021-08-26 14:39:10 +02:00
IMPORTANT: If you upgrade your system to {pve} 7, it is recommended that you
manually install either `chrony`, `ntp` or `openntpd`.
2016-10-07 15:28:31 +02:00
Using Custom NTP Servers
~~~~~~~~~~~~~~~~~~~~~~~~
2021-08-26 14:39:10 +02:00
In some cases, it might be desired to use non-default NTP
2016-10-07 15:28:31 +02:00
servers. For example, if your {pve} nodes do not have access to the
2021-08-26 14:39:10 +02:00
public internet due to restrictive firewall rules, you
need to set up local NTP servers and tell the NTP daemon to use
them.
For systems using chrony:
^^^^^^^^^^^^^^^^^^^^^^^^^^
Specify which servers `chrony` should use in `/etc/chrony/chrony.conf`:
----
server ntp1.example.com iburst
server ntp2.example.com iburst
server ntp3.example.com iburst
----
Restart `chrony`:
# systemctl restart chronyd
Check the journal to confirm that the newly configured NTP servers are being
used:
# journalctl --since -1h -u chrony
----
...
Aug 26 13:00:09 node1 systemd[1]: Started chrony, an NTP client/server.
Aug 26 13:00:15 node1 chronyd[4873]: Selected source 10.0.0.1 (ntp1.example.com)
Aug 26 13:00:15 node1 chronyd[4873]: System clock TAI offset set to 37 seconds
...
----
For systems using systemd-timesyncd:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Specify which servers `systemd-timesyncd` should use in
`/etc/systemd/timesyncd.conf`:
2016-10-07 15:28:31 +02:00
----
[Time]
2018-06-20 09:50:00 +02:00
NTP=ntp1.example.com ntp2.example.com ntp3.example.com ntp4.example.com
2016-10-07 15:28:31 +02:00
----
2021-08-26 14:39:10 +02:00
Then, restart the synchronization service (`systemctl restart
systemd-timesyncd`), and verify that your newly configured NTP servers are in
use by checking the journal (`journalctl --since -1h -u systemd-timesyncd`):
2016-10-07 15:28:31 +02:00
----
...
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).
2021-08-26 14:39:10 +02:00
Oct 07 14:58:36 node1 systemd-timesyncd[13514]: interval/delta/delay/jitter/drift 64s/-0.002s/0.020s/0.000s/-31ppm
2016-10-07 15:28:31 +02:00
...
----