MFS分布式文件系统的部署

MFS简介

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

  • MFS文件系统的组成。

    元数据服务器(master):负责管理文件系统,维护元数据。
    
    元数据日志服务器(MetaLogger):存放日志文件。
    
    数据存储服务器(Chunk Server):真正存储数据的服务器。
    
    客户端(client):用来挂载MFS文件文件系统的。
  • MFS读取数据的处理过程。

    1. 客户端向元数据服务器发出读请求。
    
    2. 元数据服务器把所需数据存放的位置告知客户端。
    
    3. 客户端向已知的Chunk Server请求发送数据。
    
    4. Chunk Server向客户端发送数据。
  • MFS写入数据的处理过程。

    1. 客户端向元数据服务器发送写入请求。

    2. 元数据服务器与(ChunkServer进行交互)。

    3. 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据。

    4. 客户端向指定的Chunk Server写入数据。

    5. 该Chunk Server 与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。

    6. 客户端告知元数据服务器本次写入完毕。

实验环境

主机名称及角色 IP地址 主要软件
CentOS7-1(master) 172.16.10.138 mfs-1.6.27-5.tar.gz
CentOS7-2(MetaLogger) 172.16.10.137 mfs-1.6.27-5.tar.gz
CentOS7-3(chunkserever1) 172.16.10.133 mfs-1.6.27-5.tar.gz
CentOS7-4(chunkserever2) 172.16.10.136 mfs-1.6.27-5.tar.gz
CentOS7-6(client) 172.16.10.135 mfs-1.6.27-5.tar.gz、fuse-2.9.2.tar.gz

实验部署

搭建Master Server

  • 首先安装环境包

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

  • 创建管理用户

useradd -s /sbin/nologin -M mfs

  • 解压mfs软件、配置、编译安装

tar xf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \ #工作目录
--with-default-user=mfs \ #运行masterserver的用户
--with-default-group=mfs \ #运行masterserver的组
--disable-mfschunkserver \
--disable-mfsmount #关闭功能

make && make install #编译安装

  • 配置防断链

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

  • 复制配置文件(使模板生效)

cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg #主配置文件
cp mfsexports.cfg.sample mfsexports.cfg #被挂载目录及权限配置文件
cp mfstopology.cfg.sample mfstopology.cfg #拓扑架构感知

  • 开启master服务

/usr/local/mfs/sbin/mfsmaster start #开启服务

MFS分布式文件系统的部署_第1张图片

这里可以看到服务已经启动了,然后关闭服务可以使用/usr/local/mfs/sbin/mfsmaster -s

搭建MetaLogger server

  • 首先安装环境包

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

  • 创建管理用户

useradd -s /sbin/nologin -M mfs

  • 解压mfs软件、配置、编译安装

tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount

make && make install

  • 配置防断链

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

  • 复制配置文件(使模板生效)

cd /usr/local/mfs/etc/mfs
cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

  • 修改配置文件使地址指向master服务器

vim mfsmetalogger.cfg

MASTER_HOST=172.16.10.138 #指向master服务器

  • 开启MetaLogger Server服务

/usr/local/mfs/sbin/mfsmetalogger start #开启服务

MFS分布式文件系统的部署_第2张图片

搭建chunkserver

  • 首先安装环境包

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

  • 创建管理用户

useradd -s /sbin/nologin -M mfs

  • 解压mfs软件、配置、编译安装

tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./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.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg

  • 修改配置文件使地址指向master服务器

vim mfschunkserver.cfg

MASTER_HOST=172.16.10.138 #指向master服务器

  • 修改mfshdd.cfg,添加共享的文件目录

vim mgshdd.cfg

/data #添加

  • 创建共享目录,修改属主属组

mkdir /data

chown -R mfs:mfs /data

  • 开启chunkserver服务

/usr/local/mfs/sbin/mfschunkserver start #开启服务

MFS分布式文件系统的部署_第3张图片

注:另一台chunkserver服务器和这台配置一样

搭建客户端client

  • 首先安装环境包

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

  • 创建管理用户

useradd -s /sbin/nologin -M mfs

  • 解压辅助工具

tar xf 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客户端

tar zxvf mfs-1.6.27-5.tar.gz -C /opt
cd /opt/mfs-1.6.27-5/
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount

make && make install

  • 挂载MFS文件系统

mkdir /opt/mfs //创建挂载点//
modprobe fuse //加载fuse模块到内核//
/usr/local/mfs/bin/mfsmount /opt/mfs -H 172.16.10.138 //挂载MFS

如果要卸载MFS,使用命令umount /opt/mfs

  • 常用操作

vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH #添加环境变量,方便相关命令的使用

source /etc/profile

  • MFS网页监控

/usr/local/mfs/sbin/mfscgiserv #开启

MFS分布式文件系统的部署_第4张图片

  • 测试

MFS分布式文件系统的部署_第5张图片

MFS分布式文件系统的部署_第6张图片

至此实验成功,MFS分布式文件系统就全部介绍完了!!!