暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式文件系统MFS搭建

IT那活儿 2023-06-18
719

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




前 言 


                                                                              
本文档对cento7系统下搭建mfs的过程进行了一个记录,在企业中我们常见的分布式文件系统有HDFS,ceph 这些相信大家都不陌生。今天搭建的mfs在国内其实使用的很少,因为mfs相比于其他成熟的分布式文件系统,功能比较基础,在一些场景下无法满足需求。
当然每个技术都会有存在的意义,mfs的优点也不少,轻量、容易维护、磁盘的利用率高、还可以设置我们文件的回收时间,从而快速恢复误删除的数据以达到不影响业务的目的。
mfs的几大角色:
  • master
    主要负责管理chunkserver。
  • Metalogger
    负责备份master服务器的变化日志文件,当我们的master出现问题的时候,我们 Metalogger节点可以根据备份的变化日志文件,保证整个文件系统的可靠性和可用性。
  • chunkserver

    数据存储节点,mfs对于客户来说,其实感受不到我们的共享文件是存储在多个服务器中 的。真正一份数据存入的时候,实际上被分了一块一块的,当master选择的存储节点写入完成后,会和 其他的存储节点进行数据的同步,这个同步的副本是可以进行设置的,当然我们的chunkserver越多,副本就可以设置越多,因此数据就更为安全。




环境准备



所有服务器端和客户端都要支持fuse内核模块。

由于mfs的客户端程序使用了fuse,因此我们我们必须先安装fuse内核模块。
[root@localhost ~]#lsmod | grep fuse #查看是否安装了fuse模块
[root@localhost ~]#yum install -y fuse

实验拓扑和地址规划:
1)IP地址规划如下

2)保证各个节点之间的网络通畅
我这里选择关闭所有的防火墙,请根据实际情况选择关闭或者更改防火墙策略。

[root@localhost ~]#systemctl disable --now firewalld
[root@localhost ~]#setenforce 0




安装MFS



所有节点导入官方的yum仓库和秘钥:

curl "http://repository.moosefs.com/MooseFS-3-el7.repo" >
/etc/yum.repos.d/MooseFS.repo
curl "https://repository.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm- gpg/RPM-GPG-KEY-MooseFS

官方的地址:https://moosefs.com/download/
#导入完成直接安装即可:
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y
1. 启动和查看master服务
安装完成之后,我们master节点的配置文件为mfsmaster.cfg 还有mfsexports.cfg 默认都在/etc/mfs下。对于mfsmaster.cfg文件,我们其实不用修改。
例如默认监听ip 这里*代表所有 也可以写matser的ip地址 10.10.10.14,而mfsexports.cfg配置文件是用来修改mfs挂载的权限的,类似于nfs中我们配置nfs共享文件对于客户端的读写执行权限。
  • 启动master服务:

[root@localhost etc/mfs]#systemctl enable --now moosefs-master
[root@localhost /etc/mfs]#systemctl status moosefs-master

  • 启动GUI界面:
[root@localhost /etc/mfs]#systemctl start moosefs-cgiserv

[root@localhost /etc/mfs]
#systemctl status moosefs-cgiserv

2. 浏览器访问
3. 元数据日志节点安装配置
[root@localhost ~]# yum install moosefs-metalogger -y
#metalogger的配置文件也在/etc/mfs下。
修改master的地址:
启动节点:
[root@localhost mfs]# systemctl start moosefs-metalogger
在启动之前,我们元数据存储的默认目录下是没有数据的。
启动之后查看:
master写入到内存中的元数据就已经同步到metalogger节点了。
4. Chunkservers节点安装配置
[root@localhost ~]#yum install moosefs-chunkserver -y
[root@localhost ~]# mkdir -p /mnt/chunk1

#创建一个磁盘的挂载目录。

1)两个Chunkserver都添加一个10GB的新硬盘,用于测试
2)将磁盘格式化并挂载到刚才创建的挂载点上
[root@localhost ~]#fdisk /dev/sdb
[root@localhost ~]#mkfs.xfs /dev/sdb1
[root@localhost ~]#mount /dev/sdb1 /mnt/chunk1/
[root@localhost ~]#chown -R mfs:mfs /mnt/chunk1/
[root@localhost ~]#lsblk

3)修改配置文件启动chunkserver
chunkserver有两个配置文件 mfschunkserver.cfg和mfshdd.cfg。
和元数据日志节点一样,在mfschunkserver.cfg配置文件中进行对mfs-master的ip,端口等进行设置。mfshdd.cfg配置文件中可以对mfs存储数据的目录进行设置,比如限制使用磁盘的大小只能为8G,我这里不做限制
修改完成后启动:
[root@localhost ~]#systemctl start moosefs-chunkserver
我们可以在浏览器中查看刚才添加的chunkserver:
5. 客户端挂载使用
1)安装client
[root@localhost ~]# yum install -y moosefs-client
[root@localhost ~]# yum install -y fuse libfuse2

2)挂载使用
root@localhost ~]# mkdir -p /mnt/mfs #创建挂载点
在mfsmount.cfg配置文件中写入挂载点
root@localhost ~]#mfsmount -H 10.10.10.14

浏览器查看:
到这里我们分布式mfs就搭建完成了。下面我们来进行一个简单的使用。



使用MFS



我们看看mfs的数据写入是怎么样的:

root@localhost /mnt/mfs]#dd if=/dev/zero of=/mnt/mfs/test.txt bs=1M count=1000 
创 建一个1G的文件

可以看到chunkserver中的数据被分成了一块一块的。
接下来,来模拟一下mfs的数据恢复:
数据恢复:
root@localhost /mnt/mfs]#mfsrsettrashtime 600 /mnt/mfs/ #
设置回收站时间,意思就是我删除的文件可以在回收站保存多久,单位为s
root@localhost /mnt/mfs]#mkdir /backup
创建一个备份目录
root@localhost /mnt/mfs]#mfsmount -m /backup/ -H 10.10.10.14
#
当成垃圾箱挂载
下载一个tree命令查看备份目录的结构:
root@localhost /mnt/mfs]#tree /backup/ | less

在挂载目录下创建文件并删除:
root@localhost /mnt/mfs]#touch cy.txt
root@localhost /mnt/mfs]#ls
cy.txt test.txt
root@localhost /mnt/mfs]#rm -rf cy.txt
root@localhost /mnt/mfs]#ls
test.txt

在垃圾站中寻找刚才删除的文件:
找到后我们恢复:
[root@localhost ~]# mv /backup/trash/003/00000003\|cy.txt /backup/trash/undel/ # 
在mfs中想要恢复删除的文件,只需要把文件移动到trash下的undel目录中即可

MFS总结:
个人认为MFS是一个比较新型的技术,虽然存在很多不足,但依然有着很大的潜力,如果MFS的生态系统得到很好的建立,也不乏为企业中需要大量数据分析,例如日志分析场景的一个方案。

END


本文作者:陈 羽(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论