答案1
从内核 4.5 开始,这可以在创建文件系统后完成。只是使用 blivet-gui 创建单个 btrfs 卷以通常的方式(加密),然后使用Btrfs 平衡/convert 在创建并安装分区后将数据切换到 DUP 配置文件,例如:
sudo btrfs balance start -mconvert=dup /run/media/<path>
sudo btrfs balance start -dconvert=dup /run/media/<path>
写入一些文件后,您将看到类似以下内容的内容:
$ lsblk | tail -n3
sdf 8:80 0 232,9G 0 disk
└─sdf1 8:81 0 232,9G 0 part
└─luks-<UUID> 253:7 0 232,9G 0 crypt /run/media/<path>
$ sudo btrfs filesystem df /run/media/<path>
Data, DUP: total=108.00GiB, used=106.64GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=2.00GiB, used=169.94MiB
GlobalReserve, single: total=131.78MiB, used=0.00B
当然,dup 不能替代备份,甚至不能替代两个不同物理设备上的 RAID1。请参阅以下位置的警告:在单个设备上复制配置文件:
是否真的有 2 个物理副本很大程度上取决于底层设备类型。例如,SSD 驱动器可以在内部将块重新映射到单个副本,从而对它们进行重复数据删除。这否定了增加冗余的目的,并且只是浪费了文件系统空间,而没有提供预期的冗余级别。
因此,重复数据删除对 HDD 的帮助可能比对 SSD 的帮助更大。目前还不清楚加密如何影响重复数据删除和磨损均衡技术。