MooseFS是一款网络分布式文件系统。从其简介、部署及应用方面已经详细给大家介绍了,今天我们来了解一下MooseFS的维护技巧。

一、启动MooseFS集群

最安全的启动MooseFS集群(避免任何读或写的错误数据或类似的问题)的方式是按照以下命令步骤:

  • 启动mfsmaster进程

  • 启动所有的mfschunkserver进程

  • 启动mfsmetalogger进程(如果配置了mfsmetalogger)

当所有的chunkservers连接到MooseFS master后,任何数目的客户端可以利用mfsmount去挂接被export的文件系统。(可以通过检查master的日志或是CGI监视器来查看是否所有的chunkserver被连接)。

二、停止MooseFS集群

安全的停止MooseFS集群:

  • 在所有的客户端卸载MooseFS 文件系统(用umount命令或者是其它等效的命令)

  • 用mfschunkserver –s命令停止chunkserver进程

  • 用mfsmetalogger –s命令停止metalogger进程

  • 用mfsmaster –s命令停止master进程

三、MooseFS chunkservers的维护

假如每个文件的goal(目标)都不小于2,并且没有under-goal文件(这些可以用mfsgetgoal –r和mfsdirinfo命令来检查),那么一个单一的chunkserver在任何时刻都可能做停止或者是重新启动。以后每当需要做停止或者是重新启动另一个chunkserver的时候,要确定之前的chunkserver被连接,而且要没有under-goal chunks。

四、MooseFS元数据的备份

通常元数据有两部分的数据

  • 主要元数据文件metadata.mfs,当mfsmaster运行的时候会被命名为metadata.mfs.back

  • 元数据改变日志changelog.*.mfs,存储了过去的N小时的文件改变(N的数值是由BACK_LOGS参数设置的,参数的设置在mfschunkserver.cfg配置文件中)。

主要的元数据文件需要定期备份,备份的频率取决于取决于多少小时changelogs储存。元数据changelogs应该实时的自动复制。自从MooseFS 1.6.5,这两项任务是由mfsmetalogger守护进程做的。

五、MooseFS master的恢复

一旦mfsmaster崩溃(例如因为主机或电源失败),需要最后一个元数据日志changelog并入主要的metadata中。这个操作时通过mfsmetarestore工具做的,最简单的方法是:

mfsmetarestore -a

如果master数据被存储在MooseFS编译指定地点外的路径,则要利用-d参数指定使用,如:

mfsmetarestore -a -d /storage/mfsmaster

六、从备份恢复MooseFS master

为了从备份中恢复一个master,需要做:

1、安装一个mfsmaster

2、利用同样的配置来配置这台mfsmaster(利用备份来找回mfsmaster.cfg),可见配置文件也是需要备份的。

3、找回metadata.mfs.back文件,可以从备份中找,也可以中metalogger主机中找(如果启动了metalogger服务),然后把metadata.mfs.back放入data目录,一般为${prefix}/var/mfs。

4、从在master宕掉之前的任何运行metalogger服务的服务器上拷贝最后metadata文件,然后放入mfsmaster的数据目录。

5、利用mfsmetarestore命令合并元数据changelogs,可以用自动恢复模式mfsmetarestore –a,也可以利用非自动化恢复模式,语法如下:

mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs