企业实用——MFS网络分布式文件系统

-----------------------MFS----------------------

(1)分布式原理

分布式文件系统( Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单来说,就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件
是分散于各个计算机上的。分布式文件系统的好处是集中访问、简化操作、数据容灾,以及提高文件的存取性能。


(2)MFS原理

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

  • 元数据服务器( Master):一台管理整个文件系统的独立主机,在整个体系中负责管理文件系统,维护元数据。(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)
  • 元数据日志服务器( MetaLogger):备份 Master服务器的变化日志文件,文件类型为 changelog ml。*mfs当 Master服务器数据丢失或者损坏时,可以从日志服务器中取得文件,进行恢复。
  • 数据存储服务器( Chunk server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在数据服务器之间进行复制。数据服务器越多,能使用的“容量”就越大,可靠性就越高,性能也就越好。
  • 客户端( Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
    > MFS文件系统的组成架构如图所示。

2)MFS读取数据的处理过程

  • 客户端向元数据服务器发出读请求。
  • 元数据服务器把所需数据存放的位置( Chunk Server的P地址和 Chunk编号)告知客户端。
  • 客户端向已知的 Chunk server请求发送数据
  • Chunk Server向客户端发送数据。

3)MFS写入数据的处理过程

  • 客户端向元数据服务器发送写入请求
  • 元数据服务器与 Chunk Server进行交互(只有当所需的分块 Chunks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由 Chunk servers告知元数据服务器操作成功。
  • 元数据服务器告知客户端,可以在哪个 Chunk Server的哪些 Chunks写入数据。
  • 客户端向指定的 Chunk server写入数据。
  • 该 Chunk Server与其他 Chunk Server进行数据同步,同步成功后 ChunkServer告知客户端数据写入成功
  • 客户端告知元数据服务器本次写入完毕

---------------------案例实验----------------------

概述
公司之前的图片服务器采用的是NFS,随着业务量增加,多台服务器通过NFS方式共享一个服务器的存储空间,使得NFsS服务器不堪重负,经常出现超时问题。而且NFS存在着单点故障问题,尽管可以rsync同步数据到另外一台服务器上做NFS服务的备份,但这对提高整个系统的性能并无帮助。基于目前的需求,我们需要对NFS服务器进行优化或采取别的解决方案,然而优化并不能应对日益增多的客户端的性能要求,因此选择的解决方案是采用分布式文件系统。采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系,而是多对多的关系,这样可以使性能得到大幅提升。
在当前多种常用的分布式文件系统中,我们采用了MFS( MooseFS)。
>[需要注意:MFS的MasterServer管理节点只有一个,也有可能会出现单点故障,后续我会写出解决方案FastDFS】

MFS虽然有单点故障的可能性缺点,但也有很多比较好的特点比如:
1、高可靠(数据的多个拷贝被存储在不同的计算机上)
2、通过附加新的计算机或者硬盘可以实现容量的动态扩展
3、删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站)
4、不受访问和写入影响的文件连贯快照


MFS正式推出是在2008年5月,它是一个具有容错功能的、高可用、可扩展的海量级分布式文件系统。MFS把数据分散在多台服务器上,但用户看到的只是一个源。MFS也像其他类UNX文件系统一样,包含了层级结构和文件属性,可以创建特殊的文件(块设备、字符设备、管道、套接字)、符号链接和硬链接。

实验环境:

主机 操作系统 IP地址 软件安装
Master Server CentOS 7 192.168.233.128 mfs-1.6.27-5.tar.gz
MetaLogger Server CentOS 7 192.168.233.6 mfs-1.6.27-5.tar.gz
Chunk Server 1 CentOS 7 192.168.233.4 mfs-1.6.27-5.tar.gz
Chunk Server 2 CentOS 7 192.168.233.10 mfs-1.6.27-5.tar.gz
Client CentOS 7 192.168.233.11 mfs-1.6.27-5.tar.gz fuse-2.9.2.tar.gz
软件包 百度网盘
mfs-1.6.27-5.tar.gz 链接:https://pan.baidu.com/s/1-l0ZEisWmlGT2aNqR2nGaw 密码:e98v
fuse-2.9.2.tar.gz 链接:https://pan.baidu.com/s/1rZPOnsVISzu0Z0aucr7J7g 密码:71si

一、Master Server和MetaLogger Server共同步骤:

1.关闭防火墙

#关闭防火墙
systemctl stop firewalld.service
setenforce 0

2.安装环境

yum install gcc gcc-c++ zlib-devel -y

3.创建MFS程序用户

useradd -s /sbin/nologin mfs

4.解压缩MFS文件

tar zxvf mfs-1.6.27-5.tar.gz -C /opt

5.安装设置

cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount

6.编译安装

make && make install

7.复制元数据文件

cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs

接下来是Master Server和MetaLogger Server的单独操作

二、Master Server操作

1.复制配置模板,从而开启功能

cd /usr/local/mfs/etc/mfs/
[[email protected] mfs]# cp mfsexports.cfg.dist mfsexports.cfg       #权限配置文件
[[email protected] mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg            #master配置文件
[[email protected] mfs]# cp mfstopology.cfg.dist mfstopology.cfg           #本服务器的日志文件

2.启动主服务器服务:

/usr/local/mfs/sbin/mfsmaster start

3.查看下mfsmaster服务是否开启

ps -ef | grep mfs

三、MetaLogger Server操作

1.复制配置模板,从而开启功能

cd /usr/local/mfs/etc/mfs/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

2.修改mfs日志服务配置文件

[[email protected] mfs]# vim mfsmetalogger.cfg
....以上内容忽略
MASTER_HOST = 192.168.233.128         #修改并指向Master Server的地址
#MASTER_PORT = 9419
....以下内容忽略

修改完成后保存退出

3.启动MetaLogger Server服务器服务

/usr/local/mfs/sbin/mfsmetalogger start

4.查看下服务是否开启

[[email protected] mfs]# ps -ef | grep mfs

日志服务器服务开启

需要注意:
默认为24小时,即每隔一天从元数据服务器Master下载一个metadata.mfs.back 文件。
当元数据服务器关闭或者出故障时,matedata.mfs.back 文件将消失,
那么要恢复整个mfs, 则需从 metalogger服务器取得该文件。
请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统。

四、Chunk Server 1和2共同操作

1.安装环境

yum install gcc gcc-c++ zlib-devel -y

2.创建MFS程序用户

useradd -s /sbin/nologin mfs

3.解压缩文件

tar zxvf mfs-1.6.27-5.tar.gz -C /opt

4.安装设置

cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount

5.编译安装

make && make install

6.复制配置模板,从而开启功能

cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg

7.修改mfschunk配置文件

vim mfschunkserver.cfg
....以上内容忽略
#BIND_HOST = *
MASTER_HOST = 192.168.233.128                        #修改并指向Master Server的地址
#MASTER_PORT = 9420
....以下内容忽略

修改完成后保存退出

8.修改配置文件

vim mfshdd.cfg
....以上内容忽略
#/mnt/hd1
#/mnt/hd2
#etc.
/data                             #添加文件目录
~
修改完成后保存退出

9.创建文件目录,并且更改属主属组

mkdir /data
chown -R mfs.mfs /data

10.开启服务

/usr/local/mfs/sbin/mfschunkserver start

11.查看服务开启

ps -ef | grep mfs

五、Client 操作

1.关闭防火墙

systemctl stop firewalld.service
setenforce 0

2.安装环境

yum install gcc gcc-c++ zlib-devel -y

3.解压缩fuse

tar zxvf fuse-2.9.2.tar.gz -C /opt/

4.编译安装

cd /opt/fuse-2.9.2/
./configure
make && make install

5.编辑环境变量

vim  /etc/profile
#在末尾插入一行:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

添加完成后保存退出
source /etc/profile

6.安装mfs

cd ~ 
useradd -s /sbin/nologin mfs              #创建mfs程序用户
tar zxvf mfs-1.6.27-5.tar.gz -C /opt              #解压缩文件

7.编译安装mfs

cd /opt/mfs-1.6.27/
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
make && make install

8.加载Fuse内核

mkdir /opt/mfs         #创建挂载目录
modprobe fuse           #加载fuse内核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.233.128               #Master Server挂载到客户端

PS:优化客户端操作

Client操作:
1.为了可以直接使用mfsmount这条命令,进行环境变量的修改。
编辑环境变量:

vim /etc/profile
#末尾插入一行:
export PATH=/usr/local/mfs/bin:$PATH

添加完成后保存退出

-----------在Master Server上启动监控程序-----------

启动监控:

/usr/local/mfs/sbin/mfscgiserv

输入Master Server地址进入监控
http://192.168.233.128:9425

原文地址:http://blog.51cto.com/13767783/2287720

时间: 2024-10-02 19:41:40

企业实用——MFS网络分布式文件系统的相关文章

高效实用,在centos7上搭建MFS分布式文件系统

MFS原理: MFS是一个具有容错性的网络分布式文件系统,他把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源 MFS文件系统组成: 1.元数据服务器(master) 2.元数据日志服务器(metalogger) 3.数据存储服务器(chunk server) 4.客户端(client) 下面进行MFS分布式文件系统搭建演示 案列环境: master server: 192.168.100.128 metalogger server:192.168.100.134 chunk s

构建MFS分布式文件系统

++++++++++++++构建MFS分布式文件系统++++++++++++++PB级别:企业存储空间达到PB级别,即100万GB空间.(1PB=1000TB,1TB=1000GB,1GB=1000MB)MFS原理:MFS是一个具有容错额网络分布式文件系统,他把数据分散存放在多个物理服务器上,而呈现给用户则是一个统一的资源.MFS组成:1)元数据服务器:2)元数据日志服务器:3)数据存储服务器:4)客户端:MFS拓扑:-------Client---------Master---------Ma

MFS分布式文件系统

防伪码:我没有太多坚强,只比苦难多一点 第十一章  MFS分布式文件系统 前言:几台Web服务器通过NFS共享一个存储,在业务功能上满足需求,但在性能与容量上NFS无法胜任更高的要求.MFS即moosefs,可以提供容量FB级别的共享存储,无需昂贵的专业硬件服务器,自身拥有冗余功能及动态扩容功能,保证数据的安全性.本章将介绍MFS分布式文件系统的原理及环境搭建. 一. 工作原理 1.分布式原理 分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的

MFS分布式文件系统之安装部署

MFS分布式文件系统之安装部署 Moose File System 是一个具备容错功能的网络分布式文件系统,它将数据分布在网络中的不同服务器上 管理服务器 (managing server) 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝 元数据日志服务器 (Metalogger server) 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作 数据存储服务器 (d

53.MFS分布式文件系统

MFS分布式文件系统 MFS分布式文件系统是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. MFS分布式操作系统搭建过程: v 搭建master服务器 #iptables -F #setenforce 0 #yum -y install zlib-devel #useradd mfs -s  /sbin/nologin #tar xzvf mfs-1.6.27-5.tar.gz #cd mfs.1.6.27 #./configure -

MFS分布式文件系统之原理

1.分布式原理分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹.2.MFS原理MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源.1)MFS的组成元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据,目前不支持高可用.元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件

搭建MFS分布式文件系统

MFS原理 MFS 是一个具有容错性的网络分布式文件系统.它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. MFS的组成 管理服务器 Master: 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝 元数据日志服务器 MetaLogger: 负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master 出问题的时候.从日志服务器取得文件,进行恢复 数据存储服务器 chunk servers

CentOS 7下搭建MFS分布式文件系统

MFS原理 MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个服务器上,而呈现给用户的则是一个统一的资源. MFS文件系统的组成架构: 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据: 元数据日志服务器(Metalogger):备份Master服务器的变化日志文件,文件类型为changlog_ml.*.mfs.当Master服务器数据丢失或者损坏时,可以从日志服务器中取得文件,进行恢复: 数据存储服务器(Chunk Server):真正存储的数据的服务器.

MFS分布式文件系统的部署

MFS分布式文件系统的部署 MFS简介 MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. MFS文件系统的组成. 元数据服务器(master):负责管理文件系统,维护元数据. 元数据日志服务器(MetaLogger):存放日志文件. 数据存储服务器(Chunk Server):真正存储数据的服务器. 客户端(client):用来挂载MFS文件文件系统的. MFS读取数据的处理过程. 1. 客户端向元数据服务器发出读请求. 2. 元