MFS

MFS介绍

MFS的优点

MFS文件系统结构
MFS
的监控

MFSHADOOP的比较

MFS工作原理

MFS的双机方案

==========

MFS介绍

MooseFS 是波兰开发的分布式文件系统
官方网站: http://www.moosefs.org/
MooseFS是一个分布式存储的框架,是类似google   filesystem的一个c实现
目前官方的 CASE 已扩展到了 70 台,最大的数据量达 PB 级别。
使用案例: http ://www.moosefs.org/who-is-using-moosefs.html
国内的有: YOKA 时尚网,大众报业,搜狐听书, UC 优视,豆瓣等等
===========

MFS的优点

Free(GPL) 通用文件系统,不需要修改上层应用就可以使用
部署简单,可以在线扩容,体系架构可伸缩性极强。
高可用,可设置任意的文件冗余程度
支持特殊文件(管道,套接字,符号链接和硬链接)
支持快照 snapshot 功能
提供 web gui 监控功能
可回收在指定时间内删除的文件
===========
MFS文件系统结构
1 管理服务器managing server (master)
管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
常用配置介绍 mfsmaster.cfg
DATA_PATH = / usr /local/ mfs / var / mfs 数据存放路径,此目录下大致有三类文件, changelog sessions stats
BACK_LOGS = 50 metadata 的改变 log 文件数目
CHUNKS_WRITE_REP_LIMIT = 1 在一个循环里复制到一个 chunkserver 的最大 chunk 数目
CHUNKS_READ_REP_LIMIT = 5 在一个循环里从一个 chunkserver 复制的最大 chunk 数目
 
2 元数据日志服务器Metalogger server(Metalogger
元数据日志服务器 : 负责备份master服务器的变化日志文件,文件类型为changelog_ml .*. mfs,以便于在master server出问题的时候接替其进行工作 .
常用配置介绍 mfsmetalogger.cfg
META_DOWNLOAD_FREQ = 24 元数据备份文件下载请求频率,即每隔一天从 Master 下载 metadata.mfs.back 文件。
 
3 数据存储服务器data servers ( chunkservers )
数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,数据实际存储的地方,由多个物理服务器组成
常用配置介绍 mfshdd.cfg
/ mnt /hd1: 数据存储目录
 
4 客户机挂载使用client computers
客户端 : 通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地文件系统使用一样的效果
常用命令:
挂载文件系统: mfsmount / mnt / mfs -H 主控服务器 IP
卸载文件系统: umount / mnt / mfs
查看文件拷贝的份数: mfsgetgoal / mnt / mfs
指定文件拷贝的份数: mfssetgoal 【-r】 3 / mnt / mfs (–r 选项表示对子目录递归 )
实际的拷贝查看: mfsfileinfo / mnt / mfs
 
5 垃圾箱
挂载时通过 -m -o 的选项,可以挂接一个辅助的文件称为垃圾箱,系统一个删除文件能够存放在一个“ 垃圾箱”的时间就是一个隔离时间,这个时间可以用 mfsgettrashtime 命令来醒看,也可以用 mfssettrashtime 命令来设置,时间的单位是秒。
查看垃圾箱隔离时间: mfsgettrashtime / mnt / mfs
mfsgettrashtime 【-r】 604800 / mnt / mfs (–r 选项表示对子目录递归 )
包含三个目录:
/trash :包含任然可以被还原的被删除文件的信息
/trash/ undel :在垃圾箱的文件,移动到 /trash 即可还原删除文件
/reserved: 已经删除的文件,但却有一直打开着。在用户关闭了这些被打开的文件后, reserved 目录中的
文件将被删除,文件的数据也将被立即删除。
============
MFS的监控
Mfscgiserv 是用 python 编写的一个 web 服务器, 它的监听端口是 9425 ,可以利用:
/ usr /local/ mfs / sbin / mfscgiserv 来启动,用户利用浏览器就可全面监控所有客户挂接, chunkserver
master server ,客户端的各种操作等等
 
==========

MFSHADOOP的比较

MooseFS (MFS)

Ceph

GlusterFS

Lustre

HadoopHDFS

MetadataServer

单个MDS,存在单点故障和瓶颈

多个MDS,不存在单点故障和瓶颈。

无,不存在单点故障。靠运行在各个节点上的动态算法来代替MDS,不需同步元数据,无硬盘I/O瓶颈。

MDS(互相备份)MDS不可以扩展,存在瓶颈。

单个MDS,存在单点故障和瓶颈

FUSE

支持

支持

支持

支持

不支持,特定API

访问接口

POSIX

POSIX

POSIX

POSIX/MPI

支持部分POSIX

文件分布

文件被分片,数据块保存在不同的存储服务器上

文件被分片,保存在不同的存储服务器上。

AFR相当于RAID1,每个文件都被复制到多个存储节点上。Stripe相当于RAID0,文件被分片,数据被条带化到各个存储节点上。

Translators可以组合AFRstripe

可以把大文件分片并以类似RAID0的方式分散存储在多个存储节点上。

文件被分片,数据块保存在不同的存储服务器上

冗余保护/副本

多副本

多副本

镜像

无,由存储节点上的RAID1RAID5/6提供可靠性。

多副本

扩展性

增加存储服务器,可以提高容量和文件操作性能

可以增加元数据服务器和存储节点。

容量可扩展

可增加存储节点,提高容量可文件操作性能

容量可扩展

安装/部署

简单

简单

简单

复杂。而且Lustre严重依赖内核,需要重新编译内核。

简单

适合场景

大量小文件读写

小文件

适合大文件

大文件读写

大文件读写

应用/优缺点

国内较多,实施简单,但是存在单点故障

不稳定,目前还在实验阶段

较多用户使用,无元数据服务器,堆栈式架构,具有线性横向扩展能力。由于没有元数据服务器,因此增加了客户端的负载,占用相当的CPU和内存。

HPC领域,很成熟、很庞大

使用较多,主要使用在MAPREDUCE方面

==============

MFS工作原理

MFS 的读数据过程

1.client当需要一个数据时,首先向masterserver发起查询请求

2.管理服务器检索自己的数据,获取到数据所在的可用数据服务器位置ip|port|chunkid,发送给客户端;

3.客户端向具体的数据服务器发起数据获取请求;

4.数据服务器将数据发送给客户端;

MFS的数据存储格式:

Chunk文件名格式为{“chunk_%x_%x.mfs”,chunkid ,version},文件头部长度为5120字节, 前1024字节包括ChunkID, 版本信息等元数据信息,1024 ~ 5120字节是block checksumChunk包含1Kblock,每个block4个字节CRC校验,总共占用4096字节,5120字节之后才是Chunk数据

MFS 的写数据过程

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

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

3.数据服务器返回创建成功的消息给管理服务器;

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

5. Client与第一个ChunkServer建立连接,发送包含ChunkServer链信息的写请求和数据;

6.数据服务器调用写本地Chunk文件,同时 forward写请求到下一个Chunk Server,处理完之后返回给客户端写成功的消息;

7.客户端将通知Master写操作完成,Master记录相关的日志,并更新文件的长度和最后修改时间及释放ChunkLease

MFS 的删除文件过程

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

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

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

MFS 修改文件内容的过程

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

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

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

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

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

==============

MFS的双机方案

==============

MFS测试

       MFS虚机压力测试

       MFS虚机稳定性测试

        MFS双机测试

============

  MFS虚机压力测试

测试环境:1MASTER服务器,1台日志服务器,2台数据存储服务器

测试方法:采用系统命令(time dd if= of=  bs=1024k count=500)

=========

MFS虚机稳定性测试

采用 70 并发, MFS 服务正常运行。在半个月的压力测试中也没有发现 MFS 的异常。

========

MFS双机测试

采用 rsync+inotify 机制时实同步元数据镜像和日志等相关文件。
通过 Heartbeat 监控主控服务器进程。
目前在断网和 MFS 主控停止情况下均可正常切换。

 

 

你可能感兴趣的:(测试工具相关)