免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5758 | 回复: 15

gnbd+gfs+RHCS+mdadm能否实现这样的功能 [复制链接]

论坛徽章:
0
发表于 2008-03-10 16:33 |显示全部楼层
27可用积分
现有四台存储服务器和两台应用服务器。我想知道用gnbd+gfs+RHCS+mdadm 能否实现这样的功能:当通过任意一台应用服务器写入一个文件到存储服务器时,该文件是被stripe到这四台存储服务器中,而且,当其中的一台存储服务器挂掉后,集群仍能正常运作(像raid5那样)。
我是这么做的。在四台存储服务器上,分别用gnbd_export将各自的/dev//hdb1 导出。 然后在其中的一台应用服务器上用 gnbd_import将四台存储服务器上的/dev/hdb1都导入。然后,用
mdadm -C /dev/md0 -l5 -n4 /dev/gnbd[0-3]
将这四个/dev/hdb1 做成raid5 ,接着在这台应用服务器上将/dev/md0导出再导入,然后用  
gfs_mkfs -p lock_dlm -t bob_cluster:gfs -j 2 /dev/gnbd/md0
建立gfs 文件。 最后将它挂载到 /mnt/gfs.
在另一台应用服务器上,将前面那台应用服务器导出的 /dev/md0 导入,然后也挂载到/mnt/gfs 上。
分别在这两台应用服务器上的/mnt/gfs 目录写入文件,均能正常写入。而且能互相看到更新的文件。但是,当将任意一台存储服务器断开网络后,往/mnt/gfs里touch 一个文件能执行,但是 ls  /mnt/gfs时 就一直停止在那里无法显示结果,直到将断开的服务器重新接入网络才能显示出结果。这就和我想要的效果有出入了 。
哪位大虾可否指点下,我这种方法是否可行,如果可行那我是在那个步骤做错了。如果不行,还有什么方法可实现我想要的效果呢? 谢谢!

具体配置如下:

四台服务器分别名为:svr1,svr2,svr3,svr4  (每台都有个已分区类型为:FD 的/dev/hdb1 设备)
两台应用服务器分别名为:app1,app2

在四台存储服务器上分别导出设备:
[root@svr1]# gnbd_serv -v -n
[root@svr1]# gnbd_export -v -e gfs1 -d /dev/hdb1 -c

[root@svr2]# gnbd_serv -v -n
[root@svr2]# gnbd_export -v -e gfs2 -d /dev/hdb1 -c

[root@svr3]# gnbd_serv -v -n
[root@svr3]# gnbd_export -v -e gfs3 -d /dev/hdb1 -c

[root@svr4]# gnbd_serv -v -n
[root@svr4]# gnbd_export -v -e gfs4 -d /dev/hdb1 -c


在两台应用服务器上分别执行:
[root@app1]# service cman start
[root@app2]# service cman start

[root@app1]# service gfs start
[root@app2]# service gfs start

[root@app1]# service rgmanager start
[root@app2]# service rgmanager start

/etc/cluster/cluster.conf的配置文件如下:

<?xml version="1.0" ?>
<cluster config_version="1" name="bob_cluster">
    <cman/>
        <clusternodes>
            <clusternode name="app1" nodeid="1" votes="1">
                <fence>
                    <method name="single">
                        <device name="trin-apc" nodename="app1"/>
                    </method>
                </fence>
            </clusternode>
            <clusternode name="app2" nodeid="2" votes="1">
                <fence>
                    <method name="single">
                        <device name="trin-apc" nodename="app2"/>
                    </method>
                </fence>
            </clusternode>
        </clusternodes>
        <fencedevices>
            <fencedevice agent="fence_manual" name="trin-apc"/>
        </fencedevices>
</cluster>


在app1和app2上分别加载模块:
[root@app1]# modprobe gnbd
[root@app2]# modprobe gnbd

在app1上导入svr1-4的/dev/hdb1设备
[root@app1]# gnbd_import -v -i svr1
[root@app1]# gnbd_import -v -i svr2
[root@app1]# gnbd_import -v -i svr3
[root@app1]# gnbd_import -v -i svr4

在app1上对导入的四个/dev/hdb1做raid5
[root@app1]# mdadm -C /dev/md0 -l5 -n4 /dev/gnbd[0-3]

在app1上将/dev/md0导出
[root@app1]# gnbd_serv -v -n
[root@app1]# gnbd_export -v -e md0 -d /dev/md0 -c

在app1和app2上分别导入/dev/md0
[root@app1]# gnbd_import -v -i app1
[root@app2]# gnbd_import -v -i app1

在app1和app2上分别加载gfs和lock_dlm
[root@app1]# modprobe gfs
[root@app2]# modprobe gfs
[root@app1]# modprobe lock_dlm
[root@app2]# modprobe lock_dlm

在app1上建立gfs文件系统
[root@app1]# gfs_mkfs -p lock_dlm -t bob_cluster:gfs -j 2 /dev/gnbd/md0

挂载文件系统
[root@app1]# mount -t gfs /dev/gnbd/md0 /mnt/gfs
[root@app2]# mount -t gfs /dev/gnbd/md0 /mnt/gfs


PS:就这么多分了,无法给再多的,抱歉。

[ 本帖最后由 yman 于 2008-3-11 11:03 编辑 ]

最佳答案

查看完整内容

修改/sbin/fence_manual为#!/bin/bashexit 0我想就可以了.

论坛徽章:
0
发表于 2008-03-10 16:33 |显示全部楼层
修改/sbin/fence_manual为
#!/bin/bash
exit 0
我想就可以了.

论坛徽章:
0
发表于 2008-03-10 23:07 |显示全部楼层
可能是fence配置有问题.只有问题,没有相关环境,无法准确判断.

论坛徽章:
0
发表于 2008-03-11 11:04 |显示全部楼层
原帖由 wysilly 于 2008-3-10 23:07 发表
可能是fence配置有问题.只有问题,没有相关环境,无法准确判断.


具体配置帖出来了  麻烦wysilly兄帮忙看下! 谢谢了。

论坛徽章:
0
发表于 2008-03-11 12:49 |显示全部楼层
自己顶下,其他的大虾能否指点下。谢谢!

论坛徽章:
0
发表于 2008-03-12 11:19 |显示全部楼层
再顶一下,谁来指点下阿。

论坛徽章:
0
发表于 2008-03-14 00:31 |显示全部楼层
你使用的系统版本和cluster suit以及gfs版本是什么?

这个结构中,我没有用过gnbd,因为那个东西现在很少人用了,毕竟性能有点差。但我可以从cluster角度看,这个cluster的配置并不完整。你可以把所有的资源加到服务组里面试一下。

论坛徽章:
0
发表于 2008-03-14 14:26 |显示全部楼层
系统是centos release 5 (Final) ,cluster suit以及gfs都是系统自带的

论坛徽章:
0
发表于 2008-03-14 22:23 |显示全部楼层
原帖由 jerrywjl 于 2008-3-14 00:31 发表
你使用的系统版本和cluster suit以及gfs版本是什么?

这个结构中,我没有用过gnbd,因为那个东西现在很少人用了,毕竟性能有点差。但我可以从cluster角度看,这个cluster的配置并不完整。你可以把所有的资源 ...



看来这个东西我要自己找环境配一下,但是我不明白的是LZ为什么非要用GNBD做存储呢?!那个东西的性能,唉!。。。。。。

论坛徽章:
0
发表于 2008-03-15 12:19 |显示全部楼层
原帖由 jerrywjl 于 2008-3-14 22:23 发表



看来这个东西我要自己找环境配一下,但是我不明白的是LZ为什么非要用GNBD做存储呢?!那个东西的性能,唉!。。。。。。

我并不是一定要GNBD,只是不知道有什么可以代替它,你能否介绍下。或者GNBD+GFS+RHCS+MDADM全都换掉另外用别的工具都行,只要能满足我的需求。在网上搜了好久的资料都没找到适合我的,多数都是用共享同一存储柜,或者有做并行的,但是存储服务器之间却没有象raid5那样的功能。建议jerrywjl兄有时间配置一下,然后共享一下,供有需要的人学习。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP