本文主要关于Moosefs存储空间扩容及元数据恢复说明,Moosefs安装配置参考以下链接

http://hnr520.blog.51cto.com/4484939/1837619


一、原有集群,一台master、一台metalogger、两台chunkserver

1.分布情况

IP地址

角色

系统

备注

192.168.115.12

mfsmaster

Centos7

node2.hnr.com

192.168.115.31

mfsmetalogger

Centos6


192.168.115.11

mfschunkserver

Centos7

node1.hnr.com

192.168.115.13

mfschunkserver

Centos7

node3.hnr.com

192.168.115.11

mfsclient

Centos7

node1.hnr.com

2.挂载使用并设置副本数为2

#/usr/local/mfs/bin/mfsmount -H 192.168.115.12 /mnt/test/
#/usr/local/mfs/bin/mfssetgoal -r 2 /mnt/test/

3.准备数据

复制5150M文件到mfs上

#for i in {1..5};do cp server.log /mnt/test/server.log.$i;done

4.磁盘空间使用情况

chunkserver1

wKiom1eu-IjS49mrAAA47x_vM3M139.jpg

chunkserver2

5.查看这个5个文件的副本数

#for i in `ls /mnt/test/`;do /usr/local/mfs/bin/mfsfileinfo /mnt/test/$i;done

Moosefs存储空间扩容及元数据恢复_第1张图片

 

二、增加chunkserver节点,扩容存储空间

1.新加入chunkserver节点

IP地址

角色

系统

备注

192.168.115.12

mfschunkserver

Centos7


192.168.115.31

mfschunkserver

Centos6


2.软件安装好,修改连接master地址即可,启动服务即可加入集群中

加入两个chunkserver节点,可以看到数据进行重新平衡,每个chunk复制一份到新加的两个节点其中一个,待相应的chunk都复制到新加的节点,在删除一个原有的chunk

Moosefs存储空间扩容及元数据恢复_第2张图片

3.重新平衡后的效果

Moosefs存储空间扩容及元数据恢复_第3张图片

三、元数据损坏恢复

1.什么是元数据损坏

元数据损坏是指由于各种原因导致master上的metadata.mfs数据文件不可用。

一旦元数据损坏,所有的存储在moosefs上的文件都不可使用。

2.模拟元数据损坏

停止master节点并删除metadata.mfschangelog.0.mfs(变更日志文件)。

# /usr/local/mfs/sbin/mfsmasterstop
# cd/usr/local/mfs/lib/mfs
# rm -rf *

重新启动master将报错

#/usr/local/mfs/sbin/mfsmaster start

Moosefs存储空间扩容及元数据恢复_第4张图片

3.Master元数据恢复

metalogger上将最新一份metadata_ml.mfs.backchangelog_ml.0.mfs复制到master的数据目录下,并注意文件属主属组为mfs

# scp changelog_ml.0.mfs metadata_ml.mfs.back192.168.115.12:/usr/local/mfs/lib/mfs

master节点数据目录修改复制过来的文件属性

# chown mfs.mfs *

启动master服务

此时需要以-a方式启动

# /usr/local/mfs/sbin/mfsmaster -a

Moosefs存储空间扩容及元数据恢复_第5张图片

到此,master服务已经正常启动

4.验证文件是否可用

Moosefs存储空间扩容及元数据恢复_第6张图片

Moosefs存储空间扩容及元数据恢复_第7张图片

经过验证,存储上的原有文件均正常。