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来进行读写操作,这样可以提高整个系统的读写性能。
系统结构
工作原理
补:FUSE(filesystem in userspace)-用户空间文件系统,完全在用户态实现的文件系统,通过linux的fuse内核模块实现。