MFS分布式文件系统的原理及环境搭建

概述:

NFS网络文件系统在性能与容量上无法胜任更高的要求,而本篇讲的MFS(MooseFS)可以提供容量PB级别的共享存储,无需昂贵的专业硬件服务器,自身就拥有冗余功能及动态扩容功能,能保证数据的安全性。`

分布式原理:

分布式文件系统(distributed file system)是指文件系统管理的物质存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单说就是把一些分布在局域网内各个计算机上的共享文件夹,集合到一个虚拟共享文件夹内,客户端访问只需要打开这个虚拟共享文件夹即可。
分布式文件系统的优点:集中访问、简化操作、数据容灾、提高了文件的存储性能。

MFS原理:

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

MFS文件系统的组成架构:

* 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
* 元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs 当Master服务器数据丢失或者损坏时,可以从日志服务器中取得进行恢复。
* 数据存储服务器(Chunk server):真正存储数据的服务器。将文件分块保存,并相互进行复制。
* 客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。

MFS读取数据的处理过程:

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

MFS写入数据的处理过程:

* 客户端向元数据服务器发送写入请求。
* 元数据服务器与Chunk server进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk server告知元数据服务器操作成功。
* 元数据服务器告知客户端,可以在哪个Chunk server的哪些Chunks写入数据。
* 客户端向指定的Chunk server写入数据。
* 该Chunk server与其他Chunk server进行数据同步,同步成功后Chunk server告知客户端数据写入成功。
* 客户端告知元数据服务器本次写入完毕。

接下来进行环境搭建实验:

实验环境部署:

主机 操作系统 IP地址 主要软件
Master Server CentOS7.5 x86_64 192.168.138.138 mfs-1.6.27-5.tar.gz
Metalogger Server CentOS7.5 x86_64 192.168.138.128 mfs-1.6.27-5.tar.gz
Chunk Server01 CentOS7.5 x86_64 192.168.138.130 mfs-1.6.27-5.tar.gz
Chunk Server02 CentOS7.5 x86_64 192.168.138.139 mfs-1.6.27-5.tar.gz
Client CentOS7.5 x86_64 192.168.138.140 mfs-1.6.27-5.tar.gz/fuse-2.9.2.tar.gz

首先搭建master server:

安装环境包:

* yum install -y zlib-devel gcc gcc-c++              #安装所需的环境包
* useradd mfs -s /sbin/nologin                          #创建用户mfs

解压下载好的软件包并进行手工编译安装:

* tar zxvf mfs-1.6.27-5.tar.gz -C /opt/
* cd mfs-1.6.27                     #切换到opt/mfs-1.6.27下插入如下配置
* ./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
* make && make install

切换到配置文件下复制并去掉模板的dist后缀,开启配置文件:

* cd /usr/local/mfs/etc/mfs/
  cp mfsmaster.cfg.dist mfsmaster.cfg
  cp mfsexports.cfg.dist mfsexports.cfg
  cp mfstopology.cfg.dist mfstopology.cfg
* cd /usr/local/mfs/var/mfs/
  cp metadata.mfs.empty metadata.mfs
* vim mfsmaster.cfg    #不需要改动
* vim mfsexports.cfg   #不需要改动

关闭防火墙、关闭增强×××:

* systemctl stop firewalld.service
* setenforce 0
* /usr/local/mfs/sbin/mfsmaster start    #开启服务
* ps -ef | grep mfs        #查看监听状态
* /usr/local/mfs/sbin/mfsmaster -s  #停止

到此master server已经搭建完成,接下来搭建metalogger server:

安装编译环境、关闭防火墙、关闭增强×××:

* yum install -y zlib-devel gcc gcc-c++
* systemctl stop firewalld.service
* setenforce 0

创建mfs用户,解压软件包进行手工编译:

* useradd -s /sbin/nologin mfs
* tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
* cd mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
* make && make install

切换到配置文件下复制并去掉模板的dist后缀,开启配置文件

* cd /usr/local/mfs/etc/mfs/
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
* vim mfsmetalogger.cfg
MASTER_HOST = 192.168.138.138      去掉#注释 添加主机地址
* cd /usr/local/mfs/var/mfs
  mv metadata.mfs.empty metadata.mfs
* /usr/local/mfs/sbin/mfsmetalogger start    #开启服务

到此metalogger server已经搭建完成,接下来搭建两台节点服务器 chunk server:

先搭建第一台chunk server:

* systemctl stop firewalld.service
* setenforce 0
* yum install -y zlib-devel gcc gcc-c++
* useradd -s /sbin/nologin mfs
* tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
* cd /opt/mfs-1.6.27
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
* make && make install
* cd /usr/local/mfs/etc/mfs/
  cp mfschunkserver.cfg.dist mfschunkserver.cfg
  cp mfshdd.cfg.dist mfshdd.cfg
*   vim mfschunkserver.cfg
MASTER_HOST = 192.168.138.138      去掉#注释 添加主机地址
* vim mfshdd.cfg
/data               #末尾添加`` 提供存储空间
* mkdir /data
* chown -R mfs:mfs /data
* /usr/local/mfs/sbin/mfschunkserver start
* netstat -ntap
* 提示: 第一台 chunk server搭建完成,第二台和第一台安装配置是一样的,这里就不再写了。

接下来配置客户端:

* systemctl stop firewalld.service
* setenforce 0
* yum install -y zlib-devel
* tar xzvf fuse-2.9.2.tar.gz -C /opt/
* cd /opt/fuse-2.9.2
  ./configure
* make && make install 
* vim /etc/profile
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH  #末尾插入
* source /etc/profile
* 安装mfs客户端:
* useradd mfs -s /sbin/nologin
* tar zxvf mfs-1.6.27-5.tar.gz -C /opt/
* 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
* mkdir /opt/mfs
* modprobe fuse  #加载fuse模块到内核
* /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.138.138   #指向master主机
* df -hT   #查看挂载
* umount /opt/mfs    #需要时可解挂载
* 优化客户端:
* vim /etc/profile
* export PATH=/usr/local/mfs/bin:$PATH       #设置环境变量 在末尾插入
* cd /opt/mfs(可在mfs里写入内容进行验证:echo "this is test" > test.txt)
* source /etc/profile    #重新加载
* mfsgetgoal -r /opt/mfs/
* mfsgetgoal -r 2 /opt/mfs/        #复制2份文件

最后一步在master server启动监控程序:

* /usr/local/mfs/sbin/mfscgiserv
* http://192.168.138.138:9425        #客户端浏览器上进行访问测试

* 上述测试访问到的MFS监控表中各部分的含义如下:
Info部分:显示了MFS的基本信息
Server部分:列出现有的Chunk Server
Disks部分:列出每一台Chunk Server的磁盘目录及使用量
Exports部分:列出被共享的目录,即可被挂载的目录
Mounts部分:显示被挂载的情况
Operations部分:显示正在执行的操作
Master Charts部分:显示Master Server的操作情况,包括读取、写入、创建目录、删除目录等

本篇总结:

  • MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的是一个统一整合的资源。
  • MFS文件系统的组成包括 元数据服务器(Master)、元数据日志服务器(MetaLogger)、数据存储服务器(Chunk server)和客户端(Client)。
  • 元数据服务器(Master)需要用到的配置文件有两个,分别是mfsmaster.cfg和mfsexports,cfg.
  • 在元数据服务器(Master)发生故障时,可以从Metalogger中恢复Master.

原文地址:http://blog.51cto.com/13721050/2286861

时间: 2024-11-08 20:26:28

MFS分布式文件系统的原理及环境搭建的相关文章

MFS分布式文件系统之原理

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

MFS分布式文件系统

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

高效实用,在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分布式文件系统 MFS是一种半分布式文件系统,它是由波兰人开发的.MFS文件系统能够实现RAID的功能,不但能够更节约存储成本,而且不比专业的存储系统差,它还可以实现在线扩展. 分布式文件系统是指文件系统管理的物理存储资源下不一定直接连接在本地节点上,而是通过计算机网络与节点相连. 分布式文件系统的优点是集中访问.简化操作.数据容灾,以及提高了文件的存取性能. MFS文件系统的组成架构: 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据: 元数据日志服务器(Metal

linux mfs分布式文件系统

mosefs介绍: mooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类UNIX文件系统一样,包含了层级结构(目录树),存储着文件属性(权限.最后访问和修改时间),常见特殊的文件(块设备.字符设备.管道.套接字),符号链接,硬链接.MooseFS[MFS]是一个具有容错性的网络分布式文件系统.它把数据分散存放在多个物理服务器上,但呈现给用户的则是一个统一的资源当我们存储服务器的容量达到瓶颈之后,那我们就需要采用

【Linux--中级篇】MFS分布式文件系统

MFS分布式文件系统 1.实验环境 主机 操作系统 IP地址 主要软件 Master Server CentOS6.5x86_64 192.168.10.10 mfs-1.6.27-5.tar.gz MasterLogger Server CentOS6.5x86_64 192.168.10.11 mfs-1.6.27-5.tar.gz Chunk Server1 CentOS6.5x86_64 192.168.10.15 mfs-1.6.27-5.tar.gz Chunk Server2 Ce

九爷带你部署Mfs分布式文件系统

Mfs分布式文件系统 前言:前面我们学习过NFS,以及虚拟化课程的时候我们学习过openfiler,这两个都是属于存储服务器.但是他们有着共同的缺点,就是性能不好,因为都是通过共享方式共享一个存储空间,使得服务器不堪重负,会出现超时的问题,而且存在着单点故障问题,尽管可以用rsync同步数据到另外一台服务器上做备份,但性能方便没有任何提升.而分布式文件系统把数据分散存储在不同的服务器上,读取数据的时候相当于同时读取,不像nfs是一对多的关系,而是多对多的关系,这样可以使得性能得到大幅提升. 今天

MFS分布式文件系统的部署

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

构建MFS分布式文件系统

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