什么是MFS文件系统:
MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
MooseFS文件系统结构包括一下四种角色:
1.管理服务器master
管理服务器:负责各个数据存储服务的管理文件读写调度,文件空间回收以及恢复,多节点拷贝
2.元数据日志服务器:
负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server
出现问题的时候解体器 进行工作
3.数据存储服务器data server(chunk servers)
真正存储用户数据的服务器存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间
赋值(复制份数可以手工指定,建议设置副本数为数据服务器可以为多个,并且数据越多,可使用的“磁盘
空间越大,”可靠性也越高
4.客户端挂在 使用clinet computers
使用MFS文件系统来存储和访问的主机名称为MFS的客户端,成功挂载MFS系统以后,就可以像以前NFS一样共享这个虚拟性的存储了。
实验环境:
172.25.20.1 server1
172.25.20.2 server2
172.25.20.3 server3
MFS文件系统的配置:
1.在server1安装master和web图形界面
[root@server1 ~]# cd 3.0.97/
[root@server1 3.0.97]# ls
[root@server1 3.0.97]# yum install -y 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
2.做主节点解析(这个非常重要,一定要做)
[root@server1 3.0.97]# vim /etc/hosts ##给server1添加mfsmaster解析
172.25.20.1 server1 mfsmaster # 表明server1是master的身份 master上是存储的元数据
172.25.20.2 server2
172.25.20.3 server3
3.打开服务
[root@server1 mfs]# /etc/init.d/moosefs-master start
[root@server1 mfs]# netstat -antlp ##9419 9420 9421端口全开
4.打开图形处理工具
[root@server1 3.0.97]# /etc/init.d/moosefs-cgiserv start
查看端口netstat -antlp ##9425开启
在server2和server3:
1.安装MFS的客户端软件
[root@server3 ~]# yum install -y moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm
[root@server2 ~]# yum install -y moosefs-chunkserver-3.0.97-1.rhsysv.x86_64.rpm
2.编辑解析文件
[root@server3 ~]# vim /etc/hosts
[root@server2 ~]# vim /etc/hosts
172.25.20.1 server1 mfsmaster
3.修改该挂载目录的所有人和所有组,这样才可以在目录中进行读写操作 。打开服务
[root@server2 mfs]# mkdir /mnt/chunk1
[root@server2 mfs]# cd /mnt
[root@server2 mnt]# chown mfs.mfs chunk1/
[rot@server2 mnt]# cd /etc/mfs/
[root@server2 mfs]# vim mfshdd.cfg
/mnt/chunk1 ##最后一行写入挂载点
[root@server2 mfs]# /etc/init.d/moosefs-chunkserver start
[root@server3 ~]# mkdir /mnt/chunk2
[root@server3 ~]# cd /mnt
[root@server3 ~]# chown mfs.mfs /mnt/chunk2
[root@server3 ~]# vim /etc/mfs/mfshdd.cfg
/mnt/chunk2 ##最后一行写入挂载点
[root@server3 ~]# /etc/init.d/moosefs-chunkserver start
在物理机上:
1.安装客户端软件
[root@foundation20 Desktop]# rpm -qa|grep moosefs
moosefs-client-3.0.97-1.rhsystemd.x86_64 ##如果没有安装则执行以下安装步骤
yum install moosefs-client-3.0.97-1.rhsystemd.x86_64.rpm
2.编辑解析文件
[root@foundation20 Desktop]# vim /etc/hosts
172.25.45.1 server1 mfsmaster
(这个解析特别重要,是确定server1的master位置,而且客户端在访问其中的数据时候,是先来master端取得存储数据得元数据,再去server2或server3上取数据)
3.创建在真机挂载数据的目录并编辑配置文件
[root@foundation20 mfs]# mkdir /mnt/mfs
[root@foundation20 mfs]# cd /etc/mfs
[root@foundation20 mfs]# vim mfsmount.cfg
/mnt/mfs
4.客户端挂载文件系统
[root@foundation20 ~]# mfsmount 挂载
[root@foundation20 ~]# df 查看是否挂载上
[root@foundation20 ~]# cd /mnt/mfs/
[root@foundation20 mfs]# mkdir dir1 dir2 在该目录下建立目录
[root@foundation20 mfs]# mfsgetgoal dir1/ 查看该目录中的文件存储的份数
[root@foundation20 mfs]# mfsgetgoal dir2/
如果出现这种问题,先退出这个目录,再进去看,重新建立文件,重新执行
5. 修改dir1的文件备份份数为1(为了做实验对比)
[root@foundation20 mfs]# mfssetgoal -r 1 dir1
[root@foundation20 mfs]# mfsgetgoal dir1
dir1: 1
[root@foundation20 mfs]# mfsgetgoal dir2
dir2: 2
[root@foundation20 mfs]# cd dir1/
[root@foundation20 dir1]# cp /etc/passwd .
[root@foundation20 dir1]# mfsfileinfo passwd
[root@foundation20 dir1]# cd ..
[root@foundation20 mfs]# cd dir2/
[root@foundation20 dir2]# ls
[root@foundation20 dir2]# cp /etc/fstab .
[root@foundation20 dir2]# ls
fstab
[root@foundation20 dir2]# mfsfileinfo fstab
在浏览器中查看:172.25.45.1:9425
6.1)测试:
[root@foundation20 ~]# cd /mnt/mfs/dir1/
[root@foundation20 dir1]# dd if=/dev/zero of=bigfile bs=1M count=100
[root@foundation20 dir1]# mfsfileinfo bigfile
[root@foundation20 dir1]# mfsgettrashtime passwd
[root@foundation20 dir1]# rm -f passwd
2).数据恢复
在/mnt下建立目录mfsmeta
[root@foundation20 dir1]# cd /mnt/
[root@foundation20 mnt]# mkdir mfsmeta
[root@foundation20 mnt]# mfsmount -m /mnt/mfsmeta/
mfsmaster accepted connection with parameters: read-write,restricted_ip
[root@foundation20 mnt]# mount
在该目录下查看是否有trash(如果没有,退出当前目录,再进来查看)
[root@foundation20 mnt]# cd mfsmeta/
[root@foundation20 mfsmeta]# ls
sustained trash
[root@foundation20 mfsmeta]# cd trash/
[root@foundation20 trash]# ls
[root@foundation20 trash]# find -name *passwd*
[root@foundation20 trash]# cd ./006/
[root@foundation20 006]# mv 00000006\|dir1\|passwd undel/
[root@foundation20 006]# cd /mnt/mfs/dir1/
[root@foundation20 dir1]# ls
bigfile passwd
8.自动恢复moosefs-master异常
第一种方法:在server1上修改脚本
[root@server1 ~]# /etc/init.d/moosefs-master start
[root@server1 ~]# vim /etc/init.d/moosefs-master
31 $prog start >/dev/null 2>&1 || $prog -a >/dev/null 2>&1 && success
#异常关闭moosefs-master时,脚本会自动恢复正常并且开启master
测试:
在不正常情况下关闭moosefs-master
[root@server1 ~]# ps ax
[root@server1 ~]# kill -9 1606 #结束进程
此时开启moosefs-master时不会报错
第二种方法:将mnt目录下的metadata.mfs文件重命名为以.back结尾的文件。即可启动服务