一.什么是MFS
MFS简介
分布式文件系统是指文件系统管理的物理存储资源通过计算机网络与各节点相连。简单讲,就是把一些分散的共享文件夹,集合到一个文件夹内。对于用户来说,只需要打开该虚拟文件夹,就可以使用这些分散的文件夹进行数据读写。分布式文件系统的好处在于集中访问、简化操作、冗余防灾、读写迅速。
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。由元数据服务器master、元数据日志服务器metalogger、数据存储服务器chunk server和客户端client四个组件组成。如图,chunk seerver可以存在多个,可以及时添加,为MFS扩展容量。
MFS文件系统的特性:
(1)通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs很麻烦!)。
(2)可以在线扩容,体系架构可伸缩性极强。(官方的case可以扩到70台了!)
(3)部署简单。
(4)高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别,而绝对不会影响读或者写的性能,只会加速!)
(5)可回收在指定时间内删除的文件(“回收站”提供的是系统级别的服务,不怕误操作了,提供类似oralce 的闪回等高级dbms的即时回滚特性!)
(6)提供netapp,emc,ibm等商业存储的snapshot特性。(可以对整个文件甚至在正在写入的文件创建文件的快照)
(7)google filesystem的一个实现。
(8)提供web gui监控接口。
MFS文件系统的组成
-
元数据服务器(master):负责各个数据存储服务的管理文件读写调度,文件空间回收以及恢复,多节点拷贝。
-
元数据日志服务器(MetaLogger):负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master
server出现问题的时候解体器 进行工作。 -
数据存储服务器(Chunk Server):真正存储用户数据的服务器存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间赋值(复制份数可以手工指定,建议设置副本数为数据服务器可以为多个,并且数据越多,可使用的“磁盘空间越大,”可靠性也越高。
-
客户端(client):使用MFS文件系统来存储和访问的主机名称为MFS的客户端,成功挂载MFS系统以后,就可以像以前NFS一样共享这个虚拟性的存储了。
MFS读取数据的处理过程
MFS读取数据的过程:
1.首先客户端向master发送请求 2.master把所需的数据存放位置告诉给客户端(chunk server的ip地址和chunk编号) 3.客户端向chunk server发送请求数据 4.chunk server给客户端发送所需的数据
MFS写入数据的处理过程
MFS写数据的过程:
1.客户端向master发送请求 2. master与chunk server进行交互,但是master只对某些chunk server创建新的分块chunks,创建成功后chunk server会给master反馈 3.master告诉客户端,在上一过程指定的chunk server写入数据 4.客户端开始写入数据 5.写入数据的chunk server将这些数据与其他的chunk server进行同步,同步完成反馈结果给客户端。客户端再反馈给master,这时,整个过程结束。
二.MFS分布式文件系统的安装与部署
前提:
主机 | 服务 |
---|---|
server1 | mfsmaster |
server2 | mfschunkserever1 |
server3 | mfschunkserever1 |
物理机 | client |
我们将每个虚拟机的内存都给到了2048,当然给的多点也不介意~(我server1给了4096)