moosefs php,moosefs 分布式文件系统简介

MooseFS正式的推出是在2008-05-30,到2009-10-12为止,最新的版本是1.5.12。

MFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。

MFS的区别特征:

高可用性(数据在不同的服务器上会有多分的拷贝)

只需要通过添加新的服务器或者硬盘就可以做到动态的扩展

可以再一个规定的时期保存执行了删除操作的文件

可以创建文件的快照,保证文件在被使用的时候,整个文件的副本都是一致的

format,png

MFS系统的架构

MFS组成包括了三部分:

管理服务器(master),单独的一台服务器,用来管理整个文件系统,存储每个文件的元数据(文件大小,文件属性,文件所在位置的这些信息),包含了所有非规则文件的全部信息,如文件夹,套接字设备,管道设备

数据服务(chunkservers),任何数量的可用的服务器。一个文件会在这些服务器上存储多份。

客户端,任何一种可以支持FUSE的服务器,服务器上会运行mfsmount进程,直接和管理服务器通信,用来接收和修改文件的信息,同时和块服务器交换真实的文件数据

元数据存储在Master的内存中,同时会保存一份在硬盘上(作为临时更新的二进制文件和立即更新的增量日志方式)

数据文件被分成64Mb大小的块,每个块被分散的存储在块服务器的硬盘上,同时块服务器上还会存储其他块服务器上块文件的副本。

客户端只需要mount上MFS就可像操作其他文件系统的文件一样操作MFS中的文件了。操作系统的内核把对文件的操作传递给FUSE模块,这个模块用来和mfsmount进程进行通信。mfsmount进程后续通过网络和管理服务器和数据块服务器进行通信。整个过程对用户来讲是透明的。

在对所有元数据文件。(文件创建,文件删除,读文件夹,读取和更改属性,改变文件大小等等涉及到在MFSMETA上的特殊文件)进行操作的过程中,mfsmount和管理服务器建立通信,然后开始读取和写入数据。数据发送到所有数据服务器中有相关文件块的一台上。在完成写操作之后,管理服务器收到文件长度和最后修改时间的更新信息。

而且,数据服务器之间进行复制通信,保证每个块在不同的块服务器上都有拷贝。

因为文件块存在多个拷贝,所以,任何一台数据服务器不可用都是不会影响到文件的正常访问的。

整体来看moosfs,他的设计理念还是很符合gfs的,从架构图来看,整个系统实现起来还是很容易的。不过有一点值得注意的还是,对于master主机来说,这个是一个单点,会存在隐患,在正式环境应用的时候,如何解决这里,是个关键。

相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值