Solaris 11 中的 AES-NI 加速 ZFS v31 加密

我不太确定这是否是问这个问题的正确地方,如果不是,请毫不犹豫地将其移至适合的任何地方。

我正在实验室机器上的 ESXi 5.0 下的 Solaris 11.11.11 VM 中检查 ZFS v31 中的加密功能。 在 11 磁盘 RAIDZ3 上使用 dd 对我的加密文件夹进行基准测试时,我得到了可怕的结果。

dd 标准:

# time dd if=/dev/zero of=/mypool/storage/dd.tst bs=1024000 count=10000
10000+0 records in
10000+0 records out

real    1m52.604s
user    0m0.010s
sys     0m2.715s
# time dd if=/mypool/storage/dd.tst of=/dev/null bs=1024000
10000+0 records in
10000+0 records out

real    3m15.547s
user    0m0.015s
sys     0m4.768s

转换为:

Write: 90.94 MB/s
Read: 52.366 MB/s

在使用 100% CPU 的同时。

相比之下,在没有任何加密的情况下,我的撰写速度几乎为 700 MB/s,读取速度也约为 900 MB/s。

正如 isainfo -v 所示,aes 已通过虚拟机。

# isainfo -v
64-bit amd64 applications
        xsave pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 sse3 sse2 sse
        fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
        xsave pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp ahf cx16 sse3 sse2
        sse fxsr mmx cmov sep cx8 tsc fpu

是的,我明白你的想法。 我应该尝试裸露的钢铁——而且我真的有。 我在裸钢上得到相同的结果。 我还说它在 VM 中的原因是因为 AES - NI 确实起作用,并且在我的 Windows 7 64 中使用 TrueCrypt 给我几乎全速 - 在 ESXi 5.0 下使用完全相同的规格的一点点 VM数字设备。

虚拟机规格:

  • CPU:2 核(Intel Xeon E3 - 1235 @ 3.2GHz)
  • 内存:8GB
  • SAS - 控制器(通过 Vt - d 和 PCI - 直通):2x IBM M1015(使用 IT 固件闪存)
  • 硬盘:11x 2TB Samsung F4EG(通过 IBM M1015)

我应该从哪里开始故障排除? 是否有人在 Solaris 11 中有效地使用了 AES - NI 加速加密 - 如果是这样,您的配置如何,您是否需要做任何特别的事情?

2
2022-06-07 14:37:31
资源 分享
答案: 1

默认情况下将使用 AES - NI,无需配置。 ZFS 使用 Solaris 内核加密框架用户界面。 因此,一个非常简单的 DTrace 将告诉您是否调用了利用 Intel aesenc 方向的功能:

#!/usr/sbin/dtrace -Fs
fbt::aes_encrypt_intel:entry
{
}

fbt::aes_encrypt_intel:return
{
}

请注意,当我们允许为 ZFS 启用加密时,我们同样会立即将校验和更改为 sha256 - mac。 因此,更公平的对比肯定是针对具有 checksum = sha256 而不是 checksum = on(即 fletcher4)的 ZFS 数据集。

5
2022-06-07 20:40:37
资源