Configuring an External Time Server

Precisely synchronized time is critical to the integral processes in the Swarm storage cluster, such as versioning, lifepoints, and updates. Unexpected results may occur if the nodes in a storage cluster are not synchronized with each other.

Specify Network Time Protocol (NTP) servers via the network.timeSource setting, which cannot be changed dynamically (using the Swarm UI or SNMP).

Guidelines for Time Servers

Swarm requires extremely precise clock synchronization to prevent data loss. Follow these guidelines to guarantee adequate synchronization:

  • Use NTP servers

Best Practice

Use NTP servers to synchronize the clock in each cluster node.

  • Do not use OpenNTPD or SNTP
    Swarm supports the NTP protocol. The Open Network Time Protocol Daemon (OpenNTPD) and the Simple Network Time Protocol (SNTP) are not supported because these protocols do not implement high-accuracy timing methods required by Swarm.

  • Use trusted NTP servers
    Use trusted NTP servers, whether they are dedicated hardware solutions in the internal network or external, public servers.

  • Synchronize client systems
    Swarm does not synchronize the client system clocks. Best practice is to synchronize these clocks with the NTP servers as well.

Warning

Do not use a Windows Server for time sync:​

“The W32Time service is not a full-featured NTP solution that meets time-sensitive application needs.”​

“The W32Time service cannot reliably maintain sync time to the range of 1 to 2 seconds. Such tolerances are outside the design specification of the W32Time service.”​

From Microsoft KB 939322

Configuring a Node with NTP

To configure a node to use NTP, populate the network.timeSource setting in the node or cluster configuration file, using one or more IP addresses or host names based on the DNS server configuration in the network. 

Important

Verify the network.timeSource setting is correct and the nodes have network access to the NTP pool servers.

Nodes time out waiting for a connection and automatically restart if they cannot reach public NTP servers.

If node is not configured
to a DNS server

Set the network.dnsServers setting to a valid value, and set the network.timeSource setting to one or more IP addresses. See https://perifery.atlassian.net/wiki/spaces/public/pages/2443811510.

network.dnsServers = 84.200.69.80 84.200.70.40 network.timeSource = 192.168.0.20 192.168.0.50 192.168.0.110

If node uses DHCP that
provides a DNS server

Set the network.timeSource setting to one or more host names. Decide to use public NTP pool servers or internal NTP servers.

The NTP Project recommends using pool servers that are close to the servers' time zone. See the page, How do I use pool.ntp.org?

If node uses U.S.-based
pool servers

Use the following setting value:

network.timeSource = 0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org

Configuring a Node without NTP

Do not run a storage cluster in a production environment without using NTP. In demonstration or development environments where there is no internal or external NTP server available, choose a minimum of one or a maximum of two nodes as the master clock and synchronize the clocks in the remaining nodes to the master clock in one of those nodes.

To implement a cluster without using NTP:

  • Set the following setting in the configuration file of any single node in the cluster:

    network.timeSource = system

    All other nodes in the cluster attempt to synchronize clocks to this node.

 

© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.