AES-NI ускоренное шифрование ZFS v31 в Solaris 11

AES-NI ускоренное шифрование ZFS v31 в Solaris 11

Я не совсем уверен, что это подходящее место для этого вопроса. Если нет, смело перенесите его туда, где это уместно.

Я тестирую функцию шифрования в ZFS v31 в виртуальной машине Solaris 11.11.11 под ESXi 5.0 на моем лабораторном компьютере. Я получаю ужасные результаты при бенчмаркинге моей зашифрованной папки на 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

При использовании 100% ЦП.

Напротив, без шифрования я получаю скорость записи почти 700 МБ/с и скорость чтения около 900 МБ/с.

Как 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

Да, я знаю, о чем вы думаете. Мне стоит попробовать его на голом железе — и я уже это сделал. Я получаю те же результаты, работая на голом железе. Причина, по которой я вообще упоминаю, что это в виртуальной машине, заключается в том, что AES-NI на самом деле работает и дает мне почти полную скорость при использовании TrueCrypt в моей 64-битной виртуальной машине Windows 7 под ESXi 5.0 с использованием точно таких же спецификаций для виртуальной машины.

Характеристики виртуальной машины:

  • Процессор: 2 ядра (Intel Xeon E3-1235 @ 3.2GHz)
  • Память: 8 ГБ
  • SAS-контроллер (через Vt-d и PCI-passthrough): 2x IBM M1015 (прошиты прошивкой IT)
  • Жесткие диски: 11x 2 ТБ Samsung F4EG (через IBM M1015)

С чего начать устранение неполадок? Кто-нибудь успешно использовал ускоренное шифрование AES-NI в Solaris 11 — если да, то как у вас настроено и приходилось ли вам делать что-то особенное?

решение1

AES-NI будет использоваться по умолчанию, и настройка не требуется. ZFS использует интерфейсы Solaris Kernel Cryptographic Framework. Поэтому очень простой фрагмент DTrace сообщит вам, были ли вызваны функции, использующие инструкции Intel aesenc:

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

fbt::aes_encrypt_intel:return
{
}

Обратите внимание, что когда мы включили шифрование для ZFS, мы также автоматически переключаем контрольную сумму на sha256-mac. Поэтому более справедливым сравнением будет набор данных ZFS, у которого checksum=sha256, а не checksum=on (то есть fletcher4).

решение2

Я думаю, Даррен ответил на ваш вопрос, но ваши результаты также могут быть искажены ZFS и кэшированием ОС. Хотя использование ddвсе еще может быть полезным, было бы полезнее использовать что-то вроде filebench(pkg benchmark/filebench под Solaris 11).

Связанный контент