自从安装了openfiler 2.99之后,发现跟以前版本的不同之处之一是web管理界面的选项栏里多了个cluster选项,而在openfiler的官方文档里也没有提到openfiler cluster的相关信息。google了下,发现竟有类似的文章,自己搭了个环境研究了下,以下是具体操作过程:

一、准备工作:

1、主机名和IP对应关系见下图:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第1张图片

其中的虚拟IP是用于openfiler对外提供服务的虚拟IP。可以在web管理界面的status拦里看到监听的IP地址是192.168.1.90.如果openfiler服务同一时刻存在于某个节点上,也可以使用它本身的公网IP进行访问。如下图所示,服务当前位于nas01上,所以也可以是192.168.1.91访问openfiler的web管理界面。

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第2张图片

2、磁盘:

nas01和nas02各带一个20G的虚拟磁盘sdb,分了两个分区:Meta分区sdb1(500Mb)和Data分区sdb2。在这里注意,如果你的共享磁盘类型是virtio类型BUS,则使用openfiler管理界面设置LVM时无法对其进行识别,这里使用默认的IDE BUS即可。如图:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第3张图片

3、将以上IP和主机名加入两个节点的hosts文件中:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第4张图片

4、创建SSH等同性:

NAS01:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第5张图片

NAS02:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第6张图片

设置完成后,两个节点就可以使用ssh进行无密码登录了。

二、DRBD的设置:

1、两个节点上编辑/etc/drbd.conf,加入以下内容:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第7张图片

2、创建resource:meta和data:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第8张图片

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第9张图片

创建完成后,两节点启动drbd服务。接着使其中一个节点成为主角色:

p_w_picpath

以上两条命令,在任意一个节点执行即可,完成后,可以查看/proc/drbd获取同步信息:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第10张图片

上面的drbd0大小是500M,同步很快,而drbd1大小近20G,同步起来需要点时间。

3、对drbd0创建文件系统并停止openfiler服务,复制openfiler的相关文件至drbd0上:

主节点nas02上对drbd0格式化:

p_w_picpath

p_w_picpath

nas02上执行行以下命令:

#openfiler to meta-partiton(drbd0)
mkdir /meta
mount /dev/drbd0 /meta
mv /opt/openfiler/ /opt/openfiler.local
mkdir /meta/opt
cp -a /opt/openfiler.local /meta/opt/openfiler
ln -s /meta/opt/openfiler /opt/openfiler
rm -rf /meta/opt/openfiler/sbin/openfiler
ln -s /usr/sbin/httpd /meta/opt/openfiler/sbin/openfiler
rm -rf /meta/opt/openfiler/etc/rsync.xml
ln -s /opt/openfiler.local/etc/rsync.xml /meta/opt/openfiler/etc/
mkdir -p /meta/etc/httpd/conf.d
#Samba/NFS/ISCSI/PROFTPD Configuration Files to Meta Partition
service nfslock stop
umount -a -t rpc-pipefs
mkdir /meta/etc
mv /etc/samba/ /meta/etc/
ln -s /meta/etc/samba/ /etc/samba
mkdir -p /meta/var/spool
mv /var/spool/samba/ /meta/var/spool/
ln -s /meta/var/spool/samba/ /var/spool/samba
mkdir -p /meta/var/lib
mv /var/lib/nfs/ /meta/var/lib/
ln -s /meta/var/lib/nfs/ /var/lib/nfs
mv /etc/exports /meta/etc/
ln -s /meta/etc/exports /etc/exports
mv /etc/ietd.conf /meta/etc/
ln -s /meta/etc/ietd.conf /etc/ietd.conf
mv /etc/initiators.allow /meta/etc/
ln -s /meta/etc/initiators.allow /etc/initiators.allow
mv /etc/initiators.deny /meta/etc/
ln -s /meta/etc/initiators.deny /etc/initiators.deny
mv /etc/proftpd /meta/etc/
#httpd Modules for Openfiler
rm -rf /opt/openfiler/etc/httpd/modules
ln -s /usr/lib64/httpd/modules /opt/openfiler/etc/httpd/modules
#start openfiler
service openfiler start
nas01上运行以下命令:
service openfiler stop
mkdir /meta
mv /opt/openfiler/ /opt/openfiler.local
ln -s /meta/opt/openfiler /opt/openfiler
service nfslock stop
umount -a -t rpc-pipefs
rm -rf /etc/samba/
ln -s /meta/etc/samba/ /etc/samba
rm -rf /var/spool/samba/
ln -s /meta/var/spool/samba/ /var/spool/samba
rm -rf /var/lib/nfs/
ln -s /meta/var/lib/nfs/ /var/lib/nfs
rm -rf /etc/exports
ln -s /meta/etc/exports /etc/exports
rm /etc/ietd.conf
ln -s /meta/etc/ietd.conf /etc/ietd.conf
rm /etc/initiators.allow
ln -s /meta/etc/initiators.allow /etc/initiators.allow
rm /etc/initiators.deny
ln -s /meta/etc/initiators.deny /etc/initiators.deny
rm -rf /etc/proftpd
ln -s /meta/etc/proftpd/ /etc/proftpd
4、Data partition的配置:

两节点修改/etc/lvm/lvm.conf,将”filter = [ "a/.*/" ]”更改为”filter = [ "a|drbd[0-9]|", "r|.*|" ]”。

修改完成后,使用drbd1创建LVM:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第11张图片

三、配置Corosync:

corosync的官方网站:http://www.corosync.org/doku.php?id=welcome

1、使用corosync-keygen生产密钥:

此命令产生的密钥默认名称以及位置是/etc/corosync/authkey文件。最后将其复制到另外一个节点中,更改此文件的属性为只读。

2、创建/etc/corosync/service.d/pcmk文件:

此文件默认不存在,需手工创建,加入以下内容:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第12张图片

最后复制此文件至另外一个节点的对应位置。

3、创建/etc/corosync/corosync.conf文件:

内容如下所示:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第13张图片

复制此文件至另外一个节点的对应位置。

4、在两节点关闭openfiler服务以及nfslock,打开corosync:

p_w_picpath

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第14张图片

完成后,重启两个节点。

5、待两节点起来后,查看corosync服务是否正常启动:

使用ps auxf命令查看corosync进程的相关信息,如下图结构:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第15张图片

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第16张图片

6、配置resource group:

主节点nas02上执行以下命令:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第17张图片

这里创建了1个资源组g_services包含了8个资源,如图所示:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第18张图片

以上命令执行完成后,corosync会在主节点自动启动以上8个资源组,最后使用crm_mon命令查看下结果:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第19张图片

查看corosync的配置信息:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第20张图片

7、手工切换资源组:g_services:

当前的g_services运行在nas02上面:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第21张图片

手工切换至nas01上:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第22张图片

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第23张图片

注意,我的data卷组大小进20G,在配置完这些资源组之后,默认g_services资源组运行在主节点nas02上,而nas01是辅助节点。并且drbd1还处于同步状态,所以当我执行切换操作时报如下错误:

p_w_picpath

待drbd1同步完成后,再次执行切换操作,上述错误会自动消失。

8、corosync支持的资源代理程序:

这些脚本位于/usr/lib/ocf/resource.d目录下。

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第24张图片

9、corosync的日志:

corosync的日志文件位于/var/log/cluster目录下,名称是corosync.log。这个文件里包含了corosync的服务的详细信息,如果在配置过程中,出现错误,可以从这个文件中获取一些线索。

四、Openfiler的配置:

当Openfiler Cluster配置完成后,会在openfiler的管理界面的Volumes拦里出现之前创建的data卷组,如图所示:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第25张图片

在Services栏里,不用手工启用某些服务,cluster会自动启动这些服务的,如图:

Using KVM Configure Openfiler 2.99 Active/Passive Cluster_第26张图片

后续就是创建逻辑卷,设置ISCSI这里就不再描述了。

参考文献:

    1、Openfiler 2.3 HA

    2、Openfiler 2.99 HA

    3、从?头?开?始?搭?建?集?群