MFS分布式文件系统

几台Web服务器经过NFS共享一个存储,在业务功能上知足需求,但在性能与容量上NFS没法胜任更高的要求。MFS即moosefs,能够提供容量PB级别的共享存储,无需昂贵的专业硬件服务器,自身拥有冗余功能及动态扩容功能,保证数据的安全性。python

工做原理:
web

分布式原理centos

分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就能够的看到全部连接到此文件夹内的共享文件夹。分布式文件系统的好处是集中访问、简化操做、数据容灾、提升文件存取性能浏览器

MFS原理安全

MFS是一个具备容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。服务器

(1)MFS文件系统的组成网络

元数据服务器(Master:在整个体系中负责管理文件系统,维护元数据,目前不支持高可用。session

元数据日志服务器(MetaLogger:备份Master服务器的变化日志文件,文件类型为change_ml.*.mfs。当master服务器损坏,能够从日志服务器中取得文件恢复。分布式

数据存储服务器(Chunk Server真正存储数据的服务器。存储文件时,会把文件分块保存,并在服务器之间复制,数据服务器越多,容量就越大,可靠性越高,性能越好。ide

客户端(Client: 能够像挂载NFS同样 挂载MFS文件系统。

2018-03-05_110345.png


(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告知客户端数据写入成功

   客户端告知元数据服务器本次写入完毕

案例实施

实验拓扑

2018-03-05_111626.png

实验过程

  1. 搭建Master Server

(1)关闭防火墙、安装支持软件

2018-03-04_155830.png

(2)建立用户

2018-03-04_155857.png

(3)安装源码包

2018-03-04_155914.png

(4)复制文件

2018-03-04_160153.png


2018-03-04_160607.png

(5)配置文件

须要用到的配置文件有两个:mfsmaster.cfg(主配置文件)和mfsexports.cfg(被挂载目录及权限配置文件)

mfsmaster.cfg文件经常使用参数以下

2018-03-04_160722.png

2018-03-04_160809.png

mfsexports.cfg文件参数合适以下

2018-03-05_114404.png

该文件,每个条目分为三个部分

 第一部分:客户端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.cfgmfsexport文件的解释,默认就是最好的,不须要作任任何修改。

(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

         再启动就不会出现任何信息

2018-03-04_161032.png


中止Master Server的命令是/usr/local/mfs/sbin/mfsmaster -s

2.搭建Metalogger Server

(1)关闭防火墙、安装支持软件,建立用户、安装源码包

2018-03-04_161247.png

(2)复制文件

2018-03-04_161434.png

(3)修改配置文件

2018-03-04_161457.png

2018-03-04_161532.png

(4)启动服务

2018-03-04_161658.png

中止Metalogger Server的命令是/usr/local/mfs/sbin/mfsmetalogger -s

3.搭建Chunk Server(两台Chunk Server操做同样)

(1)关闭防火墙、安装支持软件,建立用户、安装源码包

2018-03-04_161832.png

(2)复制文件

2018-03-04_162019.png

(3)修改配置文件

2018-03-04_162040.png

2018-03-04_162112.png


2018-03-05_120110.png

2018-03-04_162231.png

(4)建立文件,并设置权限

2018-03-05_120254.png

(5)开启服务

2018-03-04_162540.png

中止Chunk Server的命令是/usr/local/mfs/sbin/mfschunkserver -s

4.客户端设置

2018-03-04_171017.png

(1)安装fuse

2018-03-04_171027.png

而后设置环境变量

2018-03-04_171130.png

2018-03-04_171156.png

当即生效

2018-03-04_171236.png

(2)安装MFS客户端

2018-03-04_171447.png

(3)挂载MFS文件系统

2018-03-04_171713.png

2018-03-04_171758.png

若是要卸载MFS,使用命令umount /mnt/mfs便可

(4)MFS经常使用操做

MFS客户端安装完毕后,会生成/usr/local/mfs/bin/目录,在这个目录下有不少命令是用户所需的。为了方便使用这些命令,可将/usr/local/mfs/bin加入到环境变量中。

2018-03-04_171130.png

2018-03-04_171939.png

2018-03-04_171236.png

mfsgetgoal命令用来查看文件被复制的分数,利用-r命令能够对整个目录进行递归,goal是指文件比复制的分数

2018-03-04_172023.png

命令mfssetgoal用来设置文件被复制的分数,生产环境下Chunk server节点数量应大于2,文件副本数小于等于Chunk server服务器的数量。

2018-03-04_172102.png

建立文件测试以下

2018-03-04_172200.png

分别打开两台Chunk Server,查看/data文件,都产生了加密数据,说明成功了

2018-03-04_172243.png


5.MFS监控

mfscgiserv是用python编写的一个web服务器,其监听端口是9425,能够再masster server 上经过 /usr/local/mfs/sbin/mfscgiserv来启动,用户利用浏览器就能够彻底监控全部客户挂接、Chunk serverMaster server,以及客户端的各类操做等。

在Master Server开启Mfscgiserv

2018-03-04_172332.png

在客户端上经过浏览器访问http://192.168.1.1:9425

2018-03-04_172414.png

其中各部分的含义以下:

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相应的目录中

2018-03-04_172542.png

(3)利用mfsmetarestore命令合并元数据changelogs

2018-03-04_172613.png

(4)开启Master Server

注意:若是是全新安装的master,恢复数据后,须要更改metaloggerchunkserver,配置MASTER_HOSTip地址,客户端也须要从新挂载mfs目录。

相关文章
相关标签/搜索