如何使用BTRFS对数据进行重复数据删除?


15

我已经在EEE PC 701上使用文件系统BTRFS安装了Lubuntu 15.04。我想对数据进行重复数据删除,但是我不知道该怎么做。

Answers:


14

首先进行完整备份,这样即使出现问题也不会丢失任何内容。

我相信你正在寻找 duperemove -d

“ Duperemove是一个简单的工具,用于查找重复的扩展区并提交以进行重复数据删除。当给定文件列表时,它将逐块对它们的内容进行哈希处理,并将这些哈希值相互比较,查找并分类彼此匹配的扩展区。当提供-d选项时,duperemove将使用btrfs-extent-same ioctl提交这些重复数据删除范围。

Duperemove有两种主要的操作模式,其中一种是另一种。

只读/非重复数据删除模式

在不使用-d(默认值)的情况下运行时,duperemove将打印出一个或多个匹配范围的表,该表已确定是重复数据删除的理想候选者。结果,只读模式对于查看duperemove与'-d'一起运行时可能会做什么有用。某些其他软件也可以使用输出来提交扩展数据块,以便在以后的时间进行重复数据删除。

重要的是要注意,此模式将不会打印出所有匹配范围的实例,而只会打印那些会考虑重复数据删除的实例。

通常,duperemove并不关心其处理范围的基础表示。其中一些可能已压缩,正在进行I / O,甚至已经进行了重复数据删除。在重复数据删除模式下,内核会处理这些详细信息,因此我们尝试不复制该工作。

重复数据删除模式

此功能与只读模式相似,不同之处在于,在“读取,哈希和比较”步骤中找到的重复范围实际上将被提交以进行重复数据删除。操作完成后,将打印已重复数据消除的总数据的估计值。通过比较重复数据删除前后每个文件中共享字节的总数来计算此估计值。

有关运行duperemove的更多详细信息,请参见duperemove手册页。”

这似乎没有出现在btrfs-tools包中,但是这里有一个git hub页面此处提供最近的未解决和已解决的问题(又名脉冲)

可在此PPA中找到所有当前受支持的Ubuntu版本的软件包

我必须重申,强烈建议进行备份。参见:https : //github.com/markfasheh/duperemove/issues/50

引用来源:https : //github.com/markfasheh/duperemove

手册页:https : //manpages.debian.org/testing/duperemove/duperemove.8.en.html


当我键入duperemove -d时,我会获得帮助页面
wb9688 2015年

1
键入“ man duperemove”会得到什么?我相信您需要指定要运行的文件。就像duperemove [options] files...
极客长老

/ me昨天才使用过它-FTR,命令是duperemove -rdh path1 path2 pathn-r用于递归,-d实际重复数据删除以及-h便于人们阅读的数字。
Hi-Angel

@ Hi-Angel更新了答案-添加了手册页链接
Elder Geek

3

我一直都用卧床休息。这是非常快速和可靠的。btrfs官方页面上也提到了此工具。我从没用过duperemove(睡床比较老)。


2
在这一点上,就寝不再处于积极的发展之中,而且已经过时了。
珀金斯

3
@珀金斯,我不同意。我刚刚收到了有关今天发布的问题github.com/g2p/bedup/issues/75的反馈,在此帮助下,我刚刚在新的16.04服务器上“整理”了7GB以上的空间。
亚当·里奇科夫斯基

3
也许有人再捡起它。大约一年后,我完全放弃了它,甚至完全无法正确扫描重复项。也就是说,除非他们已对其进行更新以使用新的ioctl,否则duperemove将更加安全,因为它在内核空间中原子地进行重复数据删除,而不是对其中一个重复进行复制,而对另一个进行复制。但是随后,bedup实际上将获得足够小的文件以存储在树中,而由于缺乏内核支持,duperemove当前无法这样做。
珀金斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.