认识moosefs
MooseFS正式的推出是在2008-05-30,到2009-01-28为止,最新的版本是1.5.12。
MFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结
构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
MFS的区别特征:
高可用性(数据在不同的服务器上会有多分的拷贝)
只需要通过添加新的服务器或者硬盘就可以做到动态的扩展
可以再一个规定的时期保存执行了删除操作的文件
可以创建文件的快照,保证文件在被使用的时候,整个文件的副本都是一致的
MFS系统的架构
MFS组成包括了三部分:
管理服务器(master),单独的一台服务器,用来管理整个文件系统,存储每个文件的元数据(文件大小,文件属性,文件所在位置的这些信息),包含了所有非规则文件的全部信息,如文件夹,套接字设备,管道设备
数据服务(chunkservers),任何数量的可用的服务器。一个文件会在这些服务器上存储多份。
客户端,任何一种可以支持FUSE的服务器,服务器上会运行mfsmount进程,直接和管理服务器通信,用来接收和修改文件的信息,同时和块服务器交换真实的文件数据
元数据存储在Master的内存中,同时会保存一份在硬盘上(作为临时更新的二进制文件和立即更新的增量日志方式)
数据文件被分成64Mb大小的块,每个块被分散的存储在块服务器的硬盘上,同时块服务器上还会存储其他块服务器上块文件的副本。
客户端只需要mount上MFS就可像操作其他文件系统的文件一样操作MFS中的文件了。操作系统的内核把对文件的操作传递给FUSE模块,这个模块用来
和mfsmount进程进行通信。mfsmount进程后续通过网络和管理服务器和数据块服务器进行通信。整个过程对用户来讲是透明的。
在对所有元数据文件。(文件创建,文件删除,读文件夹,读取和更改属性,改变文件大小等等涉及到在MFSMETA上的特殊文件)进行操作的过程
中,mfsmount和管理服务器建立通信,然后开始读取和写入数据。数据发送到所有数据服务器中有相关文件块的一台上。在完成写操作之后,管理服务器收
到文件长度和最后修改时间的更新信息。
而且,数据服务器之间进行复制通信,保证每个块在不同的块服务器上都有拷贝。
因为文件块存在多个拷贝,所以,任何一台数据服务器不可用都是不会影响到文件的正常访问的。
整体来看moosfs,他的设计理念还是很符合gfs的,从架构图来看,整个系统实现起来还是很容易的。不过有一点值得注意的还是,对于master主机来说,这个是一个单点,会存在隐患,在正式环境应用的时候,如何解决这里,是个关键。
官方网站:
阅读(931) | 评论(0) | 转发(0) |