Xen*_*hic 15 linux encryption performance ecryptfs
我对 ecryptfs 和 dm-crypt 进行了一些基准测试,并得到了一些有趣的结果。以下所有内容均使用 Btrfs 文件系统完成,dd用于将约 700MB 的文件复制到/从 ramdisk,并带有conv=fdatasync强制数据同步的选项。在每次测试之前清除磁盘缓存。
No encryption:
read - 165MB/s
write - 120MB/s
ecryptfs:
read - 125MB/s
write - 15MB/s
dm-crypt:
read - 150MB/s
write - 115MB/s
dm-crypt + ecryptfs:
read - 120MB/s
write - 15MB/s
Run Code Online (Sandbox Code Playgroud)
现在我知道加密比原始文件系统慢,但是我没想到 ecryptfs 的写入性能会大幅下降。我强制数据同步的事实是否使此测试不切实际?或者我可以将任何选项传递给 ecryptfs 以使写入工作更快?
我在 ecryptfs 上使用文件名加密,但除此之外,所有内容都设置为默认值。
ddabout的手册页fdatasync读取:physically write output file data before finishing,因此它仅在物理上“一次”写入数据(将其读为“不强制每 X 块或字节刷新一次,而是在最后一次刷新”)。如果您用来dd进行测试,这是获得最准确结果的最佳方法。相反,不使用该特定标志会使您的结果不切实际:省略它可能会错过加密本身的时间,因为dd只是复制数据。
尽管如此,我也认为你的结果有些问题,但我发现这篇文章显示了几乎相同的内容:ecryptfs 非常慢。您的测试(正在复制单个文件)是 ecryptfs 的最佳情况!
由于 ecryptfs 为每个明文版本写入一个加密文件(带有包含元数据的自定义标头),因此拥有大量小文件意味着更大的性能下降。
然而,ecryptfs 有其优点:您可以立即发送加密文件而不会丢失加密。您的备份(假设您正在备份加密数据)会更快,因为您只会复制与数据一样大的文件(如果它们是增量的,则速度会更快,因为您只会复制修改过的文件)。
另一方面,dm-crypt 可能更快,但您需要发送整个容器(整个文件系统)才能保持加密不变。而且备份也将包含整个容器,在大多数情况下无法进行增量备份。
我已经使用(并且仍在使用)这两种方法(尽管不是相同的工具)来保存加密数据:基于文件的(ecryptfs)更容易通过在线托管服务(例如 PC 之间的 dropbox)保持同步,但是当进行更改并给我带来了底层文件系统的一些问题(它假设它可以写入文件,而与文件系统限制相关的问题往往会破坏整个系统);我更喜欢块设备加密:我将它们视为简单分区,因此限制和问题不会那么严重。唯一的缺点是复制容器,这可能需要更长的时间。
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |