注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 《掌控Windows SErver 2..
 帮助

分布式文件系统MFS(moosefs)实现存储共享(二)


2009-04-09 13:08:05
 
分布式文件系统MFS(moosefs)实现存储共享
 
MFS客户端的安装及配置
 
我的生产环境,只有centosfreebsd两种环境,因此下面的描述,只有centosfreebsd挂接MFS文件系统的情形,其他类型的unix系统,待日后尝试。对比前面的操作过程,客户端挂接后使用MFS集群文件系统才是最费时的事情。
 
一、centos作为MFS的客户端。
(一)   安装MFS客户端
Mfsmount需要依赖FUSE,因此需要先安装好fuse,这里我选用 fuse-2.7.4.tar.gz
1、解包 tar zxvf fuse-2.7.4.tar.gz
2、切换目录 cd fuse-2.7.4.
3、配置  ./configure
4、编译安装  makemake install
如果系统已经安装了fuse,则跳过这个步骤。
◆安装MFS客户端程序
1、修改环境变量文件/etc/profile ,追加下面的行,然后再执行命令source /etc/profile使修改生效。
(二)挂接和使用MFS文件系统
1、创建挂接点 mkdir /mnt/mfs
2、挂接MFS /usr/local/mfs/bin/mfsmount –h 192.168.0.19 .注意,所有的MFS都是挂接同一个元数据服务器master,而不是其他数据存储服务器chunkserver !
 
一、freebsd作为MFS客户端
Freebsd安装和挂接MFS集群文件系统,centos操作起来要复杂一些.mfsmount需要依赖fuse,并且需要在内核中加载fusefs模块。
 
(一)安装fuse
1、解包 tar zxvf fuse-2.7.4.tar.gz
2、切换目录 cd fuse-2.7.4.
3、配置  ./configure
4、编译安装  makemake install
如果系统已经安装了fuse,则跳过这个步骤。
 
(二) 安装内核模块fusefs-kmod
6、选择“fusefs-kmod-0.3.9.p1_2,[OK]返回到第“4步出现的那个操作界面。这时我们用“Tab”键选中底部右边的“Install”,完成安装后,会出现一个安装成功的提示,然后瞬间消失。
加载fusefs模块 kldload /usr/local/modules/fuse.ko .如果加载不成功,请检查是否存在模块文件fuse.ko.
检查fusefs模块是否被加载到内核:
  
如果没有类似上面馆的输出,就表明fusefs模块没有加载成功。
 
(三)安装包 pkg-config
1cd /usr/ports/devel/pkg-config
2make install clean
 
(四)安装MFS客户端
1、解包 tar zxvf mfs-1.5.12.tar.gz
2、切换目录 cd mfs-1.5.12
3、创建用户 pw useradd mfs –s /sbin/nologin 
4、配置 ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
5、编译安装 make ; make install
◆检查MFS客户端安装的结果。通过查看目录/usr/local/mfs/bin目录的文件,应该发现如下文件:
就能实现开机或重启系统自动挂接MFS文件系统。
 
破坏性测试
、测试数据存储服务器
我用5个服务器组成了MFS的存储平台,其中一个是master,其余四个服务器是chunkserver.先停止一个chunkserver服务,然后在某个MFS客户端往挂接点的目录(/mnt/mfs)里复制数据或者创建目录/文件、或者读取文件、或者删除文件,观察操作是否能正常进行。再停止第2chunkserver,重复执行上述操作;然后再停止第3个服务器,执行类似的文件读些操作。减少chunkserver试验后,我们再来逐步增加chunkserver服务器,然后对MFS执行读写等相关访问操作,检验其正确性。
 
通过增减chunkserver服务器的测试,服务的可靠性确实不错,哪怕只剩下最后一个服务器,也能正常提供存储访问服务。
 
二、测试元数据服务器
元数据服务器最重要的文件在目录 /usr/local/mfs/var/mfs ,MFS每一个数据的变化,都被记录在这个目录的文件里,我们可以通过备份这个目录的全部文件,来保障整个MFS文件系统的可靠性.在正常情况下,元数据服务器的改变日志文件(changelogs) 实时地、自动地复制到所有的数据存储服务器,并且以changelog_csback.*.mfs的形式命名。换句换说,即使元数据服务器报废了,也能再部署一个元数据服务器,然后从数据存储服务器chunkserver取得恢复所需要的文件。
 
(一)本地测试
1、停止元数据服务 /usr/local/mfs/sbin/mfsmaster
2、备份元数据服务器数据 cd /usr/local/mfs/var; tar czvf mfs.tgz mfs
3、删除目录 mv mfs mfs.bk rm –rf mfs
4、启动元数据服务 ../sbin/mfsmaster start 启动失败,提示不能初始化数据。
5、解包 tar zxvf mfs.tgz
6、执行恢复操作 .. /sbin/mfsmetarestore –a
7、启动元数据服务 ../sbin/mfsmaster start
8、在MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
 
(一)   迁移测试
1、  安装新的MFS元数据服务器。
2、  复制元数据服务器数据目录(/usr/local/mfs/var/mfs)到这个新的元数据服务器。
3、  停止原先的那个元数据服务器(关闭计算机或停止它的网络服务)。
4、  更改新的元数据服务器的ip为原来那个服务器的ip.
5、  启动新的元数据服务 /usr/local/mfs/sbin/mfsmaster start
6、  MFS客户端检查MFS存储的数据是否跟恢复前一致?能否正常访问等等。
 
感谢Pawel Kalinowski mfs作者)提供帮助!
 
补充: linux可能需要在执行mfsmount前先加载fuse模块到内核 /sbin/modprobe fuse
                          2009/3/30                                                   


类别:未分类 ┆ 技术圈()阅读() ┆ 评论()推送到技术圈返回首页  


    文章评论
 <<   1   2   >>   页数 ( 1/2 )  
2009-04-09 20:18:45
我没有产生BIN 目录????
[root@mfs mfs]# pwd
/usr/local/mfs
[root@mfs mfs]# ls -al
total 48
drwxr-xr-x 6 root root 4096 Apr 9 04:13 .
drwxr-xr-x 12 root root 4096 Apr 9 04:13 ..
drwxr-xr-x 2 root root 4096 Apr 9 04:13 etc
drwxr-xr-x 2 root root 4096 Apr 9 04:15 sbin
drwxr-xr-x 3 root root 4096 Apr 9 04:13 share
drwxr-xr-x 3 root root 4096 Apr 9 04:13 var

2009-04-09 20:30:44
是我./configure 参数不对

2009-04-09 20:37:25
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

写错了:前面少了一个P    

2009-04-11 01:25:53
赞啊, 很有价值, 特别是破坏性测试的思路..

2009-04-15 01:59:31
今天在虚拟机是试了下,架设成功,却不能往/mnt/mfs写文件,后来发现原来是硬盘设的太小了.

2216 Apr 15 01:54:00 myfedora mfsmaster[20903]: total: usedspace: 48761110528 (45 GB), totalspace: 48761110528
  (45 GB), usage: 100.00%

已经使用了100%了!

2009-04-15 08:23:46
我测试成功了,我感觉这几台机子应用1000M网线连起来,可能郊果会更好

2009-04-15 11:47:14
这个系统的应该有两个或多个mfsmaster(可能下个版本开发),但那些chunkserver 如何来监控是否运行正常?? 是不是用nagios ???

2009-04-15 12:24:09
可能吧

2009-04-15 17:00:02
@ todayboy
nagios或cacti 里的高级ping应该都可以,就是检测端口有没反应.

ps:我在vmware试了下,感觉好像在写文件时, 不是一般的慢!不知真实环境会怎么样

2009-04-22 16:47:19
真实环境不是一般的快 我们现在用它来存放在线收藏数据(随时修改文件) 效果非常好

2009-04-22 17:28:44
不是我干的 是他们帮我做成图片少了个P

2009-04-23 16:50:45
伯劳写的真够详细呀,赞一个,在次感谢伯劳,就是感觉太费机器了,有一点疑问chunkserver服务器是不是用到的最主要的是磁盘,只要磁盘的IO好转速快,服务器的配置一般稳定点的就可以了吧,还有就是创建的副本,伯劳创建的副本数是3,chunkserver服务器的数目是4个,也就是说当三个chunkserver服务器都down掉服务也正常是这个意思吗?

2009-04-24 09:07:21
是这样的

2009-04-24 09:08:25
机器很便宜 一个服务器不到6K 如果买nas的话 10多万 可扩展性和可用性却远远不及MFS等分布式文件系统

2009-04-24 10:02:15
谢谢伯劳,还有一个问题就是关于创建副本的问题,chunkserver服务器数量的不同创建的副本肯定也不一样吧,是个什么样的标准,把副本的具体含义给我们讲讲吧,再次感谢!!

2009-04-24 10:05:41
还有个问题就是client所用到的磁盘空间是所有chunkserver服务器磁盘空间的总和吗

2009-04-24 10:26:21
基本上是加法运算

2009-04-24 15:37:57
伯劳你好,mfs我已经完成了,四个chunkserver服务器,每个chunkserver服务器要共享的空间是2G,总共就是8G,client上副本数是3,有个疑惑只是,虽然3个chunkserver服务器down了服务什么的不受影响,但是client挂载的磁盘空间会减少,想问的就是,如果在挂载8G的空间的时候里面的文件是5G,但是当chunkserver服务器少了话磁盘空间一减少,磁盘空间肯定就不够用了呀

2009-04-24 16:00:02
感觉怎么那么慢呢,我远程往客户端挂载的目录里写文件,我在客户端都进不去/mnt下的mfs目录了,一直停在那里,这是为什么呢!!!

2009-04-24 16:32:49
那个人你这么吝惜 ?
至少要放1T 的空闲空间 每个存储服务器
正常情况 跟本地访问一样快 否则就是不正确

2009-04-24 16:44:49
mfs客户端df -h的结果是:
[root@mfs_client mfs]# df -h
Filesystem         Size Used Avail Use% Mounted on
/dev/hda1         7.4G 6.7G 387M 95% /
none             125M   0 125M   0% /dev/shm
MFS             7.9G 4.2G 3.8G 53% /mnt/mfs
显示我用了4.2G,但是我实际的文件才897M:
[root@mfs_client mnt]# du -sh mfs/
897M   mfs/
我是建立了三个副本,怎么磁盘空间会那么多吗,还是mfs自己内在的有一些东西呢,我ls -a 也看了没有隐藏文件,奇怪了!!!

田老师能帮说说吗,解除我的疑惑!!

2009-04-24 16:47:07
田老师在呢呀,在QQ上没看你上线,我用的虚拟机没有条件,每个chunkserver服务器最少要1T吗?

2009-04-24 21:52:44
初始化分区后 就占了好大的空间 如我共享一个服务器/data分区 会在下面建以数字开头的N 个目录 也就是数据以后存放的区块

2009-04-24 21:53:38
mfs-3# cd /data/
mfs-3# ls
.lock   0     2     4     6     8     A     C     E
.snap   1     3     5     7     9     B     D     F
mfs-3# du -hs *
4.2G   0
4.1G   1
4.2G   2
4.2G   3
4.2G   4
4.1G   5
4.1G   6
4.1G   7
4.2G   8
4.1G   9
4.2G   A
4.2G   B
4.2G   C
4.1G   D
4.2G   E
4.2G   F

2009-07-20 15:20:54
有个疑问:
如果
一台元服务,三台数据服务器,一个client
三台数据服务器,每台有1T的空间,这样client mount 上后可以看到3T的空间,这都没问题。
但是当我的数据如果大于1T时并且其中两台数据server挂了,因为留下的一台仅有1T的空间,那大于1T的这些数据是不是会丢失?

谢谢!

 <<   1   2   >>   页数 ( 1/2 )  

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: