How to share the NDAS disk with OCFS2 file system

OCFS2 is a shared symmetric file system by Oracle. Unlikely OCFS, OCFS2 is for general purpose and included in 2.6.x offcial kernel tree.

We did test with Ubuntu system to use OCFS2.

Prerequisite

  • One NDAS disk.
  • Two systems with i386 Ubuntu 5.10 installed.

Any system that has OCFS2 kernel module/feature installed.

Step 1

Install NDAS driver for each system.
Make sure the NDAS disk is accessible.

Step 2

Install ocfs tools on both system

apt-get install ocfs2-tools ocfs2console

Step 3

Configure cluster /etc/ocfs2/cluster.conf on both system

node:
        ip_port = 7777
        ip_address = 192.168.0.100
        number = 1
        name = host01
        cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 192.168.0.101
        number = 0
        name = host02
        cluster = ocfs2

cluster:
        node_count = 2
        name = ocfs2

* The file format is very strict, indent with TABs. Even then I couldn't get it to work and had to resort to ocfs2console don't forget to add the following to /etc/hosts on both system

host01 192.168.0.100
host02 192.168.0.101

Make sure port 7777 is reachable from each other (check iptables)

Step 4

Start OCFS2 service on both system

/etc/init.d/o2fs load    # depending on your system, this can also be o2cb instead of o2fs
/etc/init.d/o2fs online  # can also be o2cb

Step 5

Partition the NDAS disk and format as ocfs2 on one system.

fdisk /dev/ndas-00xxxxxx:0   # path will be given by ndasadmin enable
mkfs -t ocfs2 /dev/ndas-00xxxxxx:0p1 # p1 means the first partition

Step 6

Turn on the heat beat for the file system on both system

ocfs2_hb_ctl -S -d /dev/ndas-00xxxxxx:0p1

Step 7

Mount the file system from both systems

mkdir -p /mnt/ocfs2
mount -t ocfs2 /dev/ndas-00xxxxxx:0p1 /mnt/ocfs2

and enjoy!

Tips

The ocfs2 nodes exchanges the heartbeats each other. During the file transfer the heartbeats could be congested by the NDAS i/o transfer. This congenstion results the 40% degration of writing performance.

Therefore, we recommend the hearbeat network should be dedicated to avoid NDAS i/o tranfer congestion. or use gigibit switch/nic if your NDAS disk is 100Mbps version. (With Gigabit NDAS disk, only solution is dedicating the heartbeat network.)

Performance

512MiB DRAM 1GiB transfer, HDD cache 2MB(affecting write performance)

NDAS/ocfs2/100Mbps/heartbeat on: read 9.7 MB/s , write 6.2 MB/s
NDAS/ocfs2/100Mbps/heartbeat off: read 9.9 MB/s , write 10.4 MB/s
NDAS/ext2/100Mbps: read 10.1 MB/s , write 10.8 MB/s

Local HDD/ocfs2: read 39.8 MB/s, write 42.9 MB/s
Local HDD/ext2Ï: read 44.7 MB/s , write 42.9 MB/s

* Please note that the hearbeat network is not dedicated. that's why the write of NDAS/ocfs2 is much slower (6.2 MB/s), I believe.
** The network maxium speed of 100Mbps network is about 12.5 MB/s in theory if we ignore the overhead of packet headers metadata. so bottleneck for network test is the network speed, for local hdd is the hdd speed.