Mfs分布式存储的搭建以及部署

一、MFS的简单了解
1、包含 4 种角色
管理服务器 managing server (master)
元数据日志服务器 Metalogger server(Metalogger)
数据存储服务器 data servers (chunkservers)
客户机挂载使用 client computers
2、各种角色作用
管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝。
元数据日志服务器: 负责备份 master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作。
数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
客户端: 通过 fuse 内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地 unix 文件系统使用一样的效果。
3、MFS 读写原理
这里写图片描述
这里写图片描述
二、MFS环境的简单部署
实验环境rhel6.5 selinux and iptables disabled
Server1 master 172.25.70.1
Server2 chunkserver 172.25.70.2
Server3 chunkserver 172.25.70.3
foundation70(真机) Client 172.25.254.70
1、主控服务器 Master server 安装
所需rpm包

 moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm
 moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm
 moosefs-master-3.0.97-1.rhsysv.x86_64.rpm

安装

[root@server1 ~]# yum install moosefs-cgi-3.0.97-1.rhsysv.x86_64.rpm  moosefs-cgiserv-3.0.97-1.rhsysv.x86_64.rpm moosefs-master-3.0.97-1.rhsysv.x86_64.rpm

使用mfs分布式文件系统需要做好解析(这里我们设置master所在的主机server1为mfsmaster)

[root@server1 ~]# vim /etc/hosts

这里写图片描述
启动服务:

[root@server1 ~]# /etc/init.d/moosefs-cgiserv start
[root@server1 ~]# /etc/init.d/moosefs-master start

查看端口侦听情况
这里写图片描述
用于 chunkserver 连接的端口地址(默认是 9420)
metalogger 监听的端口地址(默认是 9419)
用于客户端挂接连接的端口地址(默认是 9421)
MFS master web 界面监听端口,查看整体运行状态(默认是 9425)

2、客户端可以对mfsmaster进行访问,但是在这之前需要做好本地解析

[root@foundation70 ~]# vim /etc/hosts
172.25.70.1 server1  mfsmaster

访问mfsmaster的ip+9425 这里是(172.25.70.1:9425)
这里写图片描述
3、chunkserver的安装(在server2和server3上)
所需rpm包:

moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm
[root@server2 ~]# yum install moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm -y
[root@server3 ~]# yum install moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm -y

server2和server3都添加本地解析

vim /etc/hosts
172.25.70.1 server1 mfsmaster

在启动chunkserver之前,需要定义mfs共享点,在这里我们设置该共享点为/mnt/chunk1(server1),/mnt/chunk2(serevr2)

在server2和server3上都进行下面操作
mkdir /mnt/chunk1
mkdir /mnt/chunk2
[root@server2 ~]# chown mfs.mfs /mnt/chunk1/ 需要确保用户mfs对该共享点有权限读写
[root@server2 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk1  #在配置文件末尾定义mfs共享点
[root@server3 ~]# chown mfs.mfs /mnt/chunk2/
[root@server3 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk2  #在配置文件末尾定义mfs共享点

启动chunkserver(在server2和server3上)

mfschunkserver start

如下图:
这里写图片描述
4、在client端再次访问9425端口
应该可以看见这个 MooseFS 系统的全部信息,包括主控 master 和存储服务 chunkserver
这里写图片描述
5、客户端 client 安装
所需rpm包

moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm

安装

[root@foundation70 moosefs6.5]# yum install moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm -y

挂载

[root@foundation70 ~]# cd /etc/mfs/
[root@foundation70 mfs]# vim mfsmount.cfg #定义客户端默认挂载
/mnt/mfs
[root@foundation70 mnt]# mkdir mfs
[root@foundation70 mnt]# useradd mfs
[root@foundation70 mnt]# chown mfs:mfs /mnt/mfs/  
[root@foundation70 ~]# mfsmount  #成功挂载
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root

这里写图片描述
6、MFS 测试
在 MFS 挂载点下创建两个目录,并设置其文件存储份数

[root@foundation70 mfs]# mkdir dir1 dir2 
[root@foundation70 mfs]# mfssetgoal -r 2 dir1/ #设置在 dir1 中文件存储份数为两个,默认是一个。
[root@foundation70 mfs]# mfsgetgoal dir1/       #获取文件存储份数
dir1/: 2
You have new mail in /var/spool/mail/kiosk
[root@foundation70 mfs]# mfsgetgoal dir2/       #获取文件存储份数
dir2/: 1

注意:对一个目录设定 “ goal”,此目录下的新创建文件和子目录均会继承此目录的设定,但不会改变已经存在的文件及目录的 copy 份数。但使用-r 选项可以更改已经存在的 copy 份数

#拷贝/etc/passwd这份文件分别到两个目录上
[root@foundation70 mfs]# cp /etc/passwd dir1
[root@foundation70 mfs]# cp /etc/passwd dir2
[root@foundation70 mfs]# mfscheckfile dir1/passwd 
dir1/passwd:
 chunks with 2 copies:            1
[root@foundation70 mfs]# mfsfileinfo dir1/passwd  #查看dir1下文件信息

这里写图片描述

[root@foundation70 mfs]# mfscheckfile dir2/passwd 
dir2/passwd:
 chunks with 1 copy:  
[root@foundation70 mfs]# mfsfileinfo dir2/passwd #查看dir2下文件信息

这里写图片描述
关闭 mfschunkserver3 后再查看文件信息
这里写图片描述
由于dir1/的文件存储份数是2,本身存储在chunkserver2上,dir2/的文件存储份数是1,本身存储在chunkserver3上,当我们把server3上的chunkserver关闭,那么dir1/下的文件仍可以查看,因为存储份数是2的缘故,dir2/下的文件就不能查看。
7、恢复垃圾箱文件

[root@foundation70 mfs]# rm -rf dir1/passwd 
[root@foundation70 mfs]# mfsgettrashtime dir1/  #文件删除后存放在 “ 垃圾箱 ” 中的时间称为隔离时间, 这个时间可以用 mfsgettrashtime 命令来查看,用 mfssettrashtime 命令来设置,单位为秒,默认为 86400 秒。
dir1/: 86400    
[root@foundation70 mfs]# mkdir /mnt/mfsmeta
[root@foundation70 mfs]# mfsmount -m /mnt/mfsmeta/ -H mfsmaster  #挂载 MFSMETA 文件系统,它包含目录 trash (包含仍然可以被还原的删除文件的信息)和trash/undel (用于获取文件)。把删除的文件,移到/ trash/undel 下,就可以恢复此文件。
[root@foundation70 mfs]# cd /mnt/mfsmeta/
You have new mail in /var/spool/mail/kiosk
[root@foundation70 mfsmeta]# ls
sustained  trash
[root@foundation70 mfsmeta]# cd trash/ #进入trash,该目录下有很多文件
[root@foundation70 mfsmeta]# find -type f  #我们要恢复的文件类型为普通文件
./004/00000004|dir1|passwd  
[root@foundation70 trash]# mv 00000004\|dir1\|passwd undel/  #将需要恢复的文件移动到undel目录下,注意书写格式

成功恢复

[root@foundation70 trash]# cd /mnt/mfs/dir1/
[root@foundation70 dir1]# ls
passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值