Installing and Configuring Openfiler with DRBD and Heartbeat - Page 2

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
Submitted by gilly05 (Contact Author) (Forums) on Thu, 2008-10-23 13:27. ::

Configure LVM Partition

Create the /dev/drbd1 as a PV (Physical Volume) for the data volume group, which will be used to create Logical Volumes for data.

First, edit /etc/lvm/lvm.conf and modify the filter line:

From:

filter = [ "a/.*/" ]

To:

filter = [ "r|/dev/sda5|" ]

Note: Change /dev/sda5 to reflect the partition of your LVM. Also remember to apply these changes on both filer01 and filer02.

Create the LVM Physical Volume (only do this on our Primary node, as it will replicate to the Second node via drbd):

root@filer1 /# pvcreate /dev/drbd1

Physical volume "/dev/drbd1" successfully created

 

Configure Heartbeat

As mentioned before, Heartbeat controls failover between hosts. The two nodes run the Heartbeat service, that sends out a heartbeat pulse on the secondary interface (eth1). If one node dies, then Heartbeat detects this and roles the surviving node to Primary (if it wasn't already) using startup scripts available in /etc/ha.d/resources.d.

Make modifications to /etc/ha.d/ha.cf and /etc/ha.d/authkeys. Make these changes on both nodes.

In /etc/ha.d/authkeys, add:

auth 2
2 crc

The /etc/ha.d/authkeys file may not exist and will need to be created, as it does not appear to exist in Openfiler 2.3.

Next, restrict permissions to authkeys to just "root":

root@filer01 ~# chmod 600 /etc/ha.d/authkeys
root@filer02 ~# chmod 600 /etc/ha.d/authkeys

Create a /etc/ha.d/ha.cf on both nodes (needs to be identical on both, just like /etc/drbd.conf):

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
bcast eth1
keepalive 5
warntime 10
deadtime 120
initdead 120
udpport 694
auto_failback off
node filer01
node filer02

Enable Heartbeat to startup at boot:

root@filer01 ~# chkconfig --level 2345 heartbeat on
root@filer02 ~# chkconfig --level 2345 heartbeat on

 

Openfiler Data Configuration

As mentioned above, a 512 MB partition was created to keep the configuration and HA services available during a failover. To get this working, copy the services and Openfiler configuration data over to the new partition - symbolically linking it back to it's original location.

filer01:

root@filer01 ~# mkdir /cluster_metadata
root@filer01 ~# mount /dev/drbd0 /cluster_metadata
root@filer01 ~# mv /opt/openfiler/ /opt/openfiler.local
root@filer01 ~# mkdir /cluster_metadata/opt
root@filer01 ~# cp -a /opt/openfiler.local /cluster_metadata/opt/openfiler
root@filer01 ~# ln -s /cluster_metadata/opt/openfiler /opt/openfiler
root@filer01 ~# rm /cluster_metadata/opt/openfiler/sbin/openfiler
root@filer01 ~# ln -s /usr/sbin/httpd /cluster_metadata/opt/openfiler/sbin/openfiler
root@filer01 ~# rm /cluster_metadata/opt/openfiler/etc/rsync.xml
root@filer01 ~# ln -s /opt/openfiler.local/etc/rsync.xml /cluster_metadata/opt/openfiler/etc/

Then edit our /opt/openfiler.local/etc/rsync.xml file:

<?xml version="1.0" ?>
<rsync>
<remote hostname="10.188.188.2"/> ## IP address of peer node.
<item path="/etc/ha.d/haresources"/>
<item path="/etc/ha.d/ha.cf"/>
<item path="/etc/ldap.conf"/>
<item path="/etc/openldap/ldap.conf"/>
<item path="/etc/ldap.secret"/>
<item path="/etc/nsswitch.conf"/>
<item path="/etc/krb5.conf"/>
</rsync>

root@filer01 ~# mkdir -p /cluster_metadata/etc/httpd/conf.d

filer02:

root@filer2 ~# mkdir /cluster_metadata
root@filer2 ~# mv /opt/openfiler/ /opt/openfiler.local
root@filer2 ~# ln -s /cluster_metadata/opt/openfiler /opt/openfiler

Change the /opt/openfiler.local/etc/rsync.xml to reflect below:

<?xml version="1.0" ?>
<rsync>
<remote hostname="10.188.1881"/> ## IP address of peer node.
<item path="/etc/ha.d/haresources"/>
<item path="/etc/ha.d/ha.cf"/>
<item path="/etc/ldap.conf"/>
<item path="/etc/openldap/ldap.conf"/>
<item path="/etc/ldap.secret"/>
<item path="/etc/nsswitch.conf"/>
<item path="/etc/krb5.conf"/>
</rsync>

 

Heartbeat Cluster Configuration

Then modify the /cluster_metadata/opt/openfiler/etc/cluster.xml config file. This config file generates the /etc/ha.d/haresources file, which tells Heartbeat what it should do in a failover.

filer01 Only:

<?xml version="1.0" ?>
<cluster>
<clustering state="on" />
<nodename value="filer01" />
<resource value="MailTo::it@company.com::ClusterFailover"/>
<resource value="IPaddr::192.168.1.17/24" />
<resource value="drbddisk::">
<resource value="LVM::vg0drbd">
<resource value="Filesystem::/dev/drbd0::/cluster_metadata::ext3::defaults,noatime">
<resource value="MakeMounts"/>
</cluster>

Note how the HA IP address is declared here (192.168.1.17). As mentioned before, Heartbeat controls the setup of the network interface, the mounting of the LVM volume group, and the mounting of drbd0 (/cluster_metadata).

 

Samba and NFS Support

Modify Samba and NFS so it's available on our /cluster_metadata drbd resource.

filer01:

root@filer01 ~# mkdir /cluster_metadata/etc
root@filer01 ~# mv /etc/samba/ /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/samba/ /etc/samba
root@filer01 ~# mkdir -p /cluster_metadata/var/spool
root@filer01 ~# mv /var/spool/samba/ /cluster_metadata/var/spool/
root@filer01 ~# ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba
root@filer01 ~# mkdir -p /cluster_metadata/var/lib
root@filer01 ~# mv /var/lib/nfs/ /cluster_metadata/var/lib/
root@filer01 ~# ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs
root@filer01 ~# mv /etc/exports /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/exports /etc/exports

Note: This moves /var/spool/samba into /cluster_metadata, which is only a 512 MB partition. So, if large print jobs are put through Samba, the free space on this volume will get eaten up pretty quickly. So, if this is the case, a separate DRBD resource should be created for the /var directory. Or, reconsider hosting print services on a different server.

filer02:

root@filer02 ~# rm -rf /etc/samba/
root@filer02 ~# ln -s /cluster_metadata/etc/samba/ /etc/samba
root@filer02 ~# rm -rf /var/spool/samba/
root@filer02 ~# ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba
root@filer02 ~# rm -rf /var/lib/nfs/
root@filer02 ~# ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs
root@filer02 ~# rm -rf /etc/exports
root@filer02 ~# ln -s /cluster_metadata/etc/exports /etc/exports

 

iSCSI Support

filer01:

root@filer01 ~# mv /etc/ietd.conf /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf
root@filer01 ~# mv /etc/initiators.allow /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow
root@filer01 ~# mv /etc/initiators.deny /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny

filer02:

root@filer02 ~# rm /etc/ietd.conf
root@filer02 ~# ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf
root@filer02 ~# rm /etc/initiators.allow
root@filer02 ~# ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow
root@filer02 ~# rm /etc/initiators.deny
root@filer02 ~# ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny

 

FTP Support

filer01:

root@filer01 ~# mv /etc/proftpd /cluster_metadata/etc/
root@filer01 ~# ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd

filer02:

root@filer02 ~# rm -rf /etc/proftpd
root@filer02 ~# ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd

 

Configure Volume Group

filer01:

Create a Volume group from /dev/drbd1:

root@filer1 etc# vgcreate vg0drbd /dev/drbd1

Volume group "vg0drbd" successfully created

Note: If planning on using Windows to connect to these iSCSI targets, do not use the "_" character or any other special characters when creating the volume group.

Once the Heartbeat service has been configured and started (see below), the Openfiler web administration GUI should be available on https://192.168.1.17:446. Once there, LVM volumes can be created and to exported via iSCSI etc.

 

Starting Heartbeat and First-Time Configuration

In order to get Openfiler to write the /etc/ha.d/haresources file based on the cluster.xml config file, restart the Openfiler service and then log onto the web interface (using the Primary node's direct IP) and click on Services and enable iSCSI.

Make sure to do this on the Primary node (filer01).

root@filer01 ~# rm /opt/openfiler/etc/httpd/modules
root@filer01 ~# ln -s /usr/lib64/httpd/modules /opt/openfiler/etc/httpd/modules

Note: If you use a 32-bit system, just take out the “64”.

root@filer01 ~# service openfiler restart

With any luck, Openfiler has written this file out to /etc/ha.d/haresources. If haresources was created, copy it over to filer02.

Note: Before starting Heartbeat, a volume must be created:

root@filer01 ~# lvcreate -L 400M -n filer vg0drbd

It appears if you log onto the web interface and activate a service such as NFS or iSCSI. this will force Openfiler to rewrite the /etc/ha.d/haresources file. Copy (via scp) this file over to the second node as follows:

root@filer01 ~# scp /etc/ha.d/haresources root@filer02:/etc/ha.d/haresources

Since heartbeat was added to the start up scripts earlier, reboot filer01, then reboot filer02.

If all goes well, access the primary node via a web browser on the High Available ip address: https://192.168.1.17:446.

If the web server is not accessible, a good place to look for errors is in /var/log/ha-log or /var/log/ha-debug files.

Note: The rsync configuration is meant to synchronize changes between the two nodes, but this will not happen unless using the most recent build. Therefore, see the fix at the following page:

https://forums.openfiler.com/viewtopic.php?id=2380

Once Openfiler is up and running, delete the the filer volume created earlier and then create new volumes (be sure to create the new volumes before stopping the Heartbeat service, or it will not start).


Please do not use the comment function to ask for help! If you need help, please use our forum.
Comments will be published after administrator approval.
Submitted by Rombik (not registered) on Thu, 2010-06-24 15:15.

Help pls.,

After several minutes it is unmounted /cluster_metadata 

After restart of service  heartbeat on any node -
 is again mounted and again unmounted 


 cluster node also ping\no ping

(heartbeat and drbd service - started )

 for ex. 

[root@filer01 ~]# service heartbeat status
heartbeat OK [pid 16249 et al] is running on filer01 [filer01]...

and node 2 - started too.

Submitted by theITcrowd (registered user) on Wed, 2010-06-02 07:08.

the entry

udpport 694

should go before the entry

bcast eth1

This above config will work fine as it will always default to port 694 if the udpport entry is in the wrong order. For those who have two HA clusters (like me) you need to have a different port number for each cluster which means you need the udpport line before the bcast line.

Submitted by theITcrowd (registered user) on Fri, 2010-04-09 04:49.

Some of the resource lines are missing the tag ending />

ie

<resource value="drbddisk::">
<resource value="LVM::vg0drbd">
<resource value="Filesystem::/dev/drbd0::/cluster_metadata::ext3::defaults,noatime">

should be

<resource value="drbddisk::" />
<resource value="LVM::vg0drbd" />
<resource value="Filesystem::/dev/drbd0::/cluster_metadata::ext3::defaults,noatime" />


The rsync code first parses cluster.xml to work out if clusting is enabled but falls over because the tags are not consistent (no errors are displayed on the openfiler config pages.)
Since it can't determine if clustering is enabled the rsync process never happens. This means all files listed in rsync.xml file never sync between nodes until the tags are fixed in cluster.xml

Submitted by vladdrac (not registered) on Fri, 2009-07-03 02:12.
openfiler doesn't create haresources any idea ?
Submitted by kad (not registered) on Tue, 2010-06-29 06:16.

attempt update pakage

conary updateall on both node

Submitted by Anonymous (not registered) on Tue, 2009-07-21 01:25.
Hi,

In order to make the haresources file, you need to login to Openfiler web interface and then you go to Services tab and you need to Enable some services. After that you will see haresources file in /etc/ha.d/

Pisey
Submitted by Anonymous (not registered) on Mon, 2009-04-13 20:57.

Great article!

I would also like to add that if you are using iSCSI, the iscsi-target service must be restarted on the passive node every time you add a new LUN. Otherwise the passive node won't see the new LUN and won't failover correctly.

Submitted by Anonymous (not registered) on Fri, 2009-03-27 18:12.

udpport 694 must be before the bcast statement in the ha.cf. If you have more than one cluster setup, it will use the default 694 and you will get an error.

Submitted by Rip (not registered) on Mon, 2009-01-12 12:35.

Hi Gilly,

 Would prob be a good idea to throw up the credits to parts of the howto and some links on the openfiler forum that addresses some peoples issues.

 Sources: Eg. http://wiki.hyber.dk/doku.php and http://www.the-mesh.org

 

Cheers

Rip

Submitted by Anonymous (not registered) on Sun, 2008-10-26 19:46.

There is a typo in:
/opt/openfiler.local/etc/rsync.xml <remote hostname="10.188.1881"/> ## IP address of peer node.should be:<remote hostname="10.188.188.1"/> ## IP address of peer node.
Also:<resource value="IPaddr::192.168.1.17/24" />would be better expressed as:<resource value="IPaddr::192.168.1.17/32" />Good article.

Submitted by PatrickD (not registered) on Wed, 2009-10-14 13:51.
How do I set the HA IP address to a 3rd, physical NIC? Just add one and configure it with the desired IP?
Submitted by Anonymous (not registered) on Tue, 2009-10-27 22:56.

I have tried this like 20 times and it just doesn't work.  The /cluster_metadata never gets replicated to the second node and if the server is rebooted, /cluster_metadata won't mount.

 I followed the steps pricesly and the only error I gets is when trying to move the nfs directory (permissions issues) but that shouldn't cause the drives to not mount or stop replication.

 My guess is that the version 3.2 of OF is the issue.

 Thanks.

Submitted by thefusa (not registered) on Wed, 2009-11-25 18:19.

I get the same error....I've installed 20 times..same error..

 

Submitted by Adam (not registered) on Wed, 2010-03-03 23:29.

First make sure all NFS services are halted and umount rpc_pipefs:

service nfslock stop

service nfs stop

service rpcidmapd stop

umount -a -t rpc_pipefs


...Continued from his guide...

mkdir -p /cluster_metadata/var/lib

mv /var/lib/nfs/ /cluster_metadata/var/lib/

ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs


Then one more thing:

mount -t rpc_pipefs sunrpc /var/lib/rpc_pipefs

service rpcidmapd start

Submitted by maya (registered user) on Thu, 2010-03-11 14:42.

Hi...

I configured my openfiler cluster with exactly like this article.

But when i reboot the both filer, i get this error on filer01:

Checking filesystems

/1: clean, 30108/767232 files, 170424/767095 blocks

fsck.ext3: Unable to resolve 'LABEL=/meta'

And I get this error on filer02:

/1: clean, 30108/767232 files, 170424/767095 blocks

fsck.ext3: Unable to resolve 'LABEL=/meta1'

Can anyone help me??? I'm just dispairing. THX

Submitted by sgi (not registered) on Fri, 2010-03-19 04:54.

Maya,

 from the recovery console try:

 e2label /dev/xxx /meta

 (where xxx is your device mounted /meta)

 ~sgi

Submitted by maya (not registered) on Tue, 2010-04-27 14:19.

Hi sgi

You are the best!

 Thank you very much. This resovled my problem!

 Maya

Submitted by Didier (not registered) on Fri, 2010-06-11 02:18.

I'm having the same problem, and even though I add /dev/xxx /data still the problem persist.

This is my /etc/fstab file:

LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext2    defaults        1 2
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
LABEL=/meta1            /meta                   ext3    defaults        1 2
/proc                   /proc                   proc    defaults        0 0
/sys                    /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda3         swap                    swap    defaults        0 0

At the recovery console I type:

e2label /dev/hda5 /meta1

After that I reboot and the problem persist, then I try with the following

e2label /dev/hda5 /meta

After that I reboot and the problem persist.

If I comment the line in the fstab file the system boots fine but Openfiler does not start, complaining that it cannot find /opt/openfiler/etc/httpd/conf/httpd.conf: No such file or directory
/b in/bash: /opt/openfiler/sbin/openfiler: No such file or directory

This is a sample of my /etc/drbd.conf file
resource meta {
        device          /dev/drbd0;
        disk            /dev/hda5;

I have follow the procedure many times already, everything works fine until I reboot the systems.

Any help is appreciated

Sponsored Links: Turn your desk phone and mobile phone into one with Sprint Mobile Integration.
www.seamlessenterprise.com

One number. One voicemail. Seize the lead. Sprint Mobile Integration.
www.seamlessenterprise.com

One Number. One Voicemail.
Make it easier for clients to reach you. Turn your desk phone and mobile phone into one with Sprint Mobile Integration.
www.seamlessenterprise.com

One number. One voicemail. Sprint Mobile Integration.
www.seamlessenterprise.com

One number. one voicemail. Seize the lead with Sprint. Learn more

AT&T Synaptic Compute as a Service. Boost your power on demand.

Trial: IBM Cognos Express Reporting, Analysis & Planning

Learn benefits of Simpana software.
View the Gartner Video

Sprint 4G - The Ultimate Mobile Broadband
Click here

SAP-Business Objects Crystal Reports Server
Complete reporting without hidden costs. Free Trial