MFS

一、MFS分布式文件系统说明

1、 MFS文件系统的4个角色

管理服务器 --- Master Server 元数据日志服务器 --- Metalogger 数据存储服务器 --- Chunk Server 客户端 --- Client

2、 角色作用

管理服务器--mfsmaster: 有时也称为元数据服务器,负责管理各个数据存储服务器,调度文件读写,回收文件空间以 及恢复多节点拷贝。 元数据服务器-mfsmetalogger: 负责备份管理服务器的变化日志,文件类型为changelog_ml.*.mfs,以便于在管理服务器 出现问题时接替期进行工作。这类服务器是在mfs1.6版本后新增的服务,可以把元数据日 志保留在管理服务器中,也可以单独存在一台服务器中。为保证数据的安全性和可靠性,建 议单独使用一台服务器来存放元数据日志,需要注意的是,元数据日志守护进程跟管理服务 器在同一个服务器,备份元数据日志服务器作为它的客户端,从管理服务器取得日志文件进 行备份。 数据存储服务器-mfschunkserver: 这类是真正存储用户数据的服务器。在存储文件时,首先把文件分成块,然后把这些块在数 据存储服务器之间互相复制,同事,数据存储服务器还负责连接管理服务器,听从管理服务 器调度,并为客户提供数据传输。数据存储服务器可以有多个,并且数量越多,可靠性越高 。MFS可用的磁盘空间也越大。 客户端-mfsclient: 客户端通过fuse内核接口挂载远程服务器上所管理的数据存储服务器,使共享的文件系统和 使用本地linux文件系统的效果看起来一样的。

二、实验环境说明

1、关闭防火墙、selinux
2、所有节点配置时间同步服务器
3、节点说明
    192.168.15.51 MfsMaster     
    192.168.15.52  MfsMetalogger
    192.168.15.53 MfsChunkServer1
    192.168.15.54 MfsChunkServer2  
    192.168.15.55 MfsClient
4、源码包下载地址:源码包下载地址是:
    http://ppa.moosefs.com/src/moosefs-3.0.84-1.tar.gz

三、源码包安装

1、 安装 master server 管理服务器(192.168.15.51)

1)编译安装

yum -y install pcre pcre-devel zlib zlib-devel gcc*
tar -xf moosefs-3.0.84-1.tar.gz
cd moosefs-3.0.84
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
cd /usr/local 
useradd -s /sbin/nologin -M mfs
chown -R mfs.mfs mfs/
ln -s /usr/local/mfs/bin/* /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/

ls mfs/
    bin    #存放CLient端的命令
    etc    #角色配置文件模版目录
    sbin   #角色存放
    share  #监控网站位置
    var    #空模版文件

2) mfsmaster.cfg(master端配置文件)

cd /usr/local/mfs/etc/mfs
cp -a mfsmaster.cfg.sample  mfsmaster.cfg  # 无需修改

# vim mfsmaster.cfg 
# 配置文件说明
WORKING_USER = mfs
WORKING_GROUP = mfs
SYSLOG_IDENT = mfsmaster  #在syslog中的表示,说明这是mfsmaster产生的
LOCK_MEMORY = 0    # 是否执行mlockall()以避免mfsmaster内存溢出(默认为0)
NICE_LEVEL = -19     # 运行的优先级(默认-19,注意,这进程必须是root启动 )
DATA_PATH = /usr/local/mfs/var/mfs (重要)     
    #数据存放路径,该目录下有三大类文件,changelog,sessions,stats
EXPORTS_FILENAME = /usr/local/mfs/etc/mfs/mfsexports.cfg  (重要)   
    #被挂载目录以及其权限控制文件的存放位置
BACK_LOGS = 50     #元数据的改变日志文件数量(默认是50)
MATOML_LISTEN_HOST = *     (重要)
    # 元数据日志服务器监听的IP地址(默认是*,代表任何IP)
MATOML_LISTEN_PORT = 9419 (重要)  # 元数据日志服务器监听的端口地址,默认是9419
MATOCS_LISTEN_HOST = *       # 用于存储服务器(Chunk Server)连接的IP地址
MATOCS_LISTEN_PORT = 9420    # 是存储服务器(Chunk server)连接的端口地址
REPLICATIONS_DELAY_INIT = 300   # 延迟复制的时间(默认是300)
CHUNKS_LOOP_MIN_TIME = 300  #  chunks 的回环率
CHUNKS_SOFT_DEL_LIMIT = 10   
CHUNKS_WRITE_REP_LIMIT = 2,1,1,4   
    #在一个循环里复制到一个CHUNK Server的最大chunks数目
CHUNKS_READ_REP_LIMIT = 10,5,2,5
MATOCL_LISTEN_HOST = *
MATOCL_LISTEN_PORT = 9421

3) mfsexports.cfg(权限文件)

cp -a mfsexports.cfg.sample mfsexports.cfg
vim mfsexports.cfg #末尾处添加即可
192.168.15.0/24 . rw,alldirs,maproot=0

#配置文件说明
192.168.15.0/24 #表示MFSMETA文件系统
rw.alldirs,maproot=0 #表示客户端拥有的权限。所有客户端都有权限挂载
#权限部分选项如下:
    #ro 只读模式共享 
    #rw 读写方式共享 
    #alldirs 允许挂载任何指定的子目录 
    #maproot 映射为root用户还是指定的用户 
    #password 指定客户端密码

4) metadata.mfs

#将metadata.mfs加载到内存中
cd /usr/local/mfs/var/mfs/
cp -a metadata.mfs.empty  metadata.mfs
ll #确保文件的所有者所属主为 mfs.mfs

5)启动master server

mfsmaster start
mfscgiserv #查看监控信息(端口以及监控地址)
    #starting simple cgi server (host: any , port: 9425 , 
    #rootpath: /usr/local/mfs/share/mfscgi)
#浏览器查看MFS自带的监控(搭建的时候用,可以看到挂载信息以及共享的磁盘信息等)
#(disk 以及 mount)
192.168.15.51:9425

netstat -lnpt  #查看监听端口,确保启动成功A
    #ctive Internet connections (only servers)Proto Recv-Q Send-Q Local 
    #State       PID/Program name   '''tcp        0      0 0.0.0.0:9419
    #5944/mfsmaster      tcp        0      0 0.0.0.0:9420                
    #5944/mfsmaster ''' 
说明:停止master server,安全停止master server是非常必要的,千万不要kill,而是利用自带的命令mfsmaster来安全停止master server,mfsmaster stop,我们安装后采用默认的配置,没有做任何更改,所以默认的日志是写入/var/log/messages。

2、192.168.15.52 安装元数据日志服务器

1)编译安装

yum -y install pcre pcre-devel zlib zlib-devel gcc*
tar -xf moosefs-3.0.84-1.tar.gz
cd moosefs-3.0.84
useradd -s /sbin/nologin -M mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
cd /usr/local 
chown -R mfs.mfs mfs/
ln -s /usr/local/mfs/bin/* /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/

2) mfsmetalogger.cfg

cd /usr/local/mfs/etc/mfs
cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
vim mfsmetalogger.cfg
     MASTER_HOST = 192.168.15.51#52行取消注释并修改为主服务器的地址
     MASTER_PORT = 9419 #55行取消注释
     META_DOWNLOAD_FREQ = 24   #39行         
    #39行元数据备份文件下载请求频率,默认是24小时,即每2小时从master server上下载一个

3)启动元数据服务器

mfsmetalogger start   # 启动命令
ls /usr/local/mfs/var/mfs  # 查看工作目录下是否有元数据文件

3、192.168.15.53/54 安装数据存储服务器

1)编译安装

#两台虚拟机分别添加一块新磁盘,并分区
fdisk /dev/sdb
n-p-1-w
mkfs.ext4 /dev/sdb1
partprobe /dev/sdb1
mkdir /mfs
/bin/mount -t ext4 /dev/sdb1 /mfs
echo "/bin/mount -t ext4 /dev/sdb1 /mfs" >> /etc/rc.local

yum -y install pcre pcre-devel zlib zlib-devel gcc*
tar -xf moosefs-3.0.84-1.tar.gz
cd moosefs-3.0.84
useradd -s /sbin/nologin -M mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
cd /usr/local 
chown -R mfs.mfs mfs/
ln -s /usr/local/mfs/bin/* /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/

2)mfschunkserver

cd /usr/local/mfs/etc/mfs/
cp -a mfschunkserver.cfg.sample mfschunkserver.cfg
vim mfschunkserver.cfg
MASTER_HOST = 192.168.15.51 #71行 取消注释 指明master server服务器地址
MASTER_PORT = 9420  #74行取消注释 指明master server 端口
HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg   #33行取消注释
# 这个指明哪个配置文件来配置共享磁盘的

3)mfshdd

cp -a mfshdd.cfg.sample /usr/local/mfs/etc/mfs/mfshdd.cfg
vim mfshdd.cfg #末尾添加
     /mfs
chown -R  mfs.mfs /mfs

4)启动服务

mfschunkserver start
#浏览器查看MFS自带的监控,(disk)是否有挂载信息
192.168.15.51:9425

#ps -ef |  grep mfsmfs      
    #405681002:14 ?        00:00:00 mfschunkserver startroot      
    #4062517565002:15 pts/000:00:00grep mfs

3、192.168.15.55 安装数据存储服务器(fuse)

1)编译安装

yum -y install fuse fuse-devel fuse-libs
yum -y install pcre pcre-devel zlib zlib-devel gcc*
tar -xf moosefs-3.0.84-1.tar.gz
cd moosefs-3.0.84
useradd -s /sbin/nologin -M mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver
make && make install
mkdir /mfsclient
cd /usr/local 
chown -R mfs.mfs /mfs
ln -s /usr/local/mfs/bin/* /usr/local/bin/
ln -s /usr/local/mfs/sbin/* /usr/local/sbin/

mfsmount /mfsclient/ -H 192.168.15.51#-H 指定 master server IP
mount

cd /mfsclient/
while 2>1; do; echo "1" >> 1.txt; done 
du -sh 1.txt     #复制一个路径进行测试
cat 1.txt
cp -a /var/log/文件名 /mfsclient/ 
cd /mfsclient/
mfsgetgoal 文件名 #查看默认的goal的数量
mfsfileinfo 文件名 #查看保存在哪几个chunkserver上
mfssetgoal 1 文件名 #修改goal的数量

2)测试

#关闭其中一台Chunkserver,查看
mfsfileinfo messages
mfsfileinfo 文件名
#打开关闭的Chunkserver,查看
#看出的动态添加,动态扩容

四、特殊功能

1、误删除处理,垃圾回收站机制

mfsgettrashtime 文件名 #查看被删除后文件保存时间(不能低于6万秒)
mfssettrashtime 64800 /mfs/文件名 #修改删除文件保存时间
rm -rf 文件名
mkdir /back
chown mfs.mfs /back
mfsmount -m /back -H 192.168.15.51
cd /back
#sustained #持久化数据目录  trash 垃圾箱的块文件目录
tree . >> /root/file.info
vim /root/file.info
mv 002/00000002\|1.txt /back/trash/undel/
#undel 放在此目录内代表不删除了

cd /mfsclient/ #查看内容是否被找回
#批量找回自己写脚本

2、快照功能

# client
mkdir bb
chown mfs.mfs bb/
mfsmakesnapshot 1.txt bb/
cd bb/

3、冗余 goal 设置

mfssetgoal 3 mfs/test1
mfssetgoal /mfs/test1
mfsfileinfo /mfs/test1

4、还原 master

#将master服务器,恢复快照,模拟masters服务器损毁,尝试恢复
#新增一个master服务器,配置好需要配置的服务。
cd /usr/local/mfs/var/mfs/
rm -rf *
#元数据服务器操作
cd /usr/local/mfs/var/mfs/
scp -r * root@192.168.15.51:/usr/local/mfs/var/mfs/
#master服务器操作
chown -R mfs.mfs *
mfsmaster -a #-a代表修复并启动,若不加-a会报错
#client端测试是否恢复。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值