Não tenho certeza se este é o lugar certo para perguntar isso; caso contrário, sinta-se à vontade para migrá-lo para onde for adequado.
Estou testando o recurso de criptografia no ZFS v31 em uma VM Solaris 11.11.11 no ESXi 5.0 em meu laboratório. Estou obtendo resultados terríveis ao testar minha pasta criptografada dd
em um RAIDZ3 de 11 discos.
dd referência:
# 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
O que se traduz em:
Write: 90.94 MB/s
Read: 52.366 MB/s
Ao usar 100% da CPU.
Por outro lado, sem criptografia, estou obtendo gravações a quase 700 MB/s e leituras a cerca de 900 MB/s.
Como isainfo -v
mostra, o aes é passado para a 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
Sim, eu sei o que você está pensando. Eu deveria tentar bare metal - e realmente tentei. Estou obtendo os mesmos resultados executando bare metal. A razão pela qual estou mencionando que está em uma VM é porque o AES-NI realmente funciona e está me dando velocidade quase total usando TrueCrypt em minha VM Windows 7 de 64 bits no ESXi 5.0 usando exatamente as mesmas especificações para a máquina virtual.
Especificações da VM:
- CPU: 2 núcleos (de Intel Xeon E3-1235 @ 3,2 GHz)
- Memória: 8GB
- Controlador SAS (via passagem Vt-d e PCI): 2x IBM M1015 (atualizado com firmware de TI)
- HDD: 11x 2 TB Samsung F4EG (via IBM M1015)
Por onde devo começar a solução de problemas? Alguém usou com sucesso a criptografia acelerada AES-NI no Solaris 11 - em caso afirmativo, como está sua configuração e você precisou fazer algo especial?
Responder1
AES-NI será usado por padrão e não há necessidade de configuração. O ZFS usa as interfaces do Solaris Kernel Cryptographic Framework. Portanto, um trecho muito simples do DTrace informará se as funções que usam as instruções do Intel aesenc foram chamadas:
#!/usr/sbin/dtrace -Fs
fbt::aes_encrypt_intel:entry
{
}
fbt::aes_encrypt_intel:return
{
}
Observe que quando habilitamos a criptografia para ZFS, também mudamos a soma de verificação para sha256-mac automaticamente. Portanto, uma comparação mais justa seria com um conjunto de dados ZFS que possui checksum=sha256 em vez de checksum=on (que é fletcher4).
Responder2
Acho que Darren respondeu à sua pergunta, mas seus resultados também podem estar sendo distorcidos pelo ZFS e pelo cache do sistema operacional. Embora using dd
ainda possa ser útil, seria mais útil usar algo como filebench
( pkg benchmark/filebench no Solaris 11).