我已经在三个硬盘驱动器上设置了 Linux 软件 RAID5,并想用 cryptsetup/LUKS 对其进行加密。我的测试表明加密会导致我无法解释的大量性能下降。
RAID5 无需加密即可写入 187 MB/s [1]。通过加密,写入速度降至约 40 MB/s。
RAID 具有 512K 的块大小和写意图位图。我用作-c aes-xts-plain -s 512 --align-payload=2048的参数cryptsetup luksFormat,因此有效载荷应对齐到 2048 个 512 字节的块(即 1MB)。cryptsetup luksDump显示负载偏移量为 4096。所以我认为对齐是正确的并且适合 RAID 块大小。
CPU 不是瓶颈,因为它具有对 AES (aesni_intel) 的硬件支持。如果我在另一个同样加密的驱动器(带有 LVM 的 SSD)上写入,我的写入速度为 150 MB/s。top显示CPU使用率确实很低,只有RAID5 xor占用14%。
我还尝试将文件系统 (ext4) 直接放在未加密的 RAID 上,以便查看分层是否有问题。文件系统按预期稍微降低了性能,但到目前为止还没有那么多(写入速度不同,但 > 100 MB/s)。
总结:
磁盘+RAID5:好
磁盘+RAID5+ext4:好
磁盘+RAID5+加密:坏
SSD+加密+LVM+ext4:好
读取性能不受加密影响,无加密时为 207 MB/s,加密时为 205 MB/s(也表明 CPU 能力不是问题)。
如何提高加密RAID的写入性能?
[1] 所有速度测量都是通过多次运行完成的dd if=/dev/zero of=DEV bs=100M count=100(即以 100M …