Linux企业运维篇——MFS文件系统的配置与恢复

一.MFS

1.MFS文件系统
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
2.MooseFS文件系统结构

管理服务器master
管理服务器:负责各个数据存储服务的管理文件读写调度,文件空间回收以及恢复,多节点拷贝
元数据日志服务器:
负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出现问题的时候解体器 进行工作
数据存储服务器data server(chunk servers)
真正存储用户数据的服务器存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间赋值(复制份数可以手工指定,建议设置副本数为数据服务器可以为多个,并且数据越多,可使用的“磁盘空间越大,”可靠性也越高
客户端挂载使用client computers
使用MFS文件系统来存储和访问的主机名称为MFS的客户端,成功挂载MFS系统以后,就可以像以前NFS一样共享这个虚拟性的存储了。
3.MFS特性:
Free(GPL)
通用文件系统,不需要修改上层应用就可以使用
可以在线扩容,体系架构可伸缩性极强。
部署简单。
高可用,可设置任意的文件冗余程度
可回收在指定时间内删除的文件
提供netapp,emc,ibm等商业存储的snapshot特性
google filesystem的一个c实现。
提供web gui监控接口。
提高随机读或写的效率
提高海量小文件的读写效率
MFS的读数据过程:
client当需要一个数据时,首先向master server发起查询请求;
管理服务器检索自己的数据,获取到数据所在的可用数据服务器位置ip|port|chunkid;
管理服务器将数据服务器的地址发送给客户端;
客户端向具体的数据服务器发起数据获取请求;
数据服务器将数据发送给客户端;
MFS的写数据过程:
当客户端有数据写需求时,首先向管理服务器提供文件元数据信息请求存储地址(元数据信息如:文件名|大小|份数等);
管理服务器根据写文件的元数据信息,到数据服务器创建新的数据块;
数据服务器返回创建成功的消息;
管理服务器将数据服务器的地址返回给客户端(chunkIP|port|chunkid);
客户端向数据服务器写数据;
数据服务器返回给客户端写成功的消息;
客户端将此次写完成结束信号和一些信息发送到管理服务器来更新文件的长度和最后修改时间
MFS的删除文件过程:
客户端有删除操作时,首先向Master发送删除信息;
Master定位到相应元数据信息进行删除,并将chunk server上块的删除操作加入队列异步清理;
响应客户端删除成功的信号
MFS修改文件内容的过程:
客户端有修改文件内容时,首先向Master发送操作信息;
Master申请新的块给.swp文件,
客户端关闭文件后,会向Master发送关闭信息;
Master会检测内容是否有更新,若有,则申请新的块存放更改后的文件,删除原有块和.swp文件块;
若无,则直接删除.swp文件块。
MFS重命名文件的过程:
客户端重命名文件时,会向Master发送操作信息;
Master直接修改元数据信息中的文件名;返回重命名完成信息;

二.MFS文件系统的配置

server1配置主节点

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

在这里插入图片描述
开启master服务,查看到9419-9421三个端口打开

9419 metalogger 监听的端口地址(默认是9419),和源数据日志结合。定期和master端同步数据
9420 用于chunkserver 连接的端口地址(默认是9420),通信节点
9421 用于客户端对外连接的端口地址(默认是9421)

在这里插入图片描述
开启cgiserv服务,9425端口已打开
在这里插入图片描述
此时在浏览器中查看172.25.6.1:9425,显示不能找到master,说明解析未做好
在这里插入图片描述
添加解析
在这里插入图片描述
在这里插入图片描述
刷新网页
在这里插入图片描述server2中配置从节点

[root@server2 ~]# yum install -y moosefs-chunkserver-3.0.103-1.rhsystemd.x86_64.rpm

在这里插入图片描述

解析

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

在这里插入图片描述
查看配置文件
在这里插入图片描述
在mnt下建立目录
在这里插入图片描述
给server2添加虚拟硬盘
在这里插入图片描述

  [root@server2 ~]# fdisk -l # 查看多了/dev/vda

在这里插入图片描述
在这里插入图片描述
分区,只分一个
在这里插入图片描述

  [root@server2 ~]# fdisk -l #再次查看会有sda1

在这里插入图片描述

   [root@server2 ~]# mkfs.xfs /dev/vda1 # 格式化

在这里插入图片描述
将/dev/vda1 挂载到/mnt/chunk1,将/mnt/chunk1写入mfshdd.cfg文件
在这里插入图片描述
在这里插入图片描述

 [root@server2 mfs]# cat /etc/passwd #查看到有mfs用户

在这里插入图片描述
赋权(必须在挂载之后)
在这里插入图片描述
开启chunkserver服务
在这里插入图片描述
查看web端server2已经配置好
在这里插入图片描述
server3中配置从节点(错误示范,会挂载到server3的/上,不合理)
在这里插入图片描述

在这里插入图片描述
这里没有挂载就赋权
在这里插入图片描述
解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server3也加入
在这里插入图片描述
在真机中搭建客户端

[root@foundation6 ~]# yum install -y moosefs-client-3.0.103-1.rhsystemd.x86_64.rpm

在这里插入图片描述
编辑配置文件
在这里插入图片描述
在这里插入图片描述
创建在真机挂载数据的目录
在这里插入图片描述
这个解析特别重要,是确定server1的master位置,而且客户端在访问其中的数据时候,是先来master端取得存储数据得元数据,再去server2或server3上取数据
在这里插入图片描述
在这里插入图片描述
客户端挂载文件系统
在这里插入图片描述
在这里插入图片描述
最后一行可以看见客户端
在这里插入图片描述

在挂载的目录下新建两个目录,并查看数据存储服务器
在这里插入图片描述

[root@foundation6 mfs]# mfsgetgoal dir1/
dir1/: 2
[root@foundation6 mfs]# mfsgetgoal dir2/
dir2/: 2

在这里插入图片描述
修改dir1的文件备份份数为1

[root@foundation6 mfs]# mfssetgoal -r 1 dir1/

在这里插入图片描述

[root@foundation6 mfs]# cp /etc/passwd dir1/
[root@foundation6 mfs]# cd dir1

在这里插入图片描述
在这里插入图片描述
dir2下有两份文件,一份存在server2,一份存在server3
在这里插入图片描述
离散存储

[root@foundation6 dir1]# dd if=/dev/zero of=bigfile bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.532317 s, 197 MB/s
[root@foundation14 dir1]# mfsfileinfo bigfile 
bigfile:
	chunk 0: 000000000000000C_00000001 / (id:12 ver:1)
		copy 1: 172.25.6.2:9422 (status:VALID)
	chunk 1: 000000000000000D_00000001 / (id:13 ver:1)
		copy 1: 172.25.6.3:9422 (status:VALID)
    chunk 2: 000000000000000E_00000001 / (id:14 ver:1)
		copy 1: 172.25.6.2:9422 (status:VALID)
	chunk 3: 000000000000000F_00000001 / (id:15 ver:1)
		copy 1: 172.25.6.3:9422 (status:VALID)
[root@foundation6 dir1]# cd ../dir2/
[root@foundation6 dir2]# dd if=/dev/zero of=bigfile2 bs=1M count=200
    200+0 records in
    200+0 records out
    209715200 bytes (105 MB) copied, 0.568865 s, 184 MB/s

在这里插入图片描述
存储passwd的chunkserver(server2)关掉

[root@server2 ~]# systemctl stop moosefs-chunkserver 

可以看到dir2中的4个文件都可以看到,但是dir1中的只是部分可以看到
在这里插入图片描述

三.mfs服务的开启与关闭

非正常关闭
查看文件
在这里插入图片描述

  [root@server1 mfs]# ps ax # 查看进程

在这里插入图片描述
在这里插入图片描述
如果正常关闭将不会有metadata.mfs.back文件,只会有metadata.mfs文件,此时就是非正常关闭
在这里插入图片描述
启动master服务会报错(systemctl start moosefs-master=mfsmaster start)
在这里插入图片描述

[root@server1 mfs]# mfsmaster -a #可以恢复数据

在这里插入图片描述
正常关闭服务
在这里插入图片描述
在这里插入图片描述

四.数据恢复

把dir1中的passwd文件删除
文件删除后存放在 “ 垃圾箱 ” 中的时间称为隔离时间, 这个时间可以用 mfsgettrashtime .命令来查看,用 mfssettrashtime 命令来设置,单位为秒,默认为 86400 秒
在这里插入图片描述
恢复
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
进入trash,该目录下有很多文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查找要恢复的文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重新查看dir1中的文件发现passwd恢复
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44321116/article/details/90319785