我有一个 LUKS 加密文件,里面有大约 160 GB 的数据,我经常使用这些数据。为了安全起见,我创建了 400 GB 的文件。当然,这浪费了很多空间。所以我切换到稀疏文件,基本上遵循了这里的建议,只需使用 seek 选项创建文件即可:
dd if=/dev/zero of= <文件> bs=1G count=0 seek=400
但后来我想:如果文件开始碎片化会发生什么?通常这不是问题,因为我没有很大的文件,而且如果有的话,它们通常是不会改变的媒体文件。但我经常使用的加密文件可能很快就会碎片化……
所以我的问题是:在我的情况下使用稀疏文件而不是固定大小的文件是否真的有什么缺点?碎片化真的是个问题吗?你还有其他建议吗?
理论上,碎片可能成为一个问题,因为您现在有两层碎片 - 内部和外部文件系统 - 但实际上,如果它存储在 SSD 上,您可能根本不会注意到它(因为没有寻道延迟)。
LUKS 加密是 1:1,并且在任何方向都没有影响。
如果您将来发现
fallocate
任何性能问题,您可以随时使用它来请求操作系统完全分配当前稀疏的文件,然后使用e4defrag
(或适合底层文件系统的任何方法)对其进行碎片整理。反之亦然,您可以
fstrim
循环挂载文件系统,使其底层文件再次稀疏 - 以及在删除大文件后重新修剪它。(这需要在 LUKS 层启用“允许丢弃”。)