MFS分布式文件系统的搭建

一:介绍MFS

​ MFS(MooseFS)是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。 MFS也像其他类的UNIX文件系统一样,包含了层级结构、文件属性,可以创建特殊的文件(块设备、字符设备、管道、套接字)、符号链接和硬链接 。

​ 分布式文件系统是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。

1、MFS文件系统的组成

2、MFS分布式系统的优势

● 集中访问
● 简化操作
● 数据容灾
● 提高文件存取性能

3、MFS读物数据的处理过程

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

4、MFS写入数据的处理过程

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

二:实验部署

1、实验环境

本次实验使用六台服务器模拟搭建

2、实验目的

采用分布式文件系统;服务器之间的数据访问不再是一对多的关系,而是多对多的关系;使性能得到大幅提升。

3、实验步骤

  • 六台服务器都要配置

  • 关闭防火墙、关闭核心保护、配置主机名、配置yum、配置hosts
  • 以master为例子
[root@localhost ~]# hostnamectl set-hostname master      ‘修改主机名’
[root@localhost ~]# su
[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld     ‘取消开机自启’
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master ~]# setenforce 0    ‘关闭核心防护’
[root@master ~]# vi /etc/sysconfig/selinux
SELINUX=disabled     ‘取消开机自启’[root@master ~]# vim /etc/hosts    ‘配置地址映射’
192.168.48.128  master
192.168.48.137  metalogger
192.168.48.132  chunk1
192.168.48.138  chunk2
192.168.48.130  chunk3
192.168.48.139  client[root@master ~]# yum -y install gcc gcc-c++ zlib-devel

搭建Master Server

(1)创建用户 ,挂载并解压源码包
[root@master ~]# useradd -s /sbin/nologin -M mfs
[root@master ~]# mkdir /abc
[root@master ~]# mount.cifs //192.168.0.107/share /abc
[root@master abc]# tar zvxf moosefs-3.0.100-1.tar.gz -C /opt
(2)编译安装
[root@master opt]# cd /opt/moosefs-3.0.100/
[root@master moosefs-3.0.100]#
./configure \
--prefix=/usr/local/mfs \      ‘指定安装目录’
--with-default-user=mfs \      ‘指定运行用户’
--with-default-group=mfs \     ‘指定运行组’
--disable-mfschunkserver \     ‘禁用chunk功能’
--disable-mfsmount             ‘禁用mfsmount功能’[root@master moosefs-3.0.100]# make && make install
(3)复制master配置文件
[root@master moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[root@master mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
[root@master mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[root@master mfs]# cp mfstopology.cfg.sample mfstopology.cfg
[root@master mfs]# cd /usr/local/mfs/var/mfs/
[root@master mfs]# cp -p metadata.mfs.empty metadata.mfs
[root@master mfs]# chown mfs:mfs /usr/local/mfs/var/mfs     ‘设置目录的属主属组’
[root@master mfs]#  /usr/local/mfs/sbin/mfsmaster start    ‘开启master server’
[root@master mfs]# netstat -anpt | grep mfs    ‘检测mfs是否开启’
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      9798/mfsmaster
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      9798/mfsmaster
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      9798/mfsmaster

搭建MetaLogger Server

(1)创建用户,挂载并解压源码包
[root@metalogger ~]# useradd -s /sbin/nologin -M mfs
[root@metalogger ~]# mkdir /abc
[root@metalogger ~]# mount.cifs //192.168.0.107/share /abc
[root@metalogger abc]# tar zvxf moosefs-3.0.100-1.tar.gz -C /opt
(2)编译安装
[root@metalogger abc]# cd /opt/moosefs-3.0.100/
[root@metalogger moosefs-3.0.100]# ./configure \
> --prefix=/usr/local/mfs \
> --with-default-user=mfs \
> --with-default-group=mfs \
> --disable-mfschunkserver \
> --disable-mfsmount[root@metalogger moosefs-3.0.100]# make && make install
(3)复制metalogger主配置文件,并修改文件,指定master地址
[root@metalogger moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs
[root@metalogger mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg[root@metalogger mfs]# vi /usr/local/mfs/etc/mfs/mfsmetalogger.cfg
MASTER_HOST = 192.168.48.128      ‘52行:取消注释,指定master的地址’
(4)开启mfs服务
[root@metalogger mfs]# /usr/local/mfs/sbin/mfsmetalogger start
[root@metalogger mfs]# netstat -anpt | grep mfs
tcp        0      0 192.168.48.137:51778    192.168.48.128:9419     ESTABLISHED 9880/mfsmetalogger

搭建Chunk server1

(1)创建用户,挂载并解压源码包
[root@chunk1 ~]# useradd -s /sbin/nologin -M mfs
[root@chunk1 ~]# mkdir /abc
[root@chunk1 ~]# mount.cifs //192.168.0.107/share /abc
[root@chunk1 abc]# tar zvxf moosefs-3.0.100-1.tar.gz -C /opt
(2)编译安装
 [root@chunk1 abc]# cd /opt/moosefs-3.0.100/
[root@chunk1 abc]#  cd /opt/moosefs-3.0.100/
[root@chunk1 moosefs-3.0.100]# ./configure \
> --prefix=/usr/local/mfs \
> --with-default-user=mfs \
> --with-default-group=mfs \
> --disable-mfsmaster \
> --disable-mfsmount[root@chunk1 moosefs-3.0.100]# make && make install
(3)复制mfschunk主配置文件,并修改文件,指定master地址
[root@chunk1 moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[root@chunk1 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@chunk1 mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@chunk1 mfs]# vi mfschunkserver.cfg
MASTER_HOST = 192.168.48.128       ‘71行:指定master服务器地址’
(4)添加一个挂载点目录
[root@chunk1 mfs]# vim mfshdd.cfg
/data     ‘末行添加,指定数据存放的目录’
[root@chunk1 mfs]# mkdir /data
[root@chunk1 mfs]# chown -R mfs:mfs /data
(5)开启服务
[root@chunk1 mfs]# /usr/local/mfs/sbin/mfschunkserver start
[root@chunk1 mfs]# netstat -anpt | grep mfs
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      9174/mfschunkserver
tcp        0      0 192.168.48.132:56084    192.168.48.128:9420     ESTABLISHED 9174/mfschunkserver

搭建Chunk 2 和 Chunk 3

搭建的过程与Chunk1 完全相同。(省略具体过程喽)

搭建Client

(1)挂载并解压fuse软件包到/opt下
[root@client ~]# mkdir /abc
[root@client ~]# mount.cifs //192.168.0.107/share /abc
[root@client abc]# tar xzvf fuse-2.9.2.tar.gz -C /opt
(2)编译安装
[root@client abc]# cd /opt/fuse-2.9.2
[root@client fuse-2.9.2]# ./configure
[root@client fuse-2.9.2]# make && make install
(3)设置环境变量
[root@client fuse-2.9.2]# vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH    ‘末尾添加’
[root@client fuse-2.9.2]# source /etc/profile    ‘使环境变量生效’
(4)安装MFS客户端
[root@client abc]# useradd -s /sbin/nologin -M mfs
[root@client abc]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@client abc]# cd /opt/moosefs-3.0.100/
[root@client moosefs-3.0.100]# ./configure \
> --prefix=/usr/local/mfs \
> --with-default-user=mfs \
> --with-default-group=mfs \
> --disable-mfsmaster \
> --disable-mfschunkserver \
> --enable-mfsmount[root@client moosefs-3.0.100]# make && make install
(5)挂载MFS文件系统
[root@client moosefs-3.0.100]# cd
[root@client ~]# mkdir /opt/mfs    '创建挂载点'
[root@client ~]# modprobe fuse '加载fuse模块到内核'
[root@client ~]# /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.48.128    '指向master服务器地址'
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root
[root@client ~]# df -hT

(如果要卸载 MFS, 使用命令 umount /opt/mfs 即可)

(6)优化MFS操作

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

[root@client moosefs-3.0.100]# vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH    ‘末行添加’
[root@client moosefs-3.0.100]# source /etc/profile[root@client moosefs-3.0.100]# mfsgetgoal -r /opt/mfs    ‘复制副本’
/opt/mfs:directories with goal          2 :          1‘mfsgetgoal 命令用来查询文件被复制的份数, 利用-r 命令可以对整个目录进行递归,
goal 是指文件被复制的份数’[root@client moosefs-3.0.100]# mfssetgoal -r 3  /opt/mfs    ‘数字代表复制几个副本’
(7)创建文件测试一下
[root@client moosefs-3.0.100]# cd /opt/mfs
[root@client mfs]# touch 51xit
[root@client mfs]# mfsgetgoal 51xit
51xit: 3
  • Master服务器上启动监控程序
[root@mfsmaster ~]#  /usr/local/mfs/sbin/mfscgiserv
在真机上打开浏览器访问:

http://192.168.48.128:9425/mfs.cgi?masterhost=master

各部分的含义:
Info 部分: 显示了 MFS 的基本信息
Servers 部分: 列出现有 Chunk Server
Disks 部分: 列出现有 Chunk Server 硬盘信息
Exports 部分: 列出可被挂载的目录
Mounts 部分: 列出被挂载的目录
Operations 部分: 显示正在执行的操作
Resources 部分: 列出当前存储信息
Quitas 部分: 列出当前配额信息
Master charts 部分: 显示 Master Server 的操作情况, 读、 写、 删除等操作
Server charts 部分: 显示 Chunk Server 的操作情况、 数据传输率及系统状态

MFS分布式文件系统的搭建相关推荐

  1. MFS分布式文件系统的部署

    目录 一.MFS分布式文件系统详述 分布式简介 MFS分布式文件系统的原理 MFS文件系统的组成 MFS文件系统的工作过程 二.MFS分布式文件系统的部署 实验环境 配置Master Server 配 ...

  2. MFS分布式文件系统及监控

    MFS分布式文件系统 文件系统:ext4.xfs.ext3 mooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类U ...

  3. MFS分布式文件系统存储之文件的删除恢复

    MFS分布式文件系统存储之文件的删除恢复 在MFS分布式集群中,Client 客户端的~/mfs/bin下具有很多的脚本命令,实现对master server虚拟共享目录的管理. 今天主要介绍的是其下 ...

  4. MFS分布式文件系统2-master双机热备实现高可用

    文章目录 前言 1.mfs1和mfs5做文件系统同步 1.1 将mfs5主机改为master主机 1.2 配置iscsi文件系统并同步元数据 1.2.1 删除moosefs2上的硬盘 1.2.2 配置 ...

  5. 详细讲解MFS分布式文件系统搭建(内含源码包)

    初步了解分布式原理: 分布式文件系统(Distributed File Systemm)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.简单来说,就是把一些分散 ...

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

    MFS : 网络分布式文件系统中的一种 Project web site: http://www.moosefs.com/ Installation and using MooseFS: http:/ ...

  7. MFS分布式文件系统搭建

    MFS分布式文件系统介绍 m ooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统一样,包含了层级结 ...

  8. mfs文件服务器,MFS分布式文件系统搭建

    MFS概述 MooseFS是一个具有容错性的网络分布式文件系统.它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. 优势 1.高可靠(数据的多个拷贝被存储在不同的计算机上) 2.通 ...

  9. SHELL脚本自动化部署MFS分布式文件系统

    前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...

最新文章

  1. PostgreSQL的configure 干了些什么(二)
  2. java indexof 忽略大小写_javascript的indexOf如何才能忽略大小写
  3. [Java基础]IO流小结
  4. Docker 下载 JDK 镜像(docker search 、docker pull)
  5. Spring Boot自动化配置的利弊及解决之道
  6. python 归并排序算法_python基本算法之实现归并排序(Merge sort)
  7. RTT学习笔记5-线程间的通讯
  8. codeforce438D The Child and Sequence
  9. oracle数据库索引
  10. 电子元件 —— 继电器
  11. 【电子商务突围物流瓶颈】南风窗商业杂志采访我的观点
  12. 360手机卫士linux版,360手机卫士极速版
  13. php获取月初月末时间戳
  14. Spark Transformation转换算子和Action行动算子
  15. 国内好用的免费DNS服务器
  16. 细雨湿衣看不见 闲花落地听无声
  17. Android 电池管理
  18. parameterType和@Param注解用法
  19. JSAPI微信支付开发流程和坑
  20. yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的

热门文章

  1. 7-29 二分法求多项式单根
  2. 【雕虫小技第1篇】如何将Scratch项目(转换)打包为一个HTML文件
  3. 易助工资总额管控产品介绍
  4. Solidworks如何标注垂直度,平行度
  5. R语言自学笔记:回归分析基础
  6. IAR OF STM8 Error[Pe095]: array is too large
  7. windows下结束进程命令
  8. 【C++】引用、内联函数、函数重载、函数默认参数(缺省参数)与占位参数、extern “C“ 浅析
  9. matlab的积分公式,玩转matlab之一维 gauss 数值积分公式及matlab源代码
  10. 需求文档怎么写?这里有一套思维框架