• MFS简介

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

  • MFS文件系统的组成架构

元数据服务器(Master):负责管理文件系统,维护元数据。

元数据日志服务器(MetaLogger):当Master服务器数据丢失或损坏时,可以从日志服务器中取得文件,进行恢复。

数据存储服务器(Chunk Server):真正存储数据的服务器。

客户端:挂载MFS文件系统。

  • 实验要求:

Master: 192.168.177.140

MetaLogger: 192.168.177.135

Chunk1: 192.168.177.132

Chunk2: 192.168.177.133

Client: 192.168.177.134

搭建Master

# systemctl stop firewalld.service  //关闭防火墙
# setenforce 0
# yum install -y zlib-devel gcc gcc-c++ //安装依赖包
  • 创建用户

    # useradd -s /sbin/nologin mfs  //创建管理的用户
  • 安装源码包
# tar zxvf 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 \   //禁用chunk
--disable-mfsmount          //禁用客户端
# make && make install
  • 复制文件
# cd /usr/local/mfs/etc/mfs/   //变成可被识别的配置文件
# cp mfsexports.cfg.dist mfsexports.cfg
# cp mfsmaster.cfg.dist mfsmaster.cfg
# cp mfstopology.cfg.dist mfstopology.cfg

# cd /usr/local/mfs/var/mfs/    //防异常退出
# cp metadata.mfs.empty metadata.mfs
  • 启动Master
# /usr/local/mfs/sbin/mfsmaster start //启动

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

搭建MetaLogger Server

  • 关闭防火墙,安装依赖包
    # systemctl stop firewalld.service
    # setenforce 0
    # yum install -y zlib-devel gcc gcc-c++
  • 创建用户

    # useradd -s /sbin/nologin mfs  //创建管理的用户
  • 安装源码包
# tar zxvf 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 \   //禁用chunk
--disable-mfsmount          //禁用客户端
# make && make install
  • 复制文件
# cd /usr/local/mfs/etc/mfs/   //变成可被识别的配置文件
# cp mfsexports.cfg.dist mfsexports.cfg
# cp mfsmaster.cfg.dist mfsmaster.cfg
# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg mfstopology.cfg

# cd /usr/local/mfs/var/mfs/    //防异常退出
# cp metadata.mfs.empty metadata.mfs
  • 指向Master
    # vim mfsmetalogger.cfg
    MASTER_HOST = 192.168.177.140
  • 启动服务
    /usr/local/mfs/sbin/mfsmetalogger start

    MFS分布式文件系统

    搭建Chuck Server

  • 关闭防火墙,安装依赖包
    # systemctl stop firewalld.service
    # setenforce 0
    # yum install -y zlib-devel gcc gcc-c++
  • 创建用户

    # useradd -s /sbin/nologin mfs  //创建管理的用户
  • 安装源码包
# tar zxvf 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-mfsmaster \   //禁用Master
--disable-mfsmount          //禁用客户端
# make && make install
  • 复制文件
# cd /usr/local/mfs/etc/mfs/   //变成可被识别的配置文件
# cp mfschunkserver.cfg.dist mfschunkserver.cfg
# cp mfshdd.cfg.dist mfshdd.cfg

# cd /usr/local/mfs/var/mfs/    //防异常退出
# cp metadata.mfs.empty metadata.mfs
  • 指向Master
    # vim mfschunkserver.cfg
    MASTER_HOST = 192.168.177.140
  • 将分区挂载到目录下
    # vi mfshdd.cfg
    /data
    # mkdir /data
    # chown -R mfs:mfs /data

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

  • 启动服务
    /usr/local/mfs/sbin/mfsmetalogger start

    MFS分布式文件系统_第3张图片
    另一台Chunk Server也是这样

客户端配置

  • 关闭防火墙,安装依赖包
    # systemctl stop firewalld.service
    # setenforce 0
    # yum install -y zlib-devel gcc gcc-c++
  • 安装FUSE
    # tar xzvf fuse-2.9.2.tar.gz -C /opt
    # cd 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 -s /sbin/nologin mfs  //创建管理的用户
  • 安装源码包
    ```# tar zxvf 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-mfsmaster \
    --disable-mfschunkserver \
    --enable-mfsmount
    ```# make && make install```
  • 挂载MFS文件系统
    # mkdir /opt/mfs   //创建挂载点
    modprobe fuse          //加载fuse模块到内核//
    /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.177.140     //挂载MFS
    df -hT   //查看挂载情况

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

  • MFS常用操作
    # vim /etc/profile
    export PATH=/usr/local/mfs/bin:$PATH
    # source /etc/profile
    # mfsgetgoal -r /opt/mfs/   //查询文件被复制的份数

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

    MFS监控

# /usr/local/mfs/sbin/mfscgiserv  //在Master上启动监控程序

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