cryptsetup, LUKS, бенчмарк dm-crypt

cryptsetup, LUKS, бенчмарк dm-crypt

Я работаю над встроенным программным обеспечением, где я использовал cryptsetup для создания зашифрованного дискового пространства через стандартное соединение NFS ethernet... Мне интересно понять скорость записи, которую достигает этот диск (простой анализ производительности).
Сначала я запускаю стандартный бенчмарк

root@sbc-lynx:/mnt# cryptsetup benchmark                                        
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1        33098 iterations per second for 256-bit key
PBKDF2-sha256      52851 iterations per second for 256-bit key
PBKDF2-sha512      34492 iterations per second for 256-bit key
PBKDF2-ripemd160   29789 iterations per second for 256-bit key
PBKDF2-whirlpool    7062 iterations per second for 256-bit key
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b    26.7 MiB/s    24.5 MiB/s
 serpent-cbc   128b     6.6 MiB/s     7.3 MiB/s
 twofish-cbc   128b    10.2 MiB/s    11.0 MiB/s
     aes-cbc   256b    21.4 MiB/s    20.8 MiB/s
 serpent-cbc   256b     6.6 MiB/s     7.3 MiB/s
 twofish-cbc   256b    10.2 MiB/s    10.2 MiB/s
     aes-xts   256b     9.0 MiB/s     9.0 MiB/s
 serpent-xts   256b     7.0 MiB/s     7.2 MiB/s
 twofish-xts   256b    10.7 MiB/s    10.9 MiB/s
     aes-xts   512b     7.1 MiB/s     7.0 MiB/s
 serpent-xts   512b     7.0 MiB/s     7.1 MiB/s
 twofish-xts   512b    10.7 MiB/s    10.9 MiB/s

Просто для целей тестирования я выбрал eaes-cbc-256, который, кажется, имеет хорошую производительность.
Но теперь я хочу проверить реальную достигнутую скорость. Мой NFS смонтирован в /mnt/, а зашифрованная папка правильно смонтирована в /home/encryptroot/. Я использовал:

time dd bs=5M count=1 if=/dev/zero of=/mnt/ppx conv=fsync
1+0 records in
1+0 records out
real    0m0.556s
user    0m0.000s
sys     0m0.110s

time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out   
real    0m1.104s
user    0m0.000s
sys     0m0.180s

Из этих результатов я получил в обычной папке скорость почти 9 МБ/с,
тогда как для зашифрованной папки я получил 4 МБ/с.
Вопрос 1) Является ли это допустимым методом оценки скорости записи? Используя параметр fsync, можно оценить время, затраченное на реальное копирование файла на диск (а не на копирование в кэши)?

Я не удовлетворен этими результатами, поскольку при потенциальной скорости шифрования 20 МБ/с я не могу заполнить всю доступную полосу пропускания (около 9 МБ/с).

Окончательное расследование: я изменил шифр и использовал aes-xts по умолчанию, который должен достичь максимума в 9 МБ/с. Я повторил

time dd bs=5M count=1 if=/dev/zero of=/home/encryptroot/ppx conv=fsync
1+0 records in
1+0 records out

real    0m2.281s
user    0m0.000s
sys     0m0.180s

Получение скорости записи 2,2 МБ/с.
Вопрос 2) есть ли другие факторы, которые следует учитывать, и которые я упускаю из виду, чтобы проанализировать эти результаты? Возможно, что накладные расходы xts настолько высоки, что снижают пропускную способность? И есть ли другие тесты, которые можно предложить?

Спасибо

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