设置环境如下,两节点操作共享文件:
l192.168.30.206hdnode4
l192.168.30.207hdnode5
lOS:CentOS6.3+FC-SAN盘柜
以下操作如非特别注明,则需要在所有的节点上执行。
配置网络
编辑hosts文件,使两节点间可通过主机名访问:
# more /etc/hosts 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 192.168.30.206 hdnode4 192.168.30.207 hdnode5
使用yum安装软件包:
#yuminstallcmanopenaisgfs*kmod-gfslvm2*rgmanagersystem-config-clusterscsi-target-utilscluster-snmp
停止iptables服务
上述软件包有众多的依赖包会被安装或更新,为避免出现意外情况,建议软件包安装后重启。
修改相关配置
修改/etc/selinux/config中selinux=disabled
修改lvm逻辑卷配置:
#vi/etc/lvm/lvm.conf
将locking_type=1,改为locking_type=3,允启用同时读写。
修改fallback_to_local_locking=0,以禁止回写,避免导致裂脑。
集群配置文件
编辑/etc/cluster/cluster.conf,增加下列内容:
<?xml version="1.0"?> <cluster config_version="2" name="gfs_cluster"> <fence_daemon post_fail_delay="0" post_join_delay="3"/> <clusternodes> <clusternode name="hdnode4" nodeid="1" votes="1"> <fence> <method name="1"> <device name="manual_fence" nodename="hdnode4"/> </method> </fence> </clusternode> <clusternode name="hdnode5" nodeid="2" votes="2"> <fence> <method name="1"> <device name="manual_fence" nodename="hdnode5"/> </method> </fence> </clusternode> </clusternodes> <cman/> <fencedevices> <fencedevice agent="fence_manual" name="manual_fence"/> </fencedevices> <rm> <failoverdomains/> <resources/> </rm> </cluster>
而后可以执行ccs_config_validate命令检查配置文件是否合法。
集群存储
先手动启动cman和clvmd命令,以便监控集群卷的中存储设备的状态:
# service cman start # service clvmd start # service rgmanager start
以下操作在节点1端执行:
创建物理卷和卷组和逻辑卷:
# pvcreate /dev/sdc # vgcreate vg_search1 /dev/sdc # pvs PV VG Fmt Attr PSize PFree /dev/sdc vg_search1 lvm2 a-- 1020.00m 1020.00m 创建一个200m的逻辑卷: [root@hdnode4 ~]# lvcreate -L 1000m -n lv_sdisk1 vg_search1 Logical volume "lv_sdisk1" created [root@hdnode4 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lv_sdisk1 vg_search1 -wi-a--- 200.00m
在新建的逻辑卷上创建gfs2文件系统:
#mkfs.gfs2-j2-plock_dlm-tgfs_cluster:data3/dev/vg_search1/lv_sdisk1
对于mkfs.gfs2命令来说,我们所使用的参数功能如下:
l-p:用来指定gfs的锁机制,一般情况下会选择lock_dlm,如果要选择类型,可以参考:online.
l-j:指定journal个数(可加入节点数),一般情况下应留有冗余,否则后期还得再调整;
n查看journals:#gfs2_tooljournals/data3增加journals:#gfs2_jadd-j1/data3##增加一个journals-t:格式为ClusterName:FS_Path_Name
uClusterName:应与前面cluster.conf中指定的集群名称相同;FS_Path_Name:这个块设备mount的路径;最后一个参数是指定逻辑卷的详细路径;
创建目录:
#mkdir/data3
将刚刚创建的逻辑卷加入到/etc/fstab文件中,使其开机自动映射:
#echo"/dev/vg_search1/lv_sdisk1/data3gfs2rw,relatime00">>/etc/fstab
启动gfs2服务:
#servicegfs2start
节点2端执行:
操作前可以先执行pvs,lvs命令,看看是否能够正常显示节点1端创建的物理卷和逻辑卷信息,如果看不到(先尝试lvscan),则说明并未使用共享存储,或者配置有异常,仍然需要排查,需要等问题解决后,再执行下列的命令。
# mkdir /data3 # echo "/dev/vg_search1/lv_sdisk1 /data3 gfs2 rw,relatime 0 0" >> /etc/fstab # service gfs2 start
执行#clustat可以查询各成员节点的状态。
[root@hdnode5 ~]# clustat Cluster Status for gfs_cluster @ Thu Mar 3 15:47:44 2013 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ hdnode4 1 Online hdnode5 2 Online,Local
在所有节点操作,配置服务的自动启动,这样就不必担心服务器重启了:
# chkconfig --add cman # chkconfig --add clvmd # chkconfig --add gfs2 # chkconfig --add rgmanager # chkconfig --level 345 cman on # chkconfig --level 345 clvmd on # chkconfig --level 345 gfs2 on # chkconfig --level 345 rgmanager on