MFS分布式文件系统部署

实验环境

  • rhel7.3 且 selinux and iptables disabled
主机名(IP)服务
server1(172.25.11.1)master server
server2(172.25.11.2)chuck server
server3(172.25.11.3)chunk server
真机(172.25.11.250)测试

server1(master server的部署)

  • 下载并安装master server需要的软件(包括web UI界面)。
[root@server1 ~]# ls
moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm
moosefs-metalogger-3.0.103-1.rhsystemd.x86_64.rpm

[root@server1 ~]# yum install moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm   moosefs-cli-3.0.103-1.rhsystemd.x86_64.rpm  moosefs-cgiserv-3.0.103-1.rhsystemd.x86_64.rpm   moosefs-cgi-3.0.103-1.rhsystemd.x86_64.rpm -y

在这里插入图片描述
在这里插入图片描述
安装完成之后会产生/etc/mfs目录里面是mfs文件系统的相关配置文件
在这里插入图片描述
注:在该目录下的mfsmaster.cfg的文件中记录了如果进行部署及其使用都需要在各个节点写入mfsmaster的解析。
在这里插入图片描述

  • 给主机server1添加解析。
[root@server1 ~]# vim /etc/hosts
172.25.11.1     server1  mfsmaster
  • 开启master服务,查看端口
    注意:
    9419:metalogger监听的端口地址,和原数据日志相结合,定期和master端同步数据
    9420:用于和chunkserver连接的端口地址,通信节点
    9421:用于客户端对外连接的点口地址
[root@server1 mfs]# systemctl start moosefs-master
[root@server1 mfs]# netstat -antlp

在这里插入图片描述

  • 打开cgi图形工具,并查看端口,为9425。
[root@server1 mfs]# systemctl start moosefs-cgiserv
[root@server1 mfs]# netstat -antlp

在这里插入图片描述

  • 浏览器中访问查看:http://172.25.11.1:9425/mfs.cgi
    在这里插入图片描述

server2&3(chunk server)的部署

  • server2与server3的部署过程相同,这里以server2为例。
  • 安装chunkserver,安装完成系统会生成用户mfs。
[root@server1 ~]# scp moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm server2:
[root@server2 ~]# rpm -ivh moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm
[root@server2 ~]# id mfs
uid=997(mfs) gid=995(mfs) groups=995(mfs)
  • 添加mfsmaster的解析。
[root@server2 ~]# vim /etc/hosts
172.25.11.1     server1 mfsmaster
  • 因为chunk server是真正存放数据的服务器,所以我们需要给他们的内存大一些,我们给server3添加一块20G的硬盘用于mfs对数据节点的操作,添加完成后查看。
    在这里插入图片描述

操作

server2的操作
  • 创建目录,修改目录所有人所有组都为mfs,并将此目录写到配置文件中。
[root@server2 ~]# mkdir /mnt/chunk1
[root@server2 ~]# cd /mnt/chunk1/
[root@server2 chunk1]# chown mfs.mfs ..

[root@server2 chunk1]# cd /etc/mfs/
[root@server2 mfs]# vim mfshdd.cfg
/mnt/chunk1   #写到最后一行

在这里插入图片描述
在这里插入图片描述

  • 开启服务。
[root@server2 mfs]# systemctl start moosefs-chunkserver
  • 此时在我们刚才写入配置文件的目录/mnt/chunk下出现了256个数据目录。
[root@server2 mfs]# cd /mnt/chunk1/
[root@server2 chunk1]# ls | wc -l
256

在这里插入图片描述

  • 此时再在浏览器中访问,发现出现了server2的详细信息。
    在这里插入图片描述
    同样的,在server3上做上述同样的操作,再次刷新,并在浏览器中查看,可以看到server3的信息也出现了。
    在这里插入图片描述
  • 在server1查看9420端口的使用情况。
[root@server1 ~]# yum install lsof -y
[root@server1 ~]# lsof -i :9420
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mfsmaster 1029  mfs    8u  IPv4  61791      0t0  TCP server1:9420->server2:36344 (ESTABLISHED)
mfsmaster 1029  mfs   10u  IPv4  19091      0t0  TCP *:9420 (LISTEN)
mfsmaster 1029  mfs   13u  IPv4  62542      0t0  TCP server1:9420->server3:47036 (ESTABLISHED)

真机(moosefs-client的搭建)

  • 安装客户端的软件。
[root@server1 ~]# scp moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm root@172.25.11.250:
[root@foundation11 ~]# yum install moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm
[root@foundation11 ~]# mfs   #安装完成命令可以自动补齐
  • 修改配置文件,添加挂载目录,按照配置文件写的建立出挂载的目录。
[root@foundation11 ~]# mkdir /mnt/mfs
[root@foundation11 ~]# vim /etc/mfs/mfsmount.cfg
/mnt/mfs   #最后以行取消注释
  • 做好解析。
[root@foundation11 mfs]# vim /etc/hosts
172.25.11.1     mfsmaster
  • 在客户端挂载。
[root@foundation11 mfs]# mfsmount
[root@foundation11 mfs]# df

在这里插入图片描述

  • 在挂载的目录下新建两个目录。
[root@foundation11 mfs]# cd /mnt/mfs/
[root@foundation11 mfs]# mkdir dir1
[root@foundation11 mfs]# mkdir dir2
[root@foundation11 mfs]# mfsgetgoal dir1
[root@foundation11 mfs]# mfsgetgoal dir2    

在这里插入图片描述

客户端数据备份副本数测试
  • 指定挂载在dir1目录下的文件备份数为1。
[root@foundation11 mfs]# mfssetgoal -r 1 dir1
[root@foundation11 mfs]# mfsgetgoal dir1/
[root@foundation11 mfs]# cd dir1/
[root@foundation11 dir1]# cp /etc/passwd .
[root@foundation11 dir1]# mfsfileinfo passwd

在这里插入图片描述

可以看到我们设置dir1目录下的副本数为1,所以此文件只有在server3上备份了1份。

  • 指定挂载在dir2目录下的文件备份数为1。
[root@foundation11 mfs]# mfssetgoal -r 2 dir2
[root@foundation11 mfs]# cd dir2/
[root@foundation11 dir2]# cp /etc/fstab .
[root@foundation11 dir2]# mfsfileinfo fstab 

在这里插入图片描述

可以看到我们设置dir2目录下的副本数为2,所以此文件在server2和sevrver3上各备份了1份。

  • 我们关闭server3的chunk服务,再次查看两个目录下文件的可用性情况。
[root@server3 ~]# systemctl stop moosefs-chunkserver

dir2目录下的文件因为有2份备份,所以在server2上的数据依然在,文件依然可以查看。
在这里插入图片描述
dir1目录下的文件已经不可见。
在这里插入图片描述
注意:当server3的chunk服务再次打开时,两个目录下的文件都会恢复,所以dir1目录下的文件会再次可读。

客户端离散存储的测试

默认chunkserver对数据的备份是按块来备份的,每一块备份64KB。

  • 在dir1目录下:
[root@foundation11 dir1]# dd if=/dev/zero of=file1 bs=1M count=100
[root@foundation11 dir1]# mfsfileinfo file1

在这里插入图片描述
可以看到file1被分为成2份,在server2和server3之间交叉存储(每个chunk服务器存储一半数据)。

  • 在dir2目录下:
[root@foundation11 dir2]# dd if=/dev/zero of=file2 bs=1M count=100
[root@foundation11 dir2]# mfsfileinfo file2

在这里插入图片描述
可以看到同样是交叉存储,不过file2的两部分在两个chunk server上各存了一份。

  • 关闭server3的chunk server服务。
[root@server3 ~]# systemctl stop moosefs-chunkserver
  • 分别在两个目录下查看。
[root@foundation11 dir2]# mfsfileinfo file2
[root@foundation11 dir2]# cd ../dir1
[root@foundation11 dir1]# mfsfileinfo file1

在这里插入图片描述
关闭服务后可以看到,dir1目录下只备份一份,所以会有部分数据丢失,而在dir2目录下没有数据丢失。
注意:当server3的chunk服务再次打开时,两个目录下的文件都会恢复,所以dir1目录下的文件存在server3的部分会再次可读。

数据恢复
  • 删除dir1目录下的文件。
[root@foundation11 dir1]# ls
file1  passwd
[root@foundation11 dir1]# rm -f passwd
  • 创建恢复数据的目录,并挂载。
[root@foundation11 mnt]# mkdir /mnt/mfsmeta
[root@foundation11 mnt]# mfsmount -m /mnt/mfsmeta/
[root@foundation11 mnt]# mount  (df看不到,mount可以看到)

在这里插入图片描述

  • 挂载后会生成trash目录,在此目录下查看已经删除的文件。
    在这里插入图片描述
  • 进入trash目录,查找文件所在的位置,并进行恢复。
[root@foundation11 mnt]# cd /mnt/mfsmeta/
[root@foundation11 mfsmeta]# cd trash/
[root@foundation11 trash]# find -name *passwd*
[root@foundation11 trash]# cd 004/
[root@foundation11 004]# mv 00000004\|dir1\|passwd undel/

在这里插入图片描述

  • 查看,数据恢复成功!
[root@foundation11 004]# cd /mnt/mfs/dir1
[root@foundation11 dir1]# cat passwd

在这里插入图片描述
补充:查看已删除文件在垃圾桶里默认停留的时间(可以设置)。

[root@foundation11 mfsmeta]# cd /mnt/mfs/dir1
[root@foundation11 dir1]# mfsgettrashtime .
.: 86400
mosefs-master的服务开启及关闭
  • 正常的开启与关闭,在/var/lib/mfs目录下的记录mfs信息的文件及master的信息记录的文件 metadata.mfs.back 会变为metadata.mfs
    在这里插入图片描述
  • kill强制关闭服务后 metadata.mfs.back文件不会发生改变,并且使用systemctl命令是无法再次启动服务的。
    在这里插入图片描述
  • 解决如下:查看服务状态会显示使用mfsmaster start -a 成功开启。
    在这里插入图片描述
  • 恢复systemctl 启动服务需要进行如下操作:
[root@server1 mfs]# vim /usr/lib/systemd/system/moosefs-master.service 
编辑第8行:
  8 ExecStart=/usr/sbin/mfsmaster -a
杀掉mfsmaster的进程在重新加载并开启服务
[root@server1 mfs]# kill -9 16426
[root@server1 mfs]# systemctl daemon-reload
[root@server1 mfs]# systemctl start moosefs-master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值