1.基本介绍
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
那么什么是分布式文件系统?
分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。
常规特征
对标准的文件操作来说,mfs用起来跟其它的类unix系统类似:
1、分层次的结构(目录树)
2、存储POSIX文件属性(权限、最后访问和修改时间)
3、支持特殊文件(块和字符设备、管道以及套接字)
4、符号连接和硬连接
5、对文件系统的访问可以通过IP地址和(或者)密码进行限制
独有特征
1、高可靠(数据的多个拷贝被存储在不同的计算机上)
2、通过附加新的计算机或者硬盘可以实现容量的动态扩展
3、删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站)
4、不受访问和写入影响的文件连贯快照
2.组成部分
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。
数据存储服务器(Chunk Server):真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。
客户端(Client): 可以像挂载NFS一样挂载MFS文件系统
3.工作原理
MFS读数据的处理过程:
1.客户端向元数据服务器发出读请求
2.元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
3.客户端向已知的Chunk Server请求发送数据
4.Chunk Server向客户端发送数据
MFS写数据的处理过程:
1 客户端向元数据服务发送写请求
2 元数据服务器与chunkserver进行交互(只有当所需的分块chunks存在的时候才进行这个交互)
a 元数据服务器只是在某些服务器创建新的分块chunks
b chunk server告知元数据服务器,步骤a已创建成功
3 元数据服务器告知客户端,你可以在那个chunkserver的那些chunks写入数据
4 客户端向指定的chunkservr写数据
5 chunkserver 与其他chunkserver进行数据同步
6 chunkserver 之间同步成功
7 chunkserver告知客户端写入成功
8 客户端告知元数据服务器本次写入完毕