Before installing Rhino, please configure the following network features.

Note Cluster communications may be done over multicast or a unicast mesh protocol referred to as scattercast.
One or other option must be selected at install time and should not be changed after installation.
Feature What to configure

IP address

Make sure the system has an IP address and is visible on the network.

Host names

Make sure that:

  • the system can resolve localhost to the loopback interface

  • the host name of the machine resolves to an external IP address, not a loopback address.

Multicast addresses
(firewall rules)

If the local system has a firewall installed, modify its rules to allow multicast UDP traffic:

  • Multicast addresses are, by definition, in the range 224.0.0.0/4 (224.0.0.0-239.255.255.255).
    (This range is separate from the unicast address range that machines use for their host addresses.)

  • Multicast UDP is used to distribute main working memory between cluster members. During the install it asks for a range of multicast addresses to use. By default, the port numbers which are required are: 45601,45602,46700-46800.

  • All nodes in the cluster must use the same multicast addresses — this is how they see each other.

  • Ensure that the firewall is configured to allow multicast messages through on the multicast ranges/ports that are configured during installation.

Scattercast addresses
(firewall rules)

If the system has a firewall installed, modify its rules to allow unicast UDP traffic for all nodes.

  • Scattercast endpoints should be determined in advance for all cluster members.

  • Scattercast uses point-to-point UDP mesh layout for cluster membership.

  • Scattercast uses point-to-point UDP mesh to distribute main working memory between cluster members. By default, the port numbers which are required are: 46700-46800.

  • Ensure that all firewalls are configured to allow unicast messages through on addresses/ports configured during installation.

Further details about Scattercast Management within Rhino.

UDP buffer sizes

Rhino cluster communication requires large UDP send and receive buffers.

The operating system limits for socket transmit and receive buffers must be large enough to allow the buffer size to be set.

Ensure that the kernel parameters net.core.rmem_max and net.core.wmem_max are large enough.

To see the current values run:

sysctl net.core.wmem_max net.core.rmem_max

The values must be larger than the values set in config/savanna/cluster.properties for ocio_receive_buffer_size and ocio_send_buffer_size. The default value for these settings is 255KB.

To permanently set these kernel parameters, add or update the following lines in /etc/sysctl.conf

net.core.rmem_max = 262144
net.core.wmem_max = 262144

and reload the file with

sudo sysctl -p

System clock

As with most system services, it is not a good idea to make sudden changes to the system clock. The Rhino SLEE assumes that time will only ever go forwards, and that time increments are less than a few seconds.

  • Set the network time protocol (NTP) service to gradually slew the system clock to the correct time.

    Warning It is vitally important that system time is only ever gradually slewed when it is being set to the correct time. If the system clock is suddenly set to a time in the past, the Rhino SLEE may exhibit unpredictable behaviour. If the system clock is set to a value more than 8 seconds forward from the current time, nodes in the cluster will assume that they are no longer part of the quorum of nodes and will leave the cluster.
  • Use extreme care when manually setting the time on any machine that will host a Rhino node.
    Before starting any nodes on the machine, manually set the system clock to approximately the correct time and configure ntp in skew mode to correct any inaccuracies or clock drift. Manually setting the system clock should not be performed while a node is running on the machine.

  • When using a cluster of nodes, ntpd is useful to keep the system clocks on all nodes synchronised and to have all nodes configured to use the same timezone. This helps, for example, for keeping timestamps in logging output from all nodes synchronised.

  • Refer to the tzselect or tzconfig commands for instructions on how to configure the timezone.

Previous page Next page