我不太確定這是問這個問題的合適地方,如果不是,請隨意將其遷移到適合的地方。
我正在實驗室機器上 ESXi 5.0 下的 Solaris 11.11.11 VM 中測試 ZFS v31 中的加密功能。在dd
11 磁碟 RAIDZ3 上測試加密資料夾時,我得到了糟糕的結果。
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/秒,讀取速度約為 900 MB/秒。
如圖isainfo -v
所示,aes 被傳遞到 VM。
# 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
是的,我知道你在想什麼。我應該嘗試一下裸機 - 我確實這麼做了。我在裸機上運行時得到了相同的結果。我甚至提到它在虛擬機器中的原因是因為 AES-NI 實際上可以工作,並且使用與虛擬機完全相同的規格在 ESXi 5.0 下的 Windows 7 64 位元虛擬機中幾乎可以全速使用 TrueCrypt。
虛擬機器規格:
- CPU:2核心(Intel Xeon E3-1235 @ 3.2GHz)
- 記憶體:8GB
- SAS 控制器(透過 Vt-d 和 PCI 直通):2x IBM M1015(快閃 IT 韌體)
- HDD:11x 2TB Samsung F4EG(透過 IBM M1015)
我該從哪裡開始排除故障?有沒有人在 Solaris 11 中成功使用 AES-NI 加速加密 - 如果是這樣,您的設定如何,您是否需要做任何特殊的事情?
答案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 資料集。
答案2
我認為 Darren 回答了您的問題,但您的結果也可能受到 ZFS 和作業系統快取的影響。儘管使用仍然有用,但使用類似(Solaris 11 下的 pkg benchmark/filebench)dd
之類的東西會更有用。filebench