免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 20533 | 回复: 23
打印 上一主题 下一主题

[FreeBSD] FreeBSD下建立MFS分布式文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-06 20:14 |只看该作者 |正序浏览
MFS分布式文件系统架设笔记
什么是MFS文件系统?
    Moose File System 是一个具备容错功能的网络分布式文件系统,它将数据分布在网络中的不同服务器上,MooseFS 通过 FUSE 使之看起来就是一个 Unix 的文件系统。
MFS文件系统个人理解: 将分布在各个范围的计算机,将他们未使用的分区统一进行管理使用的一种文件系统.

MFS文件系统结构:
包含3种角色:
        管理服务器managing server (master)
        数据存储服务器data servers (chunkservers)
        客户机挂载使用client computers

个人理解3种角色作用:
        管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
        数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间.
        客户端:挂接远程管理服务器上所管理的数据存储服务器,通过fuse内核接口.看起来共享的文件系统和
本地unix文件系统使用一样的效果.


架设过程:

服务器2台
(最少是2台,一台服务器做管理服务器,数据存储服务器,以及客户端3种角色,另外一台计算机做数据存储和客户端)
称第1台计算机为A机,机器上跑3种角色,第2台计算机称B机,跑两种角色.要是你计算机多的话可以只跑1种客户端角色或者数据存储角色,根据具体情况决定.
操作系统:FreeBSD6.x or Freebsd 7.x   minni安装 升级ports树
1.在A机器上安装
  1. /sysutils/fusefs-kmod
  2. ./devel/pkg-config
复制代码

这两个ports包
pkg_info的结果为
  1. b# pkg_info
  2. fusefs-kmod-0.3.9.p1.20080208 Kernel module for fuse
  3. fusefs-libs-2.7.2_1 FUSE allows filesystem implementation in userspace
  4. libiconv-1.9.2_2    A character set conversion library
  5. pkg-config-0.21     A utility to retrieve information about installed libraries
  6. b#
复制代码
然后在rc.conf中添加
  1. fusefs_enable="YES"
复制代码

2.在http://www.moosefs.com/index.html下载mfs-1.5.12.tar.gz
  1. #fetch [url]http://www.moosefs.com/files/mfs-1.5.12.tar.gz[/url]
  2. #tar xvzf mfs-1.5.12.tar.gz
  3. #cd mfs-1.5.12
  4. #./configure (这样制作出来的bin文件和sbin文件以及元数据在/usr/local/sbin和/usr/local/bin,配置文件在/usr/local/etc 元数据存放在/usr/local/var/mfs下)  默认不带任何参数编译出来的,可以做数据和管理服务器.
  5. #make && make install 就完成了两种角色服务器的安装
复制代码

##################下面是在A机上编译出客户机的执行文件#################################
  1. #make clean && ./configure --prefix=/clien --enable-mfsmount && make && make install
复制代码
即可,在/client目录下就产生了一个mfs的客户端连接软件
2.在B机器上安装
  1. /sysutils/fusefs-kmod
  2. ./devel/pkg-config
复制代码
这两个ports包
pkg_info的结果为
  1. b# pkg_info
  2. fusefs-kmod-0.3.9.p1.20080208 Kernel module for fuse
  3. fusefs-libs-2.7.2_1 FUSE allows filesystem implementation in userspace
  4. libiconv-1.9.2_2    A character set conversion library
  5. pkg-config-0.21     A utility to retrieve information about installed libraries
  6. b#
复制代码

然后在rc.conf中添加
  1. fusefs_enable="YES"
复制代码

2.在http://www.moosefs.com/index.html下载mfs-1.5.12.tar.gz
  1. #fetch [url]http://www.moosefs.com/files/mfs-1.5.12.tar.gz[/url]
  2. #tar xvzf mfs-1.5.12.tar.gz
  3. #cd mfs-1.5.12
  4. #./configure --disable-mfsmaster --enable-mfsmount(这样制作出来的二进制文件可以做数据存储服务器和有了mfsmount文件,默认编译是没有mfsmount的).
  5. #make && make install 就完成了数据存储角色服务器和客户端的安装
复制代码


下面开始配置
A机器上挂载一个空闲的,比较大的分区
  1. #mount /dev/ad1s1 /mnt/mfs
  2. #cd /usr/local/etc
  3. #ls
  4. -rw-r--r--  1 root  wheel  434 Mar 31 11:34 mfschunkserver.cfg
  5. -rw-r--r--  1 root  wheel   36 Mar 31 11:34 mfshdd.cfg
  6. -rw-r--r--  1 root  wheel  425 Mar 31 11:34 mfsmaster.cfg
复制代码


解释这3个文件的作用
mfsmaster.cfg是管理服务器初始化文件,不需要任何修改既可使用.里面主要就是设置监听端口这些.
我们用默认既可
mfschunkserver.cfg是数据存储文件配置文件.当数据存储和管理服务器不在一起的时候,要修改
  1. # MASTER_HOST = mfsmaster  这个值为管理服务器的ip地址或主机名
  2. # MASTER_PORT = 9420
  3. mfshdd.cfg这个是在mfschunkserver.cfg中制定的文件名,这个文件里面存放本地存储分区路径.
  4. 我这里mfshdd.cfg内容就是一行
  5. #cat mfshdd.cfg
  6. /mnt/mfs
  7. #
复制代码
启动顺序
启动管理服务器 ----->启动数据存储服务器---->挂接管理服务器mfs文件系统
  1. #/usr/local/sbin/mfsmaster start
复制代码
  1. #netstat -na|grep 942 看是否有两个942* 为listen的端口,若有就开启成功了.
  2. #/usr/local/sbin/mfschunkserver start
  3. #netstat -na|grep 942 查看是不是多了一个9422的端口,若有则开启成功了
  4. 也可以使用sockstat -4查看
复制代码

如果启动不成功,一般情况就是挂载目录权限问题.默认编译的mfs是按nobody权限来的.要修改/mnt/mfs权限为nobody既可.
经过上面两部管理服务器和存储服务器就启动起来了.下面是进行本地挂载和在B机器上挂载
在A机器上 执行
  1. #/client/bin/mfsmount -h A机ip -w /mfs   将管理机ip 挂接到/mfs目录
复制代码

A机器上就可以使用mfs系统了,挂接点是/mfs

下面是加入B机的数据存储和B机自己使用mfs
B机
#配置挂接空闲的,比较大的分区,然后修改mfshdd.cfg内容为挂接地点.修改mfschunkserver.cfg的MASTER_HOST =值
启动mfschunkserver
  1. #/usr/local/sbin/mfschunkserver start
复制代码

挂接管理机的mfs文件系统
  1. #/client/bin/mfsmount -h A机ip -w /mfs
复制代码


我在做MFS试验的时候,田逸给了我些帮助,在这里感谢他。

用vmware做mfs数据存储服务器的时候,虚拟的硬盘一定要大点,最好大于256M的硬盘。否则used永远都是100%

我的生产系统

[ 本帖最后由 zhengwei_zw 于 2009-4-14 15:45 编辑 ]

1.PNG (1018 Bytes, 下载次数: 173)

1.PNG

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
24 [报告]
发表于 2012-07-14 13:00 |只看该作者
美文 值得推荐 ^_^

论坛徽章:
0
23 [报告]
发表于 2010-01-15 13:16 |只看该作者
1. qq群:(超级活跃,都是分布式文件系统的用户和爱好者)
   102082446  (通关密码:我爱分布式文件系统)
2. bbs讨论:
    mfs权威指南(moosefs)分布式文件系统一站式解决方案(部署,性能测试)不断更新ing
     http://bbs.chinaunix.net/thread-1644309-1-1.html

论坛徽章:
0
22 [报告]
发表于 2009-04-29 08:31 |只看该作者
稳定压倒一切

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
21 [报告]
发表于 2009-04-29 01:09 |只看该作者
做好了
这个好象和drdb一样吧
  我两个服务器分给他们的是 8GB
显示也是8GB
/dev/fuse0     7.7G    891M    6.9G    11%    /data
  那如果
控制服务器挂了不就完蛋了
   不知道可以连接两个控制器不
还有这玩意 如果出了问题 数据不就拿不出来了
他是0       2       4       6       8       A       C       E
这样的存储 如果NFS一样 直接存储就好了
  不知道这个和 pNFS有什么区别和drdb
  
观望中

[ 本帖最后由 啊泰 于 2009-4-29 01:24 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2009-04-28 16:29 |只看该作者
请问这个和Hadoop,哪一个更好一点?

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-12 10:39:39IT运维版块每日发帖之星
日期:2015-10-10 06:20:00
19 [报告]
发表于 2009-04-27 08:51 |只看该作者
好文章多了

论坛徽章:
0
18 [报告]
发表于 2009-04-25 22:19 |只看该作者
已经自已解决:)
原来必存储单元必须挂载为分区。
呵呵!希望朋友们不要和我一样粗心。目前正在五个虚拟机上测试:)

论坛徽章:
0
17 [报告]
发表于 2009-04-24 21:27 |只看该作者

十万火急,望兄弟们帮我找找原因。

我参考你的贴子:http://bbs.chinaunix.net/viewthread.php?tid=1422602
在虚拟机里配置了MFS
前面配置都成功了,但是最后文件写入时出错。
挂载的文件系统里可以建目录,便是不能cp文件进去。

日志如下:
# tail -f /var/log/messages
Apr 24 18:42:00  mfsmaster[1163]: inodes: 4
Apr 24 18:42:00  mfsmaster[1163]: dirnodes: 1
Apr 24 18:42:00  mfsmaster[1163]: filenodes: 3
Apr 24 18:42:00  mfsmaster[1163]: chunks: 0
Apr 24 18:42:00  mfsmaster[1163]: chunks to delete: 0
Apr 24 18:42:00  mfsmaster[1163]: chunkservers status:
Apr 24 18:42:00  mfsmaster[1163]: server 1 (192.168.1.50): usedspace: 441628672 (0 GB), totalspace: 441628672 (0 GB), usage: 100.00%
Apr 24 18:42:00  mfsmaster[1163]: total: usedspace: 441628672 (0 GB), totalspace: 441628672 (0 GB), usage: 100.00%
Apr 24 18:42:02  mfsmount: file: 4, index: 0, chunk: 0, version: 0 - fs_writechunk returns status 12
Apr 24 18:42:02  mfsmount: file: 4, index: 0, chunk: 0, version: 0 - write(flush) error (try counter: 29)

兄弟我如今火烧眉毛了,希望指导一下。等我回成都请你喝酒。

论坛徽章:
0
16 [报告]
发表于 2009-04-14 15:39 |只看该作者
umount /mfs
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP