背景:4台HP DL380G5的机器,配置为2颗4核2.5G的cpu,32G内存;1台HP MSA2000SAS型号的磁盘柜,做了raid6,有6T空间。机器全部安装RHEL5.1的64位AP版本。现需要4台机器可同时并发读写磁盘柜。
充 分比较了GFS和OCFS2这两个集群文件系统后,选择了GFS。原因:GFS比OCFS2更稳定。当然GFS配置要比OCFS2复杂,而且是要收费的。 OCFS2是甲骨文领导的一个开源项目,免费,主要用于自身做RAC时共享文件系统的一个选择。
根据项目需要,在磁盘柜划分了4个分区。其 中名为upload,容量为4T的分区(/dev/sda)用于存储数据,LUM号为同一个,都为8。将4个分区推送给直连磁盘柜的4台机器。本项目数据 库采用Oracle10g,也使用了OCFS2+ASM的存储机制来做RAC。
1.在4台机器上分别按顺序手工安装GFS软件包,清单如 下:
rpm -Uvh perl-Net-Telnet-3.03-5.noarch.rpm ######(rpm包在RHEL5安装盘第3张的Server目录里)
rpm -Uvh openais-0.80.2-1.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第3张的Server目录里)
rpm -Uvh cman-2.0.60-1.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第3张的Server目录里)
rpm -Uvh gfs2-utils-0.1.25-1.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第3张的Server目录里)
rpm -Uvh gfs-utils-0.1.11-1.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第6张的Cluster目录里)
rpm -Uvh kmod-gfs-0.1.16-5.2.6.18_8.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第6张的Cluster目录里)
rpm -Uvh lvm2-cluster-2.02.16-3.el5.x86_64.rpm ######(rpm包在RHEL5安装盘第6张的Cluster目录里)
rpm -Uvh system-config-cluster-1.0.39-1.0.noarch.rpm ######(rpm包在RHEL5安装盘第6张的Cluster目录里)
rpm -Uvh rgmanager-2.0.23-1.x86_64.rpm ######(rpm包在RHEL5安装盘第6张的Cluster目录里)
2. 配置/etc/hosts,主机名和ip对应如下:
127.0.0.1 localhost
192.168.9.61 web1
192.168.9.62 web2
192.168.9.63 rac1
192.168.9.64 rac2
3.修改每台机器的/etc/lvm /lvm.conf,将locking_type值由默认的1改为3。
4.在web1上执行system-config-cluster。 步骤如下:
⑴.命名cluster(点击"Cluster",然后点击""Create New Configuration")
⑵.添 加每个节点 (点击"Cluster Nodes",然后点击"Add a Cluster Node",我这里的cluster node name和quorum votes分别为web1,1;web2,2;rac1,3;rac2,4;是4台机器的主机名顺序下来)
⑶.设置 fence设备 (点击"Fence Devices",然后点击"Add a Fence Device")。备注:fence设备用于监控哪台机器挂了,是集群套件RHCS的一个组件,由于我这边只共享磁盘,所以选择"Manual Fencing", 命名为"webfence"。
⑷.在每个节点上添加一个fence设备 (点击设备节点名,点击"Manage Fencing for This Node";点击"Add a New Fence Level";点击 "Fence-Level-1",点击"Add a New Fence to This Level";最后选择名为的webfence的fence设备。
⑸.共享盘阵,所以不需要创建任何“Services”或 “Resources”。
⑹.保存配置,然后把配置拷贝到所有节点的/etc/cluster目录下。
⑺.配置好的 cluster.conf全文如下:
<?xml version="1.0"?>
<cluster config_version="2">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode nodeid="1" votes="1">
<fence>
<method>
<device nodename="web1"/>
</method>
</fence>
</clusternode>
<clusternode nodeid="2" votes="2">
<fence>
<method>
<device nodename="web2"/>
</method>
</fence>
</clusternode>
<clusternode nodeid="3" votes="3">
<fence>
<method>
<device nodename="rac1"/>
</method>
</fence>
</clusternode>
<clusternode nodeid="4" votes="4">
<fence>
<method>
<device nodename="rac2"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman/>
<fencedevices>
<fencedevice agent="fence_manual"/>
</fencedevices>
<rm>
<failoverdomains/>
<resources/>
</rm>
</cluster>
5. 将GFS组件添加为开机自启动,以下命令在每台机器上执行:
chkconfig --add cman
chkconfig --add clvmd
chkconfig --add gfs
chkconfig --add rgmanager
chkconfig --level 345 cman on
chkconfig --level 345 clvmd on
chkconfig --level 345 gfs on
chkconfig --level 345 rgmanager on
可通过chkconfig --list |grep "3:on"查看服务加载结果。
6.由于cman存在一个bug,需在每台机器上执行如下命令创建一个软链 接:
ln -s /usr/sbin/cman_tool /sbin/cman_tool
7.在web1上启动GFS服务:
service cman start
service clvmd start
service gfs start
service rgmanager start