恢复误删文件
文件删除后存放在“ 垃圾箱”中的时间称为隔离时间, 这个时间可以用 mfsgettrashtime 命令来查
看,用 mfssettrashtime 命令来设置,单位为秒,默认为 86400 秒。
挂载 MFSMETA 文件系统,它包含目录 trash (包含仍然可以被还原的删除文件的信息)和
trash/undel (用于获取文件)。把删除的文件,移到/ trash/undel 下,就可以恢复此文件。
在 MFSMETA 的目录里,除了 trash 和 trash/undel 两个目录,还有第三个目录 reserved,该目
录内有已经删除的文件,但却被其他用户一直打开着。在用户关闭了这些被打开的文件后,
reserved 目录中的文件将被删除,文件的数据也将被立即删除。此目录不能进行操作。
快照
MooseFS 系统的另一个特征是利用 mfsmakesnapshot 工具给文件或者是目录树做快照:
Mfsmakesnapshot 是在一次执行中整合了一个或是一组文件的拷贝,而且任何修改这些文件的源
文件都不会影响到源文件的快照, 就是说任何对源文件的操作,例如写入源文件,将不会修改副
本(或反之亦然)。
文件快照可以用 mfsappendchunks,
# mfsappendchunks destination-file source-file …
当有多个源文件时,它们的快照被加入到同一个目标文件中(每个 chunk 的最大量是 chunk)
为了安全停止 MooseFS 集群,建议执行如下的步骤:
# umount -l /mnt/mfs #客户端卸载 MooseFS 文件系统
# mfschunkserver stop #停止 chunk server 进程
# mfsmetalogger stop #停止 metalogger 进程
# mfsmaster stop #停止主控 master server 进程
安全的启动 MooseFS 集群:
# mfsmaster start #启动 master 进程
# mfschunkserver start #启动 chunkserver 进程
# mfsmetalogger start #启动 metalogger 进程
# mfsmount #客户端挂载 MooseFS 文件系统
实际上无论如何顺序启动或关闭,未见任何异常,master 启动后,metalogger、chunker、client
三个元素都能自动与 master 建立连接。
故障测试:
Client 客户端断电、断网对 MFS 的体系不产生影响.
如果客户端误杀 killall -9 mfsmount 进程,需要先 umount /mnt/mfs,然后再 mfsmount。否则会
提示:/mnt/mfs: Transport endpoint is not connected
先卸载,再恢复挂载
chunkserver 端:
chunkserver 端:
传输一个大文件,设置存储 2 份。传输过程中,关掉 chunker1,这样绝对会出现有部分块只存在chunker2 上;启动 chunker1,关闭 chunker2,这样绝对会有部分块只存在 chunker1 上。
把 chunker2 启动起来。整个过程中,客户端一直能够正常传输。使用 mfsfileinfo 查看此文件,发现有的块分布在 chunker1 上,有的块分布在 chunker2 上。使用 mfssetgoal -r 1 后,所有块都修改成 1 块了,再 mfssetgoal -r 2,重新启动mfschunkserver 所有块都修改成 2 份了。
此时再重新启动mfschunkserver后
来源URL:http://blog.chinaunix.net/uid-30236771-id-5133488.html