MFS分布式文件系统的搭建

MFS分布式文件系统的搭建

一:介绍MFS

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

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

1、MFS文件系统的组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6zTRHGM-1585304871630)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1585125328948.png)]

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、实验环境

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OI6ecPAY-1585304871631)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1585295810147.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kl8xFMNJ-1585304871632)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1585303220833.png)]

(如果要卸载 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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1zkVkTnI-1585304871633)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1585304572836.png)]

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值