Openfiler 2.99 Active/Passive With Corosync, Pacemaker And DRBD
Openfiler 2.99 Active/Passive With Corosync, Pacemaker And DRBDOpenfiler is a Linux based NAS/SAN Application which can deliver storage over nfs/smb/iscsi and ftp. It has a web interface over that you can control these services. This howto is based on the latest version of openfiler at this date, you can download it from the official homepage www.openfiler.com. Thanks to the Openfiler team that made this howto possible.
1. Create Systems with following setup:
virtualip: 10.10.11.105 ( don't use on any adapter, we will make this later with corosync )
1.1 Create hosts file for easier accessroot@filer01 ~# nano /etc/hosts Add: 10.10.50.102 filer02 root@filer01 ~# nano /etc/hosts On filer02 add: 10.10.50.101 filer01
1.2 Create/Exchange SSH Keys for easier file exchangeroot@filer01 ~# ssh-keygen -t dsa Generating public/private dsa key pair. Do the same on filer02. root@filer02 ~# ssh-keygen -t dsa Then exchange the files: root@filer01 ~# scp ~/.ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys root@filer02 ~# scp ~/.ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys And now you can exchange files between the nodes without entering a password.
2. Create meta/data Partition on both filersBefore we can actually start the cluster we have to prepaire both systems and let the data and meta partition sync before it can be used by corosync/pacemaker as the first cluster config will start drbd and take over the control of this service. So we prepaire our partitions this time before we do the actual cluster configuration as we did in openfiler 2.3.
2.1 Create DRBD SetupEdit /etc/drbd.conf on filer01 and filer02: # You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
#include "drbd.d/*.res";
resource meta {
on filer01 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.10.50.101:7788;
meta-disk internal;
}
on filer02 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.10.50.102:7788;
meta-disk internal;
}
}
resource data {
on filer01 {
device /dev/drbd1;
disk /dev/sdb2;
address 10.10.50.101:7789;
meta-disk internal;
}
on filer02 {
device /dev/drbd1;
disk /dev/sdb2;
address 10.10.50.102:7789;
meta-disk internal;
}
}
After that create the meta-data on it, if you get errors when this happens, please empty out the filesystem with, if you have anything in /etc/fstab related to the partitions /meta then remove these lines. ( This happens when you create the meta partitions in the installation phase ). dd if=/dev/zero of=/dev/drbdX root@filer01 ~# drbdadm create-md meta root@filer02 ~# drbdadm create-md meta Now you can start up drbd with: service drbd start on both nodes. Make one node primary: root@filer01 ~# drbdsetup /dev/drbd0 primary -o
2.2 Prepare the Configuration Partitionroot@filer01 ~# mkfs.ext3 /dev/drbd0 root@filer01 ~# service openfiler stop
2.2.1 Openfiler to meta-Partitionroot@filer01 ~# mkdir /meta
2.2.2 Samba/NFS/ISCSI/PROFTPD Configuration Files to Meta Partitionroot@filer01 ~# service nfslock stop
2.2.3 httpd Modules for Openfilerroot@filer01 ~# rm /opt/openfiler/etc/httpd/modules Now do a start and see if Openfiler can run: root@filer01 ~# service openfiler start
2.2.4 filer02 Openfiler Configurationroot@filer02 ~# service openfiler stop
2.2.5 Samba/NFS/ISCSI/ProFTPD Configuration Files to Meta Partitionroot@filer02 ~# service nfslock stop
2.3 Prepare the Data PartitionChange the lvm filter in the /etc/lvm/lvm.conf file from:filter = [ "a/.*/" ] to filter = [ "a|drbd[0-9]|", "r|.*|" ] Exchange this file to the other filer node root@filer01 ~# scp /etc/lvm/lvm.conf root@filer02:/etc/lvm/lvm.conf After that we can create the actual used stuff: root@filer01 ~# pvcreate /dev/drbd1
3. Start Corosync and create a configuration for it:3.1 Create Corosync authkeyroot@filer01~# corosync-keygen ( Press the real keyboard instead of pressing keys in an ssh terminal. ) Copy the authkey file to the other node and change the fileaccess: root@filer01~# scp /etc/corosync/authkey root@filer02:/etc/corosync/authkey
3.2 Create a file named pcmk /etc/corosync/service.d/pcmkroot@filer01~# vi /etc/corosync/service.d/pcmk service {
# Load the Pacemaker Cluster Resource Manager
name: pacemaker
ver: 0
}
3.2.1 Exchange this file to the other noderoot@filer01~# scp /etc/corosync/service.d/pcmk root@filer02:/etc/corosync/service.d/pcmk
3.3 Create the corosync.conf file and change it to present your lan net ( bindnetaddr )root@filer01~# vi /etc/corosync/corosync.conf # Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 10.10.50.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
3.3.1 Exchange the file to the other noderoot@filer01~# scp /etc/corosync/corosync.conf root@filer02:/etc/corosync/corosync.conf
|



Recent comments
1 day 11 hours ago
1 day 14 hours ago
1 day 15 hours ago
1 day 17 hours ago
1 day 18 hours ago
1 day 20 hours ago
1 day 21 hours ago
2 days 13 hours ago
2 days 14 hours ago
2 days 18 hours ago