MFS文件系统

MFS特性

Free(GPL)

通用文件系统,不需要修改上层应用就可以使用

可以在线扩容,体系架构可伸缩性极强。

部署简单。

高可用,可设置任意的文件冗余程度

可回收在指定时间内删除的文件

提供netapp,emc,ibm等商业存储的snapshot特性

google filesystem的一个c实现。

提供web gui监控接口。

提高随机读或写的效率

提高海量小文件的读写效率

读示意图:

MFS的读数据过程:
    client当需要一个数据时,首先向master server发起查询请求;
   管理服务器检索自己的数据,获取到数据所在的可用数据服务器位置ip|port|chunkid;
   管理服务器将数据服务器的地址发送给客户端;
   客户端向具体的数据服务器发起数据获取请求;
   数据服务器将数据发送给客户端;

写示意图:

MFS的写数据过程:

当客户端有数据写需求时,首先向管理服务器提供文件元数据信息请求存储地址(元数据信息如:文件名|大小|份数等);

管理服务器根据写文件的元数据信息,到数据服务器创建新的数据块;

数据服务器返回创建成功的消息;

管理服务器将数据服务器的地址返回给客户端(chunkIP|port|chunkid);

客户端向数据服务器写数据;

数据服务器返回给客户端写成功的消息;

客户端将此次写完成结束信号和一些信息发送到管理服务器来更新文件的长度和最后修改时间

MFS的删除文件过程:

客户端有删除操作时,首先向Master发送删除信息;

Master定位到相应元数据信息进行删除,并将chunk server上块的删除操作加入队列异步清理;

响应客户端删除成功的信号

MFS修改文件内容的过程:

客户端有修改文件内容时,首先向Master发送操作信息;

Master申请新的块给.swp文件,

客户端关闭文件后,会向Master发送关闭信息;

Master会检测内容是否有更新,若有,则申请新的块存放更改后的文件,删除原有块和.swp文件块;

若无,则直接删除.swp文件块。

MFS重命名文件的过程:

客户端重命名文件时,会向Master发送操作信息;

Master直接修改元数据信息中的文件名;返回重命名完成信息;

MFS遍历文件的过程:

遍历文件不需要访问chunk server,当有客户端遍历请求时,向Master发送操作信息;

Master返回相应元数据信息;

客户端接收到信息后显示

注:

Master记录着管理信息,比如:文件路径|大小|存储的位置(ip,port,chunkid)|份数|时间等,元数据信息存在于内存中,会定期写入metadata.mfs.back文件中,定期同步到metalogger,操作实时写入changelog.*.mfs,实时同步到metalogger中。master启动将metadata.mfs载入内存,重命名为metadata.mfs.back文件。

文件以chunk大小存储,每chunk最大为64M,小于64M的,该chunk的大小即为该文件大小(验证实际chunk文件略大于实际文件),超过64M的文件将被切分,以每一份(chunk)的大小不超过64M为原则;块的生成遵循规则:目录循环写入(00-FF 256个目录循环,step为2)、chunk文件递增生成、大文件切分目录连续。

Chunkserver上的剩余存储空间要大于1GB(Reference Guide有提到),新的数据才会被允许写入,否则,你会看到No space left on device的提示,实际中,测试发现当磁盘使用率达到95%左右的时候,就已经不行写入了,当时可用空间为1.9GB。

文件可以有多份copy,当goal为1时,文件会被随机存到一台chunkserver上,当goal的数大于1时,copy会由master调度保存到不同的chunkserver上,goal的大小不要超过chunkserver的数量,否则多出的copy,不会有chunkserver去存。

时间: 2024-10-13 21:31:40

MFS文件系统的相关文章

部署社交网站- MYSQL主从 与 MFS 文件系统

案例概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建 MYSQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS. FastDFS等.公使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器

MFS分布式文件系统

防伪码:我没有太多坚强,只比苦难多一点 第十一章  MFS分布式文件系统 前言:几台Web服务器通过NFS共享一个存储,在业务功能上满足需求,但在性能与容量上NFS无法胜任更高的要求.MFS即moosefs,可以提供容量FB级别的共享存储,无需昂贵的专业硬件服务器,自身拥有冗余功能及动态扩容功能,保证数据的安全性.本章将介绍MFS分布式文件系统的原理及环境搭建. 一. 工作原理 1.分布式原理 分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的

MFS分布式文件系统【1】概述

注:以下内容来自互联网 MFS文件系统概论 MFS是linux下的开源存储系统,是由波兰人开发的.MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展.MFS是一种半分布式文件系统. MFS的架构和读写原理 一个完整的MFS应用由四个部件构成: 主控点服务MFS  MASTER——管理整个文件群集的元数据日志: 数据节点服务CHUNKSERVER——以哈希散列的形式存储文件数据,可使用服务器上任意的块设备作为存储设备,能动态扩展: 元数据备份服务

分布式文件系统MFS(moosefs)实现存储共享(一)

分布式文件系统MFS(moosefs)实现存储共享 作者:田逸([email protected]) from:[url]http://net.it168.com/a2009/0403/270/000000270867.shtml[/url] 由于用户数量的不断攀升,我对访问量大的应用实现了可扩展.高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题.通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS.在我这个网络环境里,N个服务器通过nfs方式共享

分布式文件系统MFS(moosefs)实现存储共享(第二版)

作者:田逸([email protected]) 由于用户数量的不断攀升,我对访问量大的应用实现了可扩展.高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题.通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS.在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得NFS服务器不堪重负.察看系统日志,全是nfs服务超时之类的报错.一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题:一旦NFS服务器数目过多,并且是那种

【Linux--中级篇】MFS分布式文件系统

MFS分布式文件系统 1.实验环境 主机 操作系统 IP地址 主要软件 Master Server CentOS6.5x86_64 192.168.10.10 mfs-1.6.27-5.tar.gz MasterLogger Server CentOS6.5x86_64 192.168.10.11 mfs-1.6.27-5.tar.gz Chunk Server1 CentOS6.5x86_64 192.168.10.15 mfs-1.6.27-5.tar.gz Chunk Server2 Ce

Mfs分布式文件系统总结

一.MFS介绍:Distinctive features of MooseFS are:- higher reliability (data can be stored in several copies on separate computers)高可用性:数据可以在不同机器上存储多个副本- dynamically expanding disk space by attaching new computers/disks动态扩展:随时新增加机器或者是磁盘- possibility of sto

MFS分布式文件系统之原理

1.分布式原理分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹.2.MFS原理MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源.1)MFS的组成元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用.元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件

MFS分布式文件系统架构实战

MFS文件系统的组成架构:如图元数据服务器(Master):负责管理文件系统,维护元数据:元数据日志服务器(c):备份Master服务器的变化日志文件:数据存储服务器( Chunk Server):真正存储数据的服务器:客户端(Client)可像挂载NFS一样挂载MFS文件系统 案例环境:第一步:搭建Master server准备工作:service firewalld stopsetenforce 0yum install -y zlib-develgroupadd mfsuseradd -s