Set up an Oracle Cluster File System

From Linuxintro

You want to start your clustering experiences with an Oracle Cluster File System. Here is how. This is an example using SUSE Linux 11.2. As shared storage we use an iscsi storage.

Installation

We assume here they are named node1 and node2 and have the IP addresses 192.168.0.11 and 192.168.0.12.
  • On both nodes, configure your iscsi initiator, install everything that yast proposes:
yast2 iscsi-client
  • On both nodes, install ocfs2 software
yast -i ocfs2-tools ocfsconsole ocfs2-tools-o2cb
  • On both nodes, make the cluster services start at boot
chkconfig o2cb on
/etc/init.d/o2cb enable

You get a message "cluster not known". That is okay.

  • check that each node can reach each other
node1:~ # ping node2
PING node2 (192.168.0.12) 56(84) bytes of data.
64 bytes from node2 (192.168.0.12): icmp_seq=1 ttl=64 time=1.09 ms
node2:~ # ping node1
PING node1 (192.168.0.11) 56(84) bytes of data.
64 bytes from node1 (192.168.0.11): icmp_seq=1 ttl=64 time=1.09 ms
  • Start ocfs2console
    • Choose Cluster->Configure Nodes...
    • write the cluster nodes in with their local host names (what the command "hostname" returns).
    • Choose Cluster->Propagate Configuration...

TroubleShooting

Unable to access cluster service while trying to initialize cluster

Symptom

When trying to mount the cluster volume you get the error message

node1:~ # mount /dev/sdb /mnt
mount.ocfs2: Unable to access cluster service while trying initialize cluster

Reason

Once the reason was the cluster service had not been started on all nodes.

Solution

Start the cluster service on all nodes:

node2:~ # /etc/init.d/o2cb status
Driver for "configfs": Not loaded
Driver for "ocfs2_dlmfs": Not loaded
node2:~ # /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading stack plugin "o2cb": OK
Loading filesystem "ocfs2_dlmfs": OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Cluster not known
node2:~ # /etc/init.d/o2cb status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted

Unable to access cluster service while creating node

Symptom

In ocfs2console when adding nodes you get the error message

o2cb_ctl: Unable to access cluster service while creating node
Could not add node node1

Solution 1

The following solution worked once: Delete /etc/ocfs2/cluster.conf

rm /etc/ocfs2/cluster.conf

Solution 2

The following solution worked once: Write /etc/ocfs2/cluster.conf manually:

node:
        name = node1
        cluster = ocfs2
        number = 0
        ip_address = 192.168.0.11
        ip_port = 7777

node:
        name = node2
        cluster = ocfs2
        number = 1
        ip_address = 192.168.0.12
        ip_port = 7777

cluster:
        name = ocfs2
        node_count = 2

you see files only on one node

Symptom

You have your filesystem mounted and add a file on one node, but do not see it on the other node.

Reason 1

In one case the reason for this was that the user had forgotten to "propagate configuration" AND node2 could not be reached over the network.