MFS分布式文件系统搭建

Cheetahcubs 2020-01-07

MFS概述

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

优势

1、高可靠(数据的多个拷贝被存储在不同的计算机上)
2、通过附加新的计算机或者硬盘可以实现容量的动态扩展
3、删除的文件可以根据一个可配置的时间周期进行保留(一个文件系统级别的回收站)
4、不受访问和写入影响的文件连贯快照

缺点

master服务器不能解决单点故障

MFS的构成

元数据服务器(Master):

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

元数据日志服务器(MetaLogger):

备份Master服务器的变化日志文件,当master服务器损坏,可以从日志服务器中取得文件恢复。

数据存储服务器(Chunk Server):

真正存储数据的服务器,服务器越多,容量就越大,可靠性越高,性能越好。

客户端(Client):

可以像挂载NFS一样 挂载MFS文件系统

实验拓扑图

MFS分布式文件系统搭建

实验环境

    服务器                IP地址             
master服务器        192.168.13.128
log日志服务器        192.168.13.129
chunk1服务器        192.168.13.130
chunk2服务器        192.168.13.131
client客户机        192.168.13.132

1,配置master调度服务器

[ ~]# systemctl stop firewalld.service  ##关闭防火墙
[ ~]# setenforce 0
[ ~]# yum install gcc gcc-c++ zlib-devel -y  ##安装必要的环境组件
[ ~]# useradd -s /sbin/nologin mfs  ##创建mfs系统用户
[ ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/  ##挂载
[ ~]# cd /mnt/mfs
[ mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/  ##解压到/opt
[ mfs]# cd /opt/
[ opt]# cd mfs-1.6.27/
[ mfs-1.6.27]# ./configure \   ##配置
> --prefix=/usr/local/mfs \     ##安装路径
> --with-default-user=mfs \   ##默认用户和组
> --with-default-group=mfs > --disable-mfschunkserver \   ##关闭两项功能,chunkserver是chunk服务器需要的
> --disable-mfsmount
[ mfs-1.6.27]# make && make install  ##编译安装
[ mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/  ##切换到mfs配置文件目录
[ mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg  ##master服务器配置文件
[ mfs]# cp mfsexports.cfg.dist mfsexports.cfg  ##挂载权限配置文件
[ mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg  ##日志配置文件
[ mfs]# cd /usr/local/mfs/var/mfs/
[ mfs]# cp metadata.mfs.empty metadata.mfs  ##元数据文件
[ mfs]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin  ##命令便于系统识别
[ mfs]# chown -R mfs.mfs /usr/local/mfs/   ##给mfs目录属主属组权限
[ mfs]# mfsmaster start   ##开启服务
##关闭为mfsmaster -s
[ mfs]# ps -elf | grep mfs  ##查看服务开启情况

2,配置metalogger日志服务器

##默认24小时,从master下载metadata.mfs.back,恢复整个mfs,需要从日志服务器取得该文件
[ ~]# systemctl stop firewalld.service 
[ ~]# setenforce 0
[ ~]# yum install zlib-devel gcc gcc-c++ -y
[ ~]# useradd -s /sbin/nologin mfs
[ ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for //192.168.100.3/LNMP-C7:  
[ ~]# cd /mnt/mfs/
[ mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/
[ mfs]# cd /opt/
[ opt]# cd mfs-1.6.27/
[ mfs-1.6.27]# ./configure \   ##配置
> --prefix=/usr/local/mfs \     ##安装路径
> --with-default-user=mfs \   ##默认用户和组
> --with-default-group=mfs > --disable-mfschunkserver \   ##关闭两项功能,此两项功能是chunk服务器需要的
> --disable-mfsmount
[ mfs-1.6.27]# make && make install  ##编译安装
[ mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/
[ mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg  ##复制配置文件模板
[ mfs]# vim mfsmetalogger.cfg  ##编辑配置文件
MASTER_HOST = 192.168.13.128  ##指定master服务器地址
[ mfs]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/   ##命令便于系统识别
[ mfs]# mfsmetalogger start  ##开启服务

3,配置chunk1,2存储服务器(两个chunk服务器操作一致)

[ ~]# systemctl stop firewalld.service 
[ ~]# setenforce 0
[ ~]# yum install zlib-devel gcc gcc-c++ -y
[ ~]# useradd -s /sbin/nologin mfs
[ ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for //192.168.100.3/LNMP-C7:  
[ ~]# cd /mnt/mfs/
[ mfs]# tar zxvf mfs-1.6.27-5.tar.gz -C /opt/
[ mfs]# cd /opt/mfs-1.6.27/
[ mfs-1.6.27]# ./configure > --prefix=/usr/local/mfs > --with-default-user=mfs > --with-default-group=mfs > --disable-mfsmaster \   ##关闭master功能
> --disable-mfsmount
[ mfs-1.6.27]# make && make install
[ mfs-1.6.27]# cd /usr/local/mfs/etc/mfs/
[ mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg  ##复制配置文件模板
[ mfs]# cp mfshdd.cfg.dist mfshdd.cfg 
[ mfs]# vim mfschunkserver.cfg
MASTER_HOST = 192.168.13.128  ##添加master服务器的地址
[ mfs]# vim mfshdd.cfg
##末行添加
/data  ##存储空间
[ mfs]# mkdir /data  ##创建存储空间
[ mfs]# chown -R mfs.mfs /data/  ##给mfs属主属组权限
[ mfs]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[ mfs]# mfschunkserver start  ##开启服务

4,配置client客户端

[ ~]# systemctl stop firewalld.service 
[ ~]# setenforce 0
[ ~]# yum install gcc gcc-c++ zlib-devel -y
[ ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for //192.168.100.3/LNMP-C7:  
[ ~]# cd /mnt/mfs/
[ mfs]# tar zxvf fuse-2.9.2.tar.gz -C /opt/  ##客户端跟master挂载模块
[ mfs]# cd /opt/fuse-2.9.2/
[ fuse-2.9.2]# ./configure  ##配置
[ fuse-2.9.2]# make && make install  ##编译安装
[ fuse-2.9.2]# vim /etc/profile  ##配置环境变量
##末行添加
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
[ fuse-2.9.2]# source /etc/profile   ##刷新配置文件
[ fuse-2.9.2]# useradd -s /sbin/nologin mfs  
[ fuse-2.9.2]# cd /mnt/mfs/
[ mfs]# tar zvxf mfs-1.6.27-5.tar.gz -C /opt/
[ mfs-1.6.27]# ./configure > --prefix=/usr/local/mfs > --with-default-user=mfs > --with-default-group=mfs > --disable-mfsmaster \    ##关闭master和chunkserver
> --disable-mfschunkserver > --enable-mfsmount    ##开启挂载
[ mfs-1.6.27]# make && make install
[ mfs-1.6.27]# mkdir /opt/mfs   ##创建挂载点
[ mfs-1.6.27]# modprobe fuse  ##加载fuse到内核
[ mfs-1.6.27]# /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.13.128  ##挂载
[ mfs-1.6.27]# df -hT  ##查看
192.168.13.128:9421     fuse.mfs   32G     0   32G    0% /opt/mfs

5,优化客户端

[ mfs-1.6.27]# vim /etc/profile
##末行添加
export PATH=/usr/local/mfs/bin:$PATH
[ mfs-1.6.27]# source /etc/profile
[ mfs-1.6.27]# mfsgetgoal -r /opt/mfs  ##复制一份副本

6,在chunk服务器上查看

[ mfs]# cd /data/
[ data]# ls   ##已经规划好分布结构
00  0E  1C  2A  38  46  54  62  70  7E  8C  9A  
01  0F  1D  2B  39  47  55  63  71  7F  8D  9B  
02  10  1E  2C  3A  48  56  64  72  80  8E  9C  
03  11  1F  2D  3B  49  57  65  73  81  8F  9D

7,在master服务器上启动监控程序

[ mfs]# mfscgiserv   ##开启监控程序
##在浏览器上查看服务器及磁盘

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


谢谢阅读!

相关推荐

summerZBH / 0评论 2012-06-04