标签:MFS
几台Web服务器通过NFS共享一个存储,在业务功能上满足需求,但在性能与容量上NFS无法胜任更高的要求。MFS即moosefs,可以提供容量PB级别的共享存储,无需昂贵的专业硬件服务器,自身拥有冗余功能及动态扩容功能,保证数据的安全性。工作原理:
分布式原理
分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。分布式文件系统的好处是集中访问、简化操作、数据容灾、提高文件存取性能。
MFS原理
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
(1)MFS文件系统的组成
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为change_ml.*.mfs。当master服务器损坏,可以从日志服务器中取得文件恢复。
数据存储服务器(Chunk Server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在服务器之间复制,数据服务器越多,容量就越大,可靠性越高,性能越好。
客户端(Client): 可以像挂载NFS一样 挂载MFS文件系统。
(2)MFS读取数据的出路过程
客户端向元数据服务器发出读请求
元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
客户端向已知的Chunk Server请求发送数据
Chunk Server向客户端发送数据
(3)MFS写入数据的处理过程
客户端向元数据服务器发送写入请求
元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Servers告 知元数据服务器操作成功
元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据
客户端向指定的Chunk Server写入数据
该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功
客户端告知元数据服务器本次写入完毕
案例实施
实验拓扑
实验过程
搭建Master Server
(1)关闭防火墙、安装支持软件
(2)创建用户
(3)安装源码包
(4)复制文件
(5)配置文件
需要用到的配置文件有两个:mfsmaster.cfg(主配置文件)和mfsexports.cfg(被挂载目录及权限配置文件)
mfsmaster.cfg文件常用参数如下
mfsexports.cfg文件参数合适如下
该文件,每一个条目分为三个部分
第一部分:客户端IP地址
第二部分:被挂载的目录
第三部分:客户端拥有的权限
地址可以指定几种表现形式
*代表所有的IP地址
n.n.n.n单个ip地址
n.n.n.n/b IP网络地址/位数掩码
n.n.n.n/m.m.m.m IP网络地址/子网掩码
f.f.f.f-t.t.t.t IP段
目录部分的标示如下
/ 标示MFS根
. 表示MFSMETA文件系统
权限部分如下所示
ro——只读模式共享
rw——读写模式共享
alldirs——允许挂载任何指定的子目录
maproot——映射为root,还是普通用户
password——指定客户端的密码
以上就是对mfsmaster.cfg和mfsexport文件的解释,默认就是最好的,不需要做任任何修改。
(6)启动Master Server
第一遍启动的时候,可能会出现以下错误信息
[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster start
loading sessions ... file not found
如果出现以上信息,则关闭服务并重新启动就可以了
[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster -s
-s 表示停止服务
[root@centos1 mfs]# /usr/local/mfs/sbin/mfsmaster start
再启动就不会出现任何信息
停止Master Server的命令是/usr/local/mfs/sbin/mfsmaster -s
2.搭建Metalogger Server
(1)关闭防火墙、安装支持软件,创建用户、安装源码包
(2)复制文件
(3)修改配置文件
(4)启动服务
停止Metalogger Server的命令是/usr/local/mfs/sbin/mfsmetalogger -s
3.搭建Chunk Server(两台Chunk Server操作一样)
(1)关闭防火墙、安装支持软件,创建用户、安装源码包
(2)复制文件
(3)修改配置文件
(4)创建文件,并设置权限
(5)开启服务
停止Chunk Server的命令是/usr/local/mfs/sbin/mfschunkserver -s
4.客户端设置
(1)安装fuse
然后设置环境变量
立即生效
(2)安装MFS客户端
(3)挂载MFS文件系统
如果要卸载MFS,使用命令umount /mnt/mfs即可
(4)MFS常用操作
MFS客户端安装完毕后,会生成/usr/local/mfs/bin/目录,在这个目录下有很多命令是用户所需的。为了方便使用这些命令,可将/usr/local/mfs/bin加入到环境变量中。
mfsgetgoal命令用来查看文件被复制的分数,利用-r命令可以对整个目录进行递归,goal是指文件比复制的分数
命令mfssetgoal用来设置文件被复制的分数,生产环境下Chunk server节点数量应大于2,文件副本数小于等于Chunk server服务器的数量。
创建文件测试如下
分别打开两台Chunk Server,查看/data文件,都产生了加密数据,说明成功了
5.MFS监控
mfscgiserv是用python编写的一个web服务器,其监听端口是9425,可以再masster server 上通过 /usr/local/mfs/sbin/mfscgiserv来启动,用户利用浏览器就可以完全监控所有客户挂接、Chunk server、Master server,以及客户端的各种操作等。
在Master Server开启Mfscgiserv
在客户端上通过浏览器访问http://192.168.1.1:9425
其中各部分的含义如下:
Info部分:显示了MFS的基本信息
Server部分:列出现有Chunk Server
Disks部分:列出现有Chunk Server硬盘信息
Exports部分:列出可被挂载的目录
Mounts部分:列出被挂载的目录
Operations部分:显示正在执行的操作
Master charts部分:显示Master Server的操作情况,读、写、删除等操作
Server charts部分:显示Chunk Server的操作情况、数据传输率及系统状态
6.MFS维护及灾难恢复
1).MFS集群的启动与停止
MFS集群的启动顺序如下
(1)启动mfsmaster进程
(2)启动所有的mfsChunkserver进程
(3)启动mfsmetalogger进程
(4)在所有客户端上挂载NFS文件系统
MFS集群的停止顺序如下
(1)在所有客户端卸载MFS文件系统
(2)用mfschunkserver -s停止Chunkserver进程
(3)用mfsmetalogger -s停止mfsmetalogger进程
(4)用mfsmaster -s停止mfsmaster进程
2).MFS灾难恢复
整个MFS体系中,直接断电只有master server进程有可能无法启动,可以在master上使用命令/usr/local/mfs/sbin/mfsmetarestore -a修复
MFS元数据通常有两部分的数据,分别如下
(1)主要元数据文件metadata.mfs,当mfsmaster运行时会被命名为metadata.mfs.back。
(2)元数据改变日志 changelog.*.mfs,存储了过去N小时的文件变更。
在Master发生故障时,可以从Metalogger中恢复Master,步骤如下
(1)安装一台mfsmaster,利用同样的配置来配置这台mfsmaster,mfsmaster进程先不要启动
(2)将metalogger上/usr/local/mfs/var/mfs/目录下所有文件复制到mfsmaster相应的目录中
(3)利用mfsmetarestore命令合并元数据changelogs
(4)开启Master Server
注意:如果是全新安装的master,恢复数据后,需要更改metalogger和chunkserver,配置MASTER_HOST的ip地址,客户端也需要重新挂载mfs目录。
标签:MFS
原文地址:http://blog.51cto.com/13555753/2084518