一、MFS 特性:
1. Free(GPL)
2. 通用文件系统,不需要修改上层应用就可以使用
3. 可以在线扩容,体系架构可伸缩性极强。
4. 部署简单。
5. 高可用,可设置任意的文件冗余程度(提供比 raid1+0 更高的冗余级别,而绝对不会影响读或写的性能,只会加速)
6. 可回收在指定时间内删除的文件( “ 回收站 ” 提供的是系统级别的服务,不怕误操作了,提供类似 oralce 的闪回等高级 dbms 的即时回滚特性)
7. 提供 netapp,emc,ibm 等商业存储的 snapshot 特性。(可以对整个文件甚至在正在写入的文件创建文件的快照)
8. google filesystem 的一个 c 实现。
9. 提供 web gui 监控接口。
10. 提高随机读或写的效率。
11. 提高海量小文件的读写效率。
可能的瓶颈:
1. master 本身的性能瓶颈。mfs 系统 master 存在单点故障如何解决?
moosefs+drbd+heartbeat来保证 master 单点问题?不过在使用过程中不可能完全不关机和间歇性的网络中断!
2. 体系架构存储文件总数的可遇见的上限。(mfs 把文件系统的结构缓存到 master 的内存中,文件越多,master 的内存消耗越大,8g 对应 2500w 的文件数,2 亿文件就得 64GB 内存 )。
master 服务器 CPU 负载取决于操作的次数,内存的使用取决于文件和文件夹的个数。
二、MFS 文件系统结构:
包含 4 种角色:
管理服务器 managing server (master)
元数据日志服务器 Metalogger server(Metalogger)
数据存储服务器 data servers (chunkservers)
客户机挂载使用 client computers
各种角色作用:
1. 管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷
贝。
2. 元数据日志服务器: 负责备份 master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作。
3. 数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
4. 客户端:通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地 unix 文件系统使用一样的效果。
原始的读/写速度很明显是主要取决于所使用的硬盘的性能、网络的容量和拓扑结构的,使用的硬
盘和网络的吞吐量越好,整个系统的性能也就会越好。
三.mfs的安装配置
1.配置环境
redhat6.5
servre1:master 172.25.50.1 mfsmaster
server2:chunk 172.25.50.2
server2:chunk 172.25.50.3
真机client:172.25.50.250
2.将mfs源码包变为rpm包安装
安装rpm-build软件
![Screenshot from 2017-10-21 22-53-51.png 4a6a16f16ab64ea2ed080de35db9bd92.png]()
![Screenshot from 2017-10-21 22-56-03.png 0cdbff0699c7f0f813de0f83482000ec.png]()
创建rpm包时需要的包依赖
![Screenshot from 2017-10-21 22-57-32.png 00215ab01c1d53c257b7c650075ff9d9.png]()
![Screenshot from 2017-10-21 23-00-52.png c59661d09538e98fdb4e900c426d42b3.png]()
![Screenshot from 2017-10-21 23-01-31.png f131cc2fd7086eb1d86c09ff9ae59080.png]()
3.在server1上安装mfsmaster
![Screenshot from 2017-10-21 23-03-14.png ffda662c816a1722d0eb074c64aa9fff.png]()
4.使用mfs分布式文件系统需要做好解析
master端 设置为mfsmaster
![Screenshot from 2017-10-21 23-06-55.png 1885ebf98d42ab2d20f5afebfb705ef6.png]()
5.mfsmaster端无需配置,直接启动
![Screenshot from 2017-10-21 23-07-37.png 4dfc6a01d0507c47ef05bb2fd5dc3ef6.png]()
master端三个端口正常启动,cgi web图形端口已经打开
![Screenshot from 2017-10-21 23-08-08.png 81886d86e6105fad6a27ed3527c55a0d.png]()
6.在客户端做好解析,网页访问
![Screenshot from 2017-10-21 23-09-40.png dc9742837c2231aff51e4a4febe403e5.png]()
![Screenshot from 2017-10-21 23-09-59.png c72108359b63027ca9d920ef7d7e0525.png]()
四.server2和server3配置chunk
1.server2安装chunk
安装包依赖
![Screenshot from 2017-10-21 23-13-37.png 8af5a6214e208ac3a5e9de0f07665d14.png]()
2.server2配置解析
![Screenshot from 2017-10-21 23-14-21.png 043deaf042686a42d81466fcd07ed8f1.png]()
3.配置共享点chunk1
权限限制,在启动chunk server前,需确保用户mfs有权限读写将要被挂载的分区
![Screenshot from 2017-10-21 23-17-32.png d5a8715f13153a3e7430075ffc2e12f3.png]()
![Screenshot from 2017-10-21 23-17-16.png 59648adb072fd09dbaa2d032b19c2eea.png]()
4.启动chunk
![Screenshot from 2017-10-21 23-18-02.png c6e3df6e8b7dc7d3580072052595e098.png]()
查看数据
![Screenshot from 2017-10-21 23-18-47.png c2a5540acaa5469aefd3716ad67c4682.png]()
4.server3上的chunk配置和server2一样,共享点为chunk2
![Screenshot from 2017-10-21 23-19-27.png c23f01b5b25a0a4cacd4da758825c6c6.png]()
![Screenshot from 2017-10-21 23-19-53.png 01123f270b926b1e6e8083df75e9d25e.png]()
![Screenshot from 2017-10-21 23-22-15.png 715050df6e688f60c07a3f8763cfd5c4.png]()
![Screenshot from 2017-10-21 23-21-48.png d58492e1c1384fb3fbe7ef3dcd80275f.png]()
五.客户端连接
1.安装mfs 客户端软件,配置解析
![Screenshot from 2017-10-21 23-26-19.png 766dc442838bd682472bff62a141c5fe.png]()
![Screenshot from 2017-10-21 23-25-49.png 7ec67c167afc29cca21ef255a15700ca.png]()
2.创建挂载点并挂载mfsmount
![Screenshot from 2017-10-21 23-28-10.png d35e8957e3ecee655d09345817b38599.png]()
3. 在/mnt/mfs创建两个目录,并设置其文件存储份数
![Screenshot from 2017-10-21 23-30-04.png 73441c5147886cdd7d1c4914aaa58237.png]()
将目录dir1的储存份数设置为1
![Screenshot from 2017-10-21 23-30-37.png 61c009400d2fb0774729182dc5970590.png]()
4.测试
拷贝passwd文件,查看信息:
dir1一份 在server2上
dir2二份 在server2和server3上
![Screenshot from 2017-10-21 23-38-55.png 0a171cb18b11db55d3bf712801f0327e.png]()
浏览器查看server2和server3
![Screenshot from 2017-10-21 23-42-06.png 15d603ce905c8235e778be51cfbabd6a.png]()
注:关闭一个chunkserver2(172.25.50.2)后,dir1无法查看,因为只存了一份在sevrer2上,但dir2没有影响,因为存了2份,chunkserver2重新启动后,恢复正常。
5.恢复垃圾箱文件:
误删:
[root@foundtion50 mfs]# rm -fr /mnt/mfs/dir2/passwd
[root@foundtion50 mfs]# mfsgettrashtime dir2 #查看垃圾箱中文件的保留时间
dir2: 86400 ##86400s=1day
[root@foundtion50 mfs]# mkdir /mnt/mfsdeta #创建目录
[root@foundtion50 ~]# ll -d /mnt/mfsdeta/
drwxr-xr-x 2 root root 4096 Sep 19 18:40 /mnt/mfsdeta/
[root@foundtion50 ~]# mfsmount -m /mnt/mfsdeta/ #挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundtion50 ~]# cd /mnt/mfsdeta/
[root@foundtion50 mfsdeta]# ls
sustained trash
[root@foundtion50 mfsdeta]# cd trash/
[root@foundtion50 trash]# find -type f
./004/00000004|dir2|passwd
[root@foundtion50 trash]# mv ./004/00000004\|dir2\|fstab undel/ #恢复误删文件
[root@foundtion50 trash]# ls /mnt/mfs/dir2/
passwd
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1975415,如需转载请自行联系原作者