GFS的配置及应用

I.前言



经过这一段时间的配置以及测试,gfs(globe file system)对于我们的邮件系统已经到了一个可以应用的阶段,这里包含老祝和韩麟同学的共同努力,还有黄亚洲同学的支持,下面我把配置方法过程写下:



一、安装操作系统以及GFS套件包

我们这次配置用的标准平台是centOS5.3,因为安装GFS软件的时候需要很多其他cluster软件的支持,centOS只要在安装的时候选择安装”cluster”套件,就会把我们所需要的所有软件同时安装上,而RedHat要花钱注册才能选择套件的安装,而软件内容和centOS的是相同的。(韩麟同学在as4u7上通过rpm包安装了gfs也是可行的,但是相对要麻烦一些而且不支持gfs2)



接下来就说安装操作系统,这里我就以centOS5.3为例,前面没有什么好说的,到后边选择安装包的时候我们会发现centOS5(以及RedHat5)和他们以前的版本不同了,多了一个选择安装套件的选项,我们除了不选择Server-GUI的那个剩下的 Cluster、Cluster Storage、Server、Virtualization等,接下来再选择用户自定义安装,安装剩下的那些包,这里强烈建议不要去除系统默认选则的图像化界面安装包,虽然我们的服务不启动图形化界面,但是依然建议这样做有2个原因:

1. 有些软件支持在默认的图形化包中。

2. 有些硬件驱动要求必须在图形化界面中安装。

再有就是现在服务器硬盘普遍都比较大,这些包相对就不算大了。

另外就是不要忘记安装gcc之类的开发环境。



安装完操作系统,关闭没用的服务,关闭防火墙和selinux就算把环境搭好了,非常简单。





II.配置GFS





一、 拓扑图

GFS在CentOS5.3的配置 - kaif - kaif4tec 的博客



二、 配置文件



首先要创建配置文件,文件位置是:/etc/cluster/cluster.conf这个文件默认是没有的需要我们手工生成,只要把下面内容粘贴进去即可(也可以使用图形界面配置后自动生成)。

<?xml version="1.0"?>

<cluster alias="gfs_cluster" config_version="8" name="gfs_cluster">

<fence_daemon post_fail_delay="0" post_join_delay="3"/>

<clusternodes>

<clusternode name="gfs1" nodeid="1" votes="1">

<fence>

<method name="1">

<device name="1" nodename="gfs1"/>

</method>

</fence>

</clusternode>

<clusternode name="gfs2" nodeid="2" votes="1">

<fence>

<method name="1">

<device name="1" nodename="gfs2"/>

</method>

</fence>

</clusternode>

</clusternodes>

<cman expected_votes="1" two_node="1"/>

<fencedevices>

<fencedevice agent="fence_manual" name="1"/>

</fencedevices>

<rm>

<failoverdomains/>

<resources/>

</rm>

</cluster>



之后保存退出。



对于该配置文件我要简要说明一下:

<cluster alias="gfs_cluster" config_version="8" name="gfs_cluster">

这一行定义了cluster的名称,其中config_version是表示该配置文件被配置的次数

(在RedHat Cluster中,各个节点是同配置版本数值也就是配置次数最高的配置文件进行学习同步报)。



<clusternode name="gfs1" nodeid="1" votes="1">

这一行定义了cluster节点的名称,节点id以及投票权,节点名一般就是节点的主机名。

主机名和ip的对应该关系不要忘记写到/etc/hosts中



<clusternode name="gfs2" nodeid="2" votes="1">

这一行是节点2的定义,本次gfs的研究配置我们主要做的就是双节点的实验测试,有兴趣的朋友们可以试试多节点的配置,这里就先不详细介绍了。



配置文件中写有fence的内容这里说明一下:

fence也是RedHat Cluster的产物,没有它GFS也没法工作,fence的作用就是当一个节点宕掉(和cluster断掉联系)后,其他的正常节点会通过fence设备来把宕掉的设备fence掉,把宕掉的设备踢出cluster保证整个cluster的正常运行,而fence设备一般是服务器自带硬件设备,如hp的ilo口,IBM和dell的ipmi等等,由于服务器硬件的不同,导致不同的fence设备的配置方法不同,所以我没有把fence设备的配置方法写出来,但是我写了一个通用的,手工fence的配置,手工fence的功能是:当一个节点宕掉后我们需要在正常的节点上输入命令:“# fence_ack_manual -n 宕掉的节点名 ” 来把于cluster的主机隔离掉,才能让正常的节点正常工作。

然而在RedHat Cluster的官方文档中,并不建议设置这种手工fence,它只被建议用在测试环境下,尤其是在生产环境中,原因就是人工判断的不够准确:如果宕掉的机器无法连接到cluster但是还在占用cluster资源(例如还在访问共享文件系统),这时候我们通过命令fence_ack_manual -n 宕掉的节点名 告诉正常的节点已经成功隔离了宕掉的设备,这个时候正常的节点也会继续访问资源,导致冲突发生,文件系统产生崩溃(即便是GFS系统,没有了cluster的调度调整,也会发生这种崩溃)。



配置文件的内容大概介绍到这里,我们需要把每个节点都写上这个配置文件。



三、 格式化GFS文件系统

通过命令:

gfs_mkfs -p lock_dlm -t ClusterName:FSName -j Number BlockDevice

格式化gfs文件格式

-p 这个参数后边跟的是gfs锁机制,一般情况下就用lock_dlm

-t 后边是ClusterName:FSName

其中ClusterName是cluster名,就是配置文件中指定的cluster名,FSName是给新格式化好的gfs分区的名字

-j 代表是journal的个数,一般情况是2个除非一些特殊情况否则不用再单作调整(关于journal经过我查阅文档,发现它是一个类似缓存的机制,读写的内容可以先放到journal上,然后再同步到硬盘中)。

BlockDevice 就是要被格式化的设备名称。



下面是一个格式化GFS命令的实例:

gfs_mkfs -p lock_dlm -t gfs_cluster:gfsvir -j 2 /dev/sdb1

*上述步骤在一个节点上执行即可。



四、 启动Cluster

通过命令:

/etc/init.d/cman start

即可启动RedHat Cluster,如果Cluster不启动,GFS文件系统无法挂载。



五、挂载GFS文件系统

把格式化好的GFS分区,挂载上,即可

mount /dev/sda1 /data

另一个节点也挂载上该分区。GFS的基本功能就可以用了,我们可以把我们邮件的共享文件夹放到GFS分区上,如:Mail、Tmp、MailTmp、Domain、video、Share等。

III.结束语

没有写太多东西,把GFS的主要的基本配置方法写出来,可以直接使用配置GFS了,但是GFS还可以配合Redhat中lvm和lvs使用,可以使GFS更加方便强大这里就不详述了,这些东西RedHat都有官方的文档,有兴趣的朋友可以更深入的研究。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值