Есть задача шифровать все данные на сервере, конфигурация оборудования следующая:
M/B SuperMicro X7SBE-О LGA775, i3210
CPU Intel(R) Xeon(R) X3370 @ 3.00GHz
RAM 2Gb ECC CL6 x 4 шт.
RAID controller 3ware 9690SA-8I (OEM) PCI-E x8
HDD 73 Gb SAS Hitachi 15000rpm 16Mb 6 шт. в RAID10
OS Ubuntu Server 9.10, как вариант можно воспользоваться CentOS или Fedora но сомневаюсь что это что-нибудь даст.
Дисковая система позволяет получить скорость последовательного чтения / записи порядка 330 - 350 Мб/сек
С использованием шифрования, а конкретнее dm-crypt LUKS скорость падает до 121 Мб/сек запись и 99 Мб/сек чтение (при работе с диском).
Опробованы были не все, но очень многие системы шифрования как уровня ядра так и userspace уровня (например EncFS) в том числе и truecrypt.
Максимального быстродействия получается добиться с использованием cryptoloop но это устаревшая система на замену которой собственно пришел dm-crypt + LUKS да и выигрыш не такой существенный, ниже средние результаты тестов.
Практически все тесты проводились в оперативной памяти (если не указано обратное), выделялся блок данных типа /dev/shm/test далее он использовался как блочное устройство возможно это не 100% чистый вариант тестирование, но как показала практика он позволяет быстро выявить самый быстрый способ шифрования доступный в системе без записи / чтения как минимум 10-и гигабайт данных.
dm-crypt luks (с самыми оптимальными настройками -с aes-xts-plain -s 256 в памяти) при выполнении запускается один рабочий процесс kcryptd который использует лишь одно ядро
запись 142 MB/s
чтение 145 MB/s
cryptoloop (loopsetup -e aes -k 128)
запись 133 MB/s
чтение 164 MB/s
cryptoloop (loopsetup -e aes-xts-plain -k 256)
запись 146 MB/s
чтение 156 MB/s
TrueCrypt в памяти
запись 169 MB/c
чтение 127 MB/c
выигрыш по сравнению с dm-crypt есть, правда сомнительный и то в памяти, если операции производить с диском то получаем следующие данные:
запись 128 MB/c
чтение 54,7 MB/c
кроме того, заявлено что truecrypt умеет распараллеливать шифрование между ядрами, но как показала практика запускается один рабочий процесс kcrypd как и в случае с dm-crypt
EncFS работа с диском
запись 55,1 MB/c
чтение 55,6 MB/c
так же и все остальные системы шифрования encfs использует лишь одно ядро, и скорость значительно ниже других испробованных вариантов.
В общем проблема всех систем шифрования которые были испробованы что они используют лишь одно ядро, с использованием 2-х ядер скорость возможно бы приблизилась к приемлемому уровню, правда несомненно уменьшилась бы производительность системы в целом. Так же операции чтения
при работе с диском обычно выполняются медленнее чем запись, а без использования шифрования скорость приблизительно равна.
Все указывает на то что для обеспечения приемлемой скорости и разгрузки CPU необходимо аппаратное ускорение шифрования, мне известно только про
VIA PadLock, но данной системы вроде бы не существует в природе в виде платы расширения.
Так же мне не удалось найти ни каких иных аппаратных плат расширения увеличивающих быстродействие шифрования.
Суть проблемы / вопроса в том как все же увеличить скорость шифрования.
Очень надеюсь на ваши советы, т.к. свои возможности в этом вопросе я похоже исчерпал.