AES-NI는 Solaris 11에서 ZFS v31 암호화를 가속화했습니다.

AES-NI는 Solaris 11에서 ZFS v31 암호화를 가속화했습니다.

이곳이 이것을 물어볼 적절한 장소인지 잘 모르겠습니다. 그렇지 않은 경우에는 적합한 곳으로 자유롭게 마이그레이션하십시오.

내 랩 박스에서 ESXi 5.0의 Solaris 11.11.11 VM에서 ZFS v31의 암호화 기능을 테스트하고 있습니다. dd11개 디스크 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

CPU를 100% 사용하는 동안.

반면, 암호화를 사용하지 않으면 거의 700MB/s의 속도로 쓰기가 가능하고 약 900MB/s의 속도로 읽을 수 있습니다.

표시된 것처럼 isainfo -vaes가 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

네, 당신이 무슨 생각을 하는지 알아요. 베어메탈을 사용해 봐야 하는데 실제로 해봤습니다. 베어메탈을 실행해도 동일한 결과가 나타납니다. VM에 있다고 언급하는 이유는 AES-NI가 실제로 작동하고 가상 머신에 대해 정확히 동일한 사양을 사용하는 ESXi 5.0의 Windows 7 64비트 VM에서 TrueCrypt를 사용하여 거의 최고 속도를 제공하기 때문입니다.

VM 사양:

  • CPU: 코어 2개(Intel Xeon E3-1235 @ 3.2GHz)
  • 메모리: 8GB
  • SAS 컨트롤러(Vt-d 및 PCI 패스스루를 통해): IBM M1015 2개(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=on(fletcher4)이 아닌 checksum=sha256을 갖는 ZFS 데이터 세트를 비교하는 것이 더 공정합니다.

답변2

Darren이 귀하의 질문에 답변했다고 생각하지만 귀하의 결과는 ZFS 및 OS 캐싱으로 인해 왜곡될 수도 있습니다. 을 사용하는 것이 여전히 유용할 수 있지만 (Solaris 11에서는 pkg benchmark/filebench) dd과 같은 것을 사용하는 것이 더 유용할 것입니다 .filebench

관련 정보