我没有使用btrfs的经验,但是它被宣传为能够删除重复数据文件。
在我的应用程序中,我需要复制整个目录树。
据我了解,btrfs仅在某些后期扫描中进行重复数据删除,而不是立即进行重复数据删除。即使只是使用cp
似乎也不会触发任何重复数据删除(至少df
表明复制文件的大小增加了磁盘使用量)。
我是否可以完全避免移动数据并btrfs
直接告诉文件在另一个位置重复,而实际上只是克隆其元数据?
从本质上讲,类似于硬链接,但具有独立的元数据(权限,修改时间等)。
请注意,这类似于硬链接。当您使用时
—
ormaaj
cp --reflink=always
,从用户角度来看,结果将以各种方式成为两个完全独立的文件。底层文件系统通过写时复制来抽象这一事实只是实现细节。您不会得到“硬链接,但具有独立的元数据”。据我所知,btrfs尚未进行任何自动重复数据删除。我认为这是一个未来的计划,但我对此并不乐观。
@ormaaj-硬链接将没有独立的元数据。Udo询问实现细节。当您对文件进行reflink时,您实际上是在克隆其元数据。只有当引用独立更改时,文件才会分开-这就是重复数据删除的全部内容!
—
mikeserv
@mikeserv Er,我很确定重复数据删除具有不同的含义。重复数据删除将获取现有的冗余数据副本并重新统一它。COW是最小化重复的一种手段,它不是重复数据删除。
—
ormaaj 2015年
@ormaaj-我认为这很奇怪:重复数据删除与最小化重复无关。
—
mikeserv
cp --reflink=always
。