Использую Bacul'у для резервного копирования данных на серверах. Где храню тома: по очереди подключаю SATA'шные НЖМД, потом
# cryptsetup luksOpen /dev/sdc
# mount /dev/mapper/bacula /mnt/bacula
То есть шифрую LUKS'ом диски целиком. При записи резервных копий load двухъядерного сервера (PentiumD 3,0 ГГц) держится в районе 2,5, а в top'е висят kcryptd и bacula-sd. То есть сервер серьёзно загружен, одно ядро крутит Storage Daemon Bacul'ы, а другое шифрование того диска на который он пишет данные. И вот возник у меня вопрос, если данных у меня будет больше (а их будет больше), сервер быстрее (скажем четырёхъядерник), а жёстких дисков сразу 2, то распараллелится ли шифрование на несколько ядер? bacula-sd, насколько я понял, можно запустить в нескольких экземплярах (с разными PIDDirectory, портами...Если что, я этот вариант ещё не пробовал), но будет ли у меня несколько процессов kcryptd. Шифрованых устройств-то будет 2. Если у меня M шифрованых устройств будет ли ускорение от использования N ядер? Это в случае использования LUKS'а. А что если использовать TrueCrypt? Что у нас ещё есть из надёжных средств шифрования?
Распараллелится. У меня 8 люкс устройств и поверх них ZFS, при чтении с ФС нагрузка на 4-х ядерном серваке выглядит так:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5271 root 20 0 1603m 406m 1528 S 72 10.3 1032:11 zfs-fuse
5260 root 20 0 0 0 0 R 16 0.0 145:07.85 kcryptd
5043 root 20 0 0 0 0 R 16 0.0 145:18.83 kcryptd
5213 root 20 0 0 0 0 R 16 0.0 145:36.29 kcryptd
5015 root 20 0 0 0 0 R 15 0.0 145:47.89 kcryptd
5123 root 20 0 0 0 0 R 15 0.0 145:57.62 kcryptd
5151 root 20 0 0 0 0 R 15 0.0 145:58.87 kcryptd
5075 root 20 0 0 0 0 R 14 0.0 146:17.52 kcryptd
5179 root 20 0 0 0 0 R 14 0.0 144:35.45 kcryptd
...
Вроде как даже может распарралеливаться и чтение с одного устройства, недавно в ядре появился некий «Parallel Crypto Engine», хотя конечно я могу путать