Moosefs 分布式存储(三)———恢复误删文件及快照-plumxx99-ChinaUnix博客

恢复误删文件

文件删除后存放在“ 垃圾箱”中的时间称为隔离时间, 这个时间可以用 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