MFS介绍

官网地址:http://www.moosefs.com/

MooseFS是一个具有容错性的网络分布式文件系统。

它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。通用文件系统,不需要修改上层应用就可以使用,通过附加新的计算机或者硬盘可以实现容量的动态扩展,体系架构可伸缩性极强,删除的文件可以根据配置的时间周期进行保留(一个文件系统级别的回收站),高可靠(数据的多个拷贝被存储在不同的计算机上),提供 web 监控接口,提高随机读或写的效率,提高海量小文件的读写效率。但是mfs 把文件系统的结构缓存到 master 的内存中,文件越多,master 的内存消耗越大,8g 对应 2500w 的文件数,2 亿文件就得 64GB 内存。支持特殊文件(块和字符设备、管道以及套接字),符号连接和硬连接。

包括以下四种角色:


角色 作用
管理服务器 managing server (master) 负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
元数据日志服务器 Metalogger server(Metalogger) 负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作
数据存储服务器 data servers (chunk servers ) 听从管理服务器调度,提供存储空间,并为客户提供数据传输.。 真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器 chunkserver之间复 制(复制份数可以手工指定,建议设置副本数为 3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。
客户机挂载使用 client computers 挂载进程 mfs 服务器共享出的存储并使用。 通过 fuse 内核接口挂载进程管理服务器上所管理的数据存储服务器共享出的硬盘。 共享的文件系统的用法和 nfs 相似。 使用 MFS 文件系统来存储和访问的主机称为 MFS 的客户端,成功挂接 MFS 文件系统以后,就可以像以前使用 NFS 一样共享这个虚拟性的存储了。


实验环境介绍

基本环境表

主机 操作系统 IP地址 主要软件
Master Server Centos7.3 192.168.137.10 moosefs.x86_64.0.3.0.101-1
Metalogger Server Centos7.3 192.168.137.11 moosefs.x86_64.0.3.0.101-1
Chunk server1 Centos7.3 192.168.137.12 moosefs.x86_64.0.3.0.101-1
Chunk server2 Centos7.3 192.168.137.13 moosefs.x86_64.0.3.0.101-1
Client Centos7.3 192.168.137.14 moosefs.x86_64.0.3.0.101-1

 

拓扑图

MFS分布式文件系统搭建与监控详解_第1张图片

操作步骤

  • 五台虚拟机模拟搭建MFS文件系统

  • 关闭防火墙及selinux

    systemctl stop firewalld
    setenforce 0

     

    搭建Master Server

    安装软件

    curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
    curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加适当的库条目
    yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli –y

    配置文件解释

    cd /etc/mfs/

    -rw-r--r--. 1 root root 4057 9月  27 15:18 mfsexports.cfg        //输出目录配置文件
    -rw-r--r--. 1 root root 4057 7月  20 19:16 mfsexports.cfg.sample
    -rw-r--r--. 1 root root 9015 9月  27 15:18 mfsmaster.cfg         //Master配置文件
    -rw-r--r--. 1 root root 9015 7月  20 19:16 mfsmaster.cfg.sample
    -rw-r--r--. 1 root root 1052 9月  27 15:18 mfstopology.cfg      //元数据日志
    -rw-r--r--. 1 root root 1052 7月  20 19:16 mfstopology.cfg.sample

    启动服务

    systemctl start moosefs-master
    systemctl enable moosefs-master
    netstat -ntap | grep mfs

    tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      6217/mfsmaster     
    tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      6217/mfsmaster     
    tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      6217/mfsmaster    

     

    搭建MetalLogger Server

    安装

    curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
    curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加适当的库条目
    yum install moosefs-metalogger –y

    修改配置文件

    vim /etc/mfs/mfsmetalogger.cfg

    MASTER_HOST = 192.168.137.10          //第52行,去除注释,改地址指向主服务器。

    启动服务

    systemctl start moosefs-metalogger
    systemctl enable moosefs-metalogger
    netstat -ntap | grep mfs

    tcp        0      0 192.168.137.11:36766    192.168.137.10:9419     ESTABLISHED 73521/mfsmetalogger

    搭建Chunk Server

    这两台Chunk Server的搭建步骤是完全相同

    安装

    curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
    curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加适当的库条目
    yum install moosefs-chunkserver –y

    修改配置文件

    修改一

    vim /etc/mfs/mfschunkserver.cfg

    MASTER_HOST = 192.168.137.10     //第77行,将地址指向主服务器

    修改二

    vim /etc/mfs/mfshdd.cfg
    /gongxiang            //在末行添加共享目录

    mkdir /gongxiang      //创建共享目录

    chown -R mfs:mfs /gongxiang    //为共享目录授权

    启动服务

    systemctl start moosefs-chunkserver
    systemctl enable moosefs-chunkserver
    netstat -ntap | grep mfs

    tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      71921/mfschunkserve
    tcp        0      0 192.168.137.13:59006    192.168.137.10:9420     ESTABLISHED 71921/mfschunkserve

    Client的搭建

    安装

    curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS //添加键值
    curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo  //添加适当的库条目
    yum install moosefs-client –y

    加载fuse模块至内核

    modprobe fuse

    挂载共享目录

    mkdir /opt/mfs    //创建挂载点
    mfsmount /opt/mfs/ -H 192.168.137.10  //挂载,地址为master地址

    df –h

    文件系统             容量  已用  可用 已用% 挂载点
    /dev/sda6             21G  4.1G   17G   20% /
    devtmpfs             896M     0  896M    0% /dev
    tmpfs                911M     0  911M    0% /dev/shm
    tmpfs                911M   11M  900M    2% /run
    tmpfs                911M     0  911M    0% /sys/fs/cgroup
    /dev/sda2            9.8G   33M  9.8G    1% /opt
    /dev/sda3            4.9G   89M  4.8G    2% /home
    /dev/sda1           1014M  165M  850M   17% /boot
    tmpfs                183M   64K  183M    1% /run/user/1000
    tmpfs                183M     0  183M    0% /run/user/0
    192.168.137.10:9421   58G  8.1G   50G   14% /opt/mfs

     

  • MFS监控

  • 主服务器上开启监控

  • mfscgiserv
    lockfile created and locked
    starting simple cgi server (host: any , port: 9425 , rootpath: /usr/share/mfscgi)

     

    访问192.168.137.10:9425      主机地址

    填写主服务器地址

    MFS分布式文件系统搭建与监控详解_第2张图片
    界面

    MFS分布式文件系统搭建与监控详解_第3张图片MFS分布式文件系统搭建与监控详解_第4张图片

     

    微信截图_20180927170024