mfs的原理请看总结链接:MFS原理
mfsgettrashtime 用来查看已删除文件能够在回收站存放的时间,超过这个时间后彻底删除。用例为一天后清空回收站。
格式:mfsgettrashtime 文件名/目录名
tmp]# mfsgettrashtime /data
/data: 86400
如果部署MooseFS 文件系统时没有指定文件回收站位置,默认是不自动创建的,但是被删除的文件时间没超过一天的仍然存在。解决这个问题只需要创建或选择一个目录,将mfs挂载到回收站所用目录即可。mount检查是否挂载成功。
]# mkdir /mfs_recycle
]# mfsmount -H 172.30.16.23 -m /mfs_recycle
trash]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
/dev/sdj on /data9 type xfs (rw,relatime,attr2,inode64,noquota)
/mfs_recycle/trash/172.30.16.23:9421 on /data type fuse.mfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
/mfs_recycle/trash/172.30.16.23:9421 on /mfs_recycle type fuse.mfsmeta (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
进入回收站所在目录,即可看到mfs存储上删除的数据(目录undel除外)。
du -sh ./ 统计当前目录(回收站)中所有文件所占空间。
]# cd /mfs_recycle/
mfs_recycle]# ls
sustained trash
mfs_recycle]# cd trash/
trash]# ls
000 085 10A 18F 214 299 AE9 B6E BF3 FFF
001 086 10B 190 215 29A 31FB EF6 F7B undel
trash]# du -sh ./
474G ./
MFS回收站中的数据恢复:
进入/mfs_recycle/ trash目录,将要进行回复的数据移动到/mfs_recycle/ trash/undel/目录中,数据会自动恢复至删除前的位置。
被删文件的文件名在“垃圾箱”目录里还可见,文件名由一个八位十六进制的数i-node 和被删文件的文件名组成,在文件名和i-node 之间不是用“/”,而是用了“|”替代。如果一个文件名的长度超过操作系统的限制(通常是255 个字符),那么部分将被删除。通过从挂载点起全路径的文件名被删除的文件任然可以被读写。需要注意的是被删除的文件在用全路径文件名(注意文件名是两部分)时一定要用单引号引起来。例如:
*
trash]# cd 084\|005CC084\|hehe\|abc\|8\|94\|7A\|00000417057\|1000\|
084|005CC084|hehe|abc|005CC084|otv|guangshi|8|94|7A|00000417057|1000|
trash]# mfsgettrashtime "000/005BD000|hehe|abc|4|16|D2|00000417253|1000|4873361000237.ts"
000/005BD000|hehe|abc|4|16|D2|00000417253|1000|4873361000237.ts: 86400
trash]# mfsgettrashtime "/mfsrecycle/trash/000/005BD000|hehe|abc|4|16|D2|00000417253|1000|4873361000237.ts"
/mfsrecycle/trash/000/005BD000|hehe|abc|4|16|D2|00000417253|1000|4873361000237.ts: 86400
*