MFS 快速删除文件和恢复文件
#回收站清空时间,以秒为单位计算,设置文件或目录的删除时间。一个删除的文件能够存放在“ 垃圾箱”中的时间称为隔离时间,
这个时间可以用mfsgettrashtime 命令来查看,用mfssettrashtime 命令来设置。单位为秒
mfsgettrashtime 用来查看已删除文件能够在回收站存放的时间,超过这个时间后彻底删除。
格式:mfsgettrashtime 文件名/目录名
用例为一天后清空回收站。
mfsgettrashtime /data
/data: 86400
回收站清空时间设置
mfsrsettrashtime
mfsrsettrashtime [time] [dir]
使用mfsmount命令挂载时,用了一个“-m” 或“-o mfsmaster”的选项,这样可以挂载一个辅助的文件系统mfsmeta
metamfs可以看成是MFS挂载目录的回收站,所有在MFS挂载目录上删除的文件,都会保留在回收站内。删除文件的保留的时间由mfsrsettrashtime命令决定
这个挂载的权限依赖
vim /etc/mfs/mfsexports.cfg
172.30.16.0/16 / rw,alldirs,maproot=0:0
辅助文件系统可以在如下两个方面恢复丢失的数据:
1.MFS卷上误删除了文件,而此文件又没有过垃圾文件存放期。(mfsrsettrashtime 指定的)
2.为了释放磁盘空间而删除或者移动的文件,当需要恢复这些文件时,文件又没有过垃圾文件的存放期
如果部署MooseFS 文件系统时没有指定文件回收站位置,默认是不自动创建的,但是被删除的文件时间没超过一天的仍然存在。
解决这个问题只需要创建或选择一个目录,将mfs挂载到回收站所用目录即可。
mfsmount -H 172.30.16.23 -m /mnt/mfs
mount检查是否挂载成功
进入回收站所在目录,即可看到mfs存储上删除的数据(目录undel除外)。
cd /mnt/mfs
#ls
sustained trash
# cd trash/
# ls
trash 该目录内就是包含所有删除的可回收的文件
sustained 该目录内有已经删除的文件,但却有一直打开着。在用户关闭了这些被打开的文件后,目录中的文件将被删除,文件的数据也将被立即删除。
在sustained目录中文件的命名方法同trash目录中的一样,但是不能有其他功能的操作
把删除的文件,移到/ trash/undel下,就可以恢复此文件
说明
被删除的文件是由一个八位十六进制的数i-node 和被删文件的文件名组成,在文件名和i-node 之间不是用“/”,而是用了“|”替代。
如果一个文件名的长度超过操作系统的限制(通常是255 个字符),那么部分将被删除。
通过从挂载点起全路径的文件名被删除的文件任然可以被读写。
移动这个文件到trash/undel 子目录下,将会使原始的文件恢复到正确的MooseFS 文件系统上路径下(如果路径没有改变)。
如果在同一路径下有个新的同名文件,那么恢复不会成功。
0000002E|123|tst 代表123目录下tst文件,如果123目录被一起删除,
恢复的时候123这个目录也会被一同恢复出来。
下面的例子是恢复包含wwwroot.bak的文件
#ls |egrep "wwwroot.bak" |xargs -I {} mv {} undel/
快速恢复删除文件的空间
从“垃圾箱”中删除文件结果是释放之前被它站用的空间(删除有延迟,数据被异步删除)。
#cd trash/
#find ./ -type f |xargs rm -f
这样可以快速完成删除MFS 的数据,恢复空间