MooseFS学习-概述

MFS(MooseFS)是一个容错的、网络分布式文件系统,是GFS的开源实现。它把数据分散在多个物理机上,对外展现为一个整体资源。

支持的功能

Unix的通用文件系统功能:目录树;记录POSIX文件属性(权限、最近读取、修改时间);支持特殊文件(块和字符设备、管道和套接口);符号链接和硬链接;根据IP和密码来设置读取文件的权限。

特殊功能:高可靠(数据有多个备份存放在不同的机器上);通过增加新机器或硬盘可以动态扩展容量;回收在指定时间内删除的文件(有系统级的垃圾回收站);文件读写时也能进行一致性快照保存。

四个组成单元

管理服务器(master server):负责各个数据存储服务器的管理、文件读写调度、文件空间回收以及恢复、多节点拷贝。
数据存储服务器(chunk server):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
元数据日志服务器(metalogger server):负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs ,以便于在master server 出问题的时候接替其进行工作。
挂载或读取MFS文件的客户机(client computers):用mfsmount进程与管理服务器(读写文件元数据)、数据存储服务器(交换文件数据)通信。mfsmount基于fuse机制,在linux、freebsd,macos x等实现了fuse的操作系统上都能运行。

优点

高可用性:表现在chunkserver端任何文件可以设置多个数据备份,这样任何一个数据备份丢失,不会导致文件的丢失,避免单点或多点故障;在metalogger端会实时的同步master端的元数据信息,当master出现故障时,可以采用metalogger接管master提供的服务。

高可扩展性:主要表现在数据存储可以支持在线的扩容,不会影响服务。

高性能:表现在master端支持高并发的client读写请求处理,同时在client端对文件的读写时,master会采用就近原则分配chunkserver来进行读写操作,这样可以提高整个系统的读写性能。

系统结构


工作原理

元数据存储同时存储在管理服务器的内存和磁盘上,二进制文件和log会传送到metalogger上以备份。文件会被切分成最大64MB的块,每块都以文件的形式存在各自的数据服务器上,通过配置冗余多份来实现高可靠。

在挂载到MFS的客户机上操作文件,操作系统内核会把所有的操作传送给fuse模块,fuse与mfsmount进程通信。mfsmount进程通过网络与管理服务器和数据服务器通信,整个过程对用户是透明的。

每当操作元数据的时候,mfsmount都会通知管理服务器,如创建文件、删除、读目录、改变文件属性、改变文件大小、读写数据开始时、获取文件元数据等。
mfsmount会直接读取存有数据块的数据服务器;写文件完成后会通知管理服务器更新文件长度和最后修改时间。

数据服务器间会互相通信备份数据,让一个文件在不同的机器上有适当数量的备份。



补:FUSE(filesystem in userspace)-用户空间文件系统,完全在用户态实现的文件系统,通过linux的fuse内核模块实现。

 

posted @ 2014-07-29 11:53  春文秋武  阅读(273)  评论(0编辑  收藏  举报