发表于 2019-2-1 09:48:34

MFS文件系统安装、使用详解

                                    MooseFS文件系统介绍
MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:
1 、管理服务器managingserver (master)
负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复多节点拷贝
2 、元数据日志服务器Metaloggerserver(Metalogger)
负责备份master服务器的变化志文件,文件类型为changelog_ml.*.mfs,以便于在masterserver出问题的时候接替其进行工作。
3 、数据存储服务器dataservers (chunkservers)
负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
4 、客户机挂载使用
client通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix文件系统使用一样的效果。

安装:MFS
===============================================================================
小贴士:编译mfs的时候不论你安装的是什么角色可以一样编译不需要开启或关闭指定角色
只是客户端安装时加上--enable-mfsmount即可。这样方便你在服务器上随时调整角色。
===============================================================================
master server:
# yum install -y zlib-devel
# useradd mfs -s /sbin/nologin
# tar zxvf mfs-1.6.27-5.tar.gz
# cdmfs-1.6.27/
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
# make && make install

# cd /usr/local/mfs/etc
# cp mfsmaster.cfg.dist mfsmaster.cfg          //主配置文件
# mv mfsexports.cfg.dist mfsexports.cfg            //权限控制文件(MFS客户端挂载时使用)
# cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs
==================================
/usr/local/mfs/etc/mfs/mfsmaster.cfg 主配置文件示例
       EXPORTS_FILENAME= /usr/local/mfs/etc/mfs/mfsexports.cfg//权限控制文件的存储位置
       DATA_PATH =/usr/local/mfs/var/mfs                  //指定元数据的存储路径
       MATOCS_LISTEN_PORT= 9420                        //Masterto Chunk Server 即使用9420/TCP端口监听Chunk Server端的连接
       MATOML_LISTEN_PORT= 9419                         //Masterto Meta Logger
       MATOCU_LISTEN_PORT= 9421                        //客户端挂载MFS时连接的端口
      
/usr/local/mfs/etc/mfs/mfsexports.cfg
       192.168.2.0/24         /      rw,alldirs,mapall=mfs
==================================
# /usr/local/mfs/sbin/mfsmasterstart
# /usr/local/mfs/sbin/mfscgiserv         //开启http cgi 服务器监控mfs
starting simple cgi server (host: any , port: 9425 , rootpath:/usr/local/mfs/share/mfscgi)
可以通过浏览器访问http://Master_IP:9425


matelogger server:
==================================
# yum install -y zlib-devel
# useradd mfs -s /sbin/nologin
# tar zxvf mfs-1.6.27-5.tar.gz
# cdmfs-1.6.27/
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
# make && make install

# cd /usr/local/mfs/etc
# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
==================================
/usr/local/mfs/etc/mfs/mfsmetalogger.cfg
       MASTER_HOST =192.168.2.101               //去掉前面的#    //指定Master服务器
       MASTER_PORT =9419
       DATA_PATH =/usr/local/mfs/var/mfs         //从Master抓回文件,然后进行存放的路径
       BACK_LOGS = 50                                          //超过50个备份日志则轮转
       META_DOWNLOAD_FREQ= 24                  //元数据备份文件下载的频率,默认24小时
      
==================================
# /usr/local/mfs/sbin/mfsmetalogger start
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly

chunk server:
==================================
# yum install -y zlib-devel
# useradd mfs -s /sbin/nologin
# tar zxvf mfs-1.6.27-5.tar.gz
# cdmfs-1.6.27/
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
# make && make install

# cd /usr/local/mfs/etc/mfs
# mv mfschunkserver.cfg.distmfschunkserver.cfg
# mv mfshdd.cfg.dist mfshdd.cfg
# fdisk /dev/sda                                                 //准备存储(贡献一个分区)
# partx -a /dev/sda                        //让内核刷新分区表 RHEL5还可以使用 #partprobe
# mkfs.ext4 /dev/sda6
# mkdir /mfs/share
# mount /dev/sda6 /mfs/share
# chown -R mfs:mfs /mfs/share
==================================
/usr/local/mfs/etc/mfs/mfschunkserver.cfg
       MASTER_HOST =192.168.2.101

/usr/local/mfs/etc/mfs/mfshdd.cfg
       /mfs/share                              //分区的挂载点
==================================
MFS用户没有权限的启动报错
# /usr/local/mfs/sbin/mfschunkserverstart
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfschunkserver modules ...
hdd space manager: can't create lock file '/mfsdir/.lock'(errno:13)
init: hdd space manager failed !!!
error occured during initialization - exiting

Chunk Server正常启动
# /usr/local/mfs/sbin/mfschunkserverstart
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfschunkserver modules ...
hdd space manager: scanning folder /mfsdir/ ...
hdd space manager: /mfsdir/: 0 chunks found
hdd space manager: scanning complete
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly


mfs client:
==================================
# yum install -y zlib-devel
# useradd mfs -s /sbin/nologin
# yum -y install fuse*    (user space filesystem extend)
# tar zxvf mfs-1.6.27-5.tar.gz
# cdmfs-1.6.27/
# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
# make && make install

# /usr/local/mfs/bin/mfsmount -H 192.168.2.101/mfs/share
mfsmaster accepted connection with parameters:read-write,restricted_ip ; root mapped to root:root


MFS的使用
  
谈到使用我这里是指客户端了:

1、配置环境变量
# vi /etc/profile

PATH=$PATH:/usr/local/mfs/bin/


2、MFS命令
mfssetgoal:可以设置文件保存的份数
用法:mfssetgoal3/mnt/share/test1                (对文件)
      mfssetgoal-r3/mnt/share/test_dir/      (对目录递归)

mfsgetgoal:可以查看文件保存的份数
mfssettrashtime:可以设置文件被删除后保存的时间(垃圾箱设置)
用法:mfssettrashtime0/mnt/mfs-test/test1
(0代表时间,单位秒,可按要求自行配置,也可对目录进行-r的递归操作)
mfsgettrashtime:可以查看文件被删除后的隔离时间

3、垃圾箱
MFS还有一个挂在点,是用来恢复误删文件的挂载点,需要df命令加上-a的参数查看
用法:mfsmount –H master_ip/挂载点 –m
示例:mfsmount –H 192.168.1.118/mnt/metadata –m
之后进入到这个目录 你会发现有trash的目录,trash目录中有一个undel的目录和你删除的文件(被删除的文件由mfs自己定义名字,可以grep删除的原文件名找到它)
#pwd
/mnt/metadata                           //恢复文件的隐藏挂载点,需要手动挂载
#ls
reservedtrash
#ls trash/
undel                                 //此目录用来还原文件使用

#mfsfileinfo /mnt/share/test1/passwd
/mnt/share/test1/passwd:
      chunk 0: 0000000000000055_00000001 /(id:85 ver:1)         //保存了一个chunk
                copy 1: 192.168.1.117:9422                        //一个chunk保存了两份
                copy 2: 192.168.1.118:9422
#mfsgettrashtime /mnt/share/test1/passwd
/mnt/share/test1/passwd:86400                               //保存86400秒后真正删除
#rm/mnt/share/test1/passwd                              //mfs保存文件的挂在点/mnt/share
#ls |grep passwd
00000002|test1|passwd
此时如果想还原此文件可以执行mv操作
#mv 00000002\|test1\|passwd undel/
#ls
undel
#ls /mnt/share/test1/
passwd
  




页: [1]
查看完整版本: MFS文件系统安装、使用详解