设置环境如下,两节点操作共享文件:
l 192.168.30.206 hdnode4
l 192.168.30.207 hdnode5
l OS: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安装软件包:
# yum install cman openais gfs* kmod-gfs lvm2* rgmanager system-config-cluster scsi-target-utils cluster-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,增加下列内容:
而后可以执行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 -j 2 -p lock_dlm -t gfs_cluster:data3 /dev/vg_search1/lv_sdisk1
对于mkfs.gfs2命令来说,我们所使用的参数功能如下:
l -p:用来指定gfs的锁机制,一般情况下会选择lock_dlm,如果要选择类型,可以参考:online.
l -j:指定journal个数(可加入节点数),一般情况下应留有冗余,否则后期还得再调整;
n 查看journals:# gfs2_tool journals /data3
n 增加journals:# gfs2_jadd -j1 /data3 ##增加一个journals
l -t:格式为ClusterName:FS_Path_Name
u ClusterName:应与前面cluster.conf中指定的集群名称相同;
u FS_Path_Name:这个块设备mount的路径;
l 最后一个参数是指定逻辑卷的详细路径;
创建目录:
# mkdir /data3
将刚刚创建的逻辑卷加入到/etc/fstab文件中,使其开机自动映射:
# echo "/dev/vg_search1/lv_sdisk1 /data3 gfs2 rw,relatime 0 0" >> /etc/fstab
启动gfs2服务:
# service gfs2 start
节点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