Default cluster stack for the ocfs2 file system.
o2cb is the default cluster stack for the OCFS2 file system. It includes a node manager (o2nm) to keep track of the nodes in the cluster, a heartbeat agent (o2hb) to detect live nodes, a network agent (o2net) for intra-cluster node communication and a distributed lock manager (o2dlm) to keep track of lock resources. All these components are in-kernel. It also includes an in-memory file system, dlmfs, to allow userspace to access the in-kernel dlm.
This cluster stack has two configuration files, namely, /etc/ocfs2/cluster.conf and /etc/sysconfig/o2cb. Whereas the former keeps track of the cluster layout, the latter keeps track of the cluster timeouts. Both files are only read when the cluster is brought online. Values in use by the online cluster can be perused in the /sys/kernel/config/cluster directory structure.
The cluster layout is specified in /etc/ocfs2/cluster.conf. While it is easier to populate and propagate this configuration file using ocfs2console(8), one can also do it by manually as long as care is taken to format the file correctly.
While the console utility is intuitive to use, there are few points to keep in mind.
1. The node name needs to match the hostname. It does not need to include the domain name. For example, appserver.oracle.com can be appserver.
2. The IP address need not be the one associated with that hostname. As in, any valid IP address on that node can be used. O2CB will not attempt to match the node name (hostname) with the specified IP address.
For best performance, use of a private interconnect (lower latency) is recommended.
The cluster.conf file is in a stanza format with two types of stanzas, namely, cluster and node. A typical cluster.conf will have one cluster stanza and multiple node stanzas.
The cluster stanza has two parameters:
Total number of nodes in the cluster
Name of the cluster
The node stanza has five parameters:
Unique node number from 0-254
Name of the cluster
Users populating cluster.conf manually should follow the format strictly. As in, stanza header should start at the first column and end with a colon, stanza parameters should start after a tab, a blank line should demarcate each stanza and care taken to avoid stray whitespaces.
The O2CB cluster timeouts are specified in /etc/sysconfig/o2cb and can be configured using the o2cb init script.
These timeouts are used by the O2CB clusterstack to determine whether a node is dead or alive. While the use of default values is recommended, users can experiment with other values if the defaults are causing spurious fencing.
The cluster timeouts are:
Heartbeat Dead Threshold
The Disk Heartbeat timeout is the number of two second iterations before a node is considered dead. The exact formula used to convert the timeout in seconds to the number of iterations is as follows:
O2CB_HEARTBEAT_THRESHOLD = (((timeout in seconds) / 2) + 1)
For e.g., to specify a 60 sec timeout, set it to 31. For 120 secs, set it to 61. The default for this timeout is 60 secs (O2CB_HEARTBEAT_THRESHOLD = 31).
Network Idle Timeout
The Network Idle timeout specifies the time in milliseconds before a network connection is considered dead. It defaults to 30000 ms.
Network Keepalive Delay
The Network Keepalive specifies the maximum delay in milliseconds before a keepalive packet is sent to another node to check whether it is alive or not. If the node is alive, it will respond. Its defaults to 2000 ms.
Network Reconnect Delay
The Network Reconnect specifies the minimum delay in milliseconds between connection attempts. It defaults to 2000 ms.
A sample /etc/ocfs2/cluster.conf.
node_count = 3 name = webcluster
ip_port = 7777 ip_address = 192.168.0.107 number = 7 name = node7 cluster = webcluster
ip_port = 7777 ip_address = 192.168.0.106 number = 6 name = node6 cluster = webcluster
ip_port = 7777 ip_address = 192.168.0.110 number = 10 name = node10 cluster = webcluster
Copyright © 2004, 2010 Oracle. All rights reserved.