Cifrado ZFS v31 acelerado AES-NI en Solaris 11

Cifrado ZFS v31 acelerado AES-NI en Solaris 11

No estoy muy seguro de si este es el lugar correcto para preguntar esto; si no, no dudes en migrarlo a donde encaje.

Estoy probando la función de cifrado en ZFS v31 en una máquina virtual Solaris 11.11.11 bajo ESXi 5.0 en mi caja de laboratorio. Estoy obteniendo resultados terribles cuando comparo mi carpeta cifrada con ddun RAIDZ3 de 11 discos.

dd punto de referencia:

# 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

Lo que se traduce en:

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

Mientras usa 100% CPU.

Por el contrario, sin cifrado, obtengo escrituras a casi 700 MB/s y lecturas a alrededor de 900 MB/s.

Como isainfo -vse muestra, aes pasa a la 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

Sí, sé lo que estás pensando. Debería probarlo sin herramientas, y de hecho lo hice. Obtengo los mismos resultados al ejecutar bare metal. La razón por la que menciono que está en una máquina virtual es porque AES-NI realmente funciona y me brinda casi la máxima velocidad usando TrueCrypt en mi máquina virtual Windows 7 de 64 bits bajo ESXi 5.0 usando exactamente las mismas especificaciones para la máquina virtual.

Especificaciones de la máquina virtual:

  • CPU: 2 núcleos (de Intel Xeon E3-1235 a 3,2 GHz)
  • Memoria: 8GB
  • Controlador SAS (a través de Vt-d y PCI-passthrough): 2x IBM M1015 (actualizado con firmware de TI)
  • HDD: 11x 2TB Samsung F4EG (a través de IBM M1015)

¿Dónde debería empezar a solucionar problemas? ¿Alguien ha utilizado con éxito el cifrado acelerado AES-NI en Solaris 11? Si es así, ¿cómo es su configuración? ¿Tuvo que hacer algo especial?

Respuesta1

AES-NI se utilizará de forma predeterminada y no se requiere configuración. ZFS utiliza las interfaces del marco criptográfico Solaris Kernel. Entonces, un fragmento muy simple de DTrace le dirá si se han llamado las funciones que utilizan las instrucciones Intel aesenc:

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

fbt::aes_encrypt_intel:return
{
}

Tenga en cuenta que cuando habilitamos el cifrado para ZFS, también cambiamos la suma de verificación a sha256-mac automáticamente. Por lo tanto, una comparación más justa sería con un conjunto de datos ZFS que tenga checksum=sha256 en lugar de checksum=on (que es fletcher4).

Respuesta2

Creo que Darren respondió a su pregunta, pero sus resultados también podrían estar sesgados por ZFS y el almacenamiento en caché del sistema operativo. Aunque usar ddaún puede ser útil, sería más útil usar algo como filebench(pkg benchmark/filebench en Solaris 11).

información relacionada