Медленный SSD + dm-crypt с шифрованием Luks в Ubuntu 12.10

В моем ноутбуке (Samsung 840 Pro) установлен интерфейс SSD 128 ГБ. Этот ноутбук также оснащен процессором Intel i5 3210m Ivy Bridge и 8 ГБ оперативной памяти.

Я установил Ubuntu 12.10, используя графический установщик, чтобы получить полное шифрование диска. Я отчасти разочарован, потому что я ожидал, что спецификации у меня будут лучше, чем у меня.

Просматривая эту страницу Benchmarking для SSD, она утверждает, что мой процессор способен делать:

  • ~ 500 МБ / с: с AES-NI
  • ]
  • ~ 200 МБ / с: без AES-NI

Глядя на числа, которые я получаю, я думаю, что у меня, возможно, не включен AES-NI. Но сначала ...

Чтение незашифрованных данных происходит быстро:

# hdparm -Tt /dev/sda1

/dev/sda1:
 Timing cached reads:   14814 MB in  2.00 seconds = 7411.70 MB/sec
 Timing buffered disk reads: 242 MB in  0.48 seconds = 502.75 MB/sec

Это на самом деле близко к характеристикам моего SSD «до 530 МБ / с», а выполнение теста dd дает результаты, аналогичные приведенным выше.

]

Запись зашифрованных данных также выполняется быстро с помощью dm-crypt (в противном случае с eCryptfs производительность при записи ужасна, ниже 100 МБ / с), числа близки к спецификации SSD (я думаю, что запись буферизуется или что-то в этом роде):

# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.93896 s, 365 MB/s

Однако чтение зашифрованных данных - это еще одна история:

# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 5.85956 s, 183 MB/s

Во время написания этого сообщения мне действительно повезло получить 183 МБ / с, потому что это число варьируется. Обычно это где-то около 150 МБ / с, но при новой загрузке я также приблизился к 300 МБ / с, но затем производительность постепенно падает до 200 МБ / с без запуска каких-либо приложений. Обратите внимание, что при проведении этого теста у меня нет других процессов, которые делают ввод / вывод (как видно из iotop).

Кроме того, вот тест с hdparm, который дает худшие результаты:

 # hdparm -Tt /dev/mapper/sda2_crypt 

 /dev/mapper/sda2_crypt:
  Timing cached reads:   14816 MB in  2.00 seconds = 7412.86 MB/sec
  Timing buffered disk reads: 422 MB in  3.01 seconds = 140.11 MB/sec

Я также попробовал эксперимент, посмотрев на htop ... не уверен, как интерпретировать то, что я видел, поскольку процессор i5 выполняет Hyper-Threading, но 2 потока из 4 используются при тестировании примерно на 73%, а два других потока остались неиспользованными. В самом деле, если я запускаю 2 процесса, которые читают с dd из 2 разных файлов (чтобы предотвратить буферизацию), то iotop сообщает в общей сложности около 400 МБ / с. Так что это определенно похоже на то, что оно связано с процессором.

Мое разочарование связано с тем, что мой процессор i5 способен AES-NI . Незашифрованные данные читаются со скоростью более 500 МБ / с, используя те же тесты, которые я делал выше. Итак, мы говорим о том, что зашифрованный раздел работает как минимум в 3 раза медленнее.

Я действительно не знаю, использует ли моя установка dm-crypt AES-NI. Вот выходные данные lsmod:

 # lsmod | grep aes
 aesni_intel            51038  35 
 cryptd                 20404  10 ghash_clmulni_intel,aesni_intel
 aes_x86_64             17256  1 aesni_intel

Вот выходные данные cryptsetup:

 # cryptsetup status sda2_crypt
 /dev/mapper/sda2_crypt is active and is in use.
   type:    LUKS1
   cipher:  aes-xts-plain64
   keysize: 512 bits
   device:  /dev/sda2
   offset:  4096 sectors
   size:    249565184 sectors
   mode:    read/write
   flags:   discards

Итак, ожидается ли это? Разве AES-NI не должен улучшать вещи больше, чем это?

Кроме того, как отключить AES-NI, чтобы увидеть, есть ли какая-то разница? И, возможно, мне следует как-то включить его, но я не нашел никаких подсказок в своих поисках.

Спасибо,

9
задан 22 January 2013 в 16:22

2 ответа

В Ubuntu существует неверная конфигурация, из-за которой модуль aesni_intel загружается недостаточно рано для обработки криптографии для разблокированных при загрузке устройств. Я смог исправить это на своих машинах, выполнив:

sudo vim /etc/initramfs-tools/modules

Ниже последней строки добавьте

# enable h/w accelerated encryption
cryptd
aes_x86_64
aesni_intel

, затем выполните

sudo update-initramfs -u -k all

перезагрузку и наслаждаться. После этого на аналогичном твердотельном накопителе я видел скорость чтения и записи 500 МБ / с при незначительном использовании процессора.

Полную информацию об этой ошибке можно найти на https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/908387/comments/7

.
0
ответ дан 22 January 2013 в 16:22

Samsung 840 Pro поддерживает аппаратное шифрование AES. Если BIOS вашего ноутбука поддерживает основной режим и пароль пользователя для режима безопасности ATA, вам повезло.

Установив мастер-пароль ATA в BIOS, а затем выполнив безопасное удаление диска, микропрограмма привода должна сгенерировать новые случайные ключи AES. После безопасного удаления убедитесь, что вы установили хорошие мастер-пароли ATA и пароли пользователей. Насколько я смог установить (см. Мой пост здесь http://vxlabs.com/2012/12/22/ssds-with-usable-built-in-hardware-based-full-disk-encryption / ) Samsung также шифрует свои ключи AES с помощью вашего пароля ATA.

Это обеспечит вам полное шифрование AES, программное обеспечение не требуется.

0
ответ дан 22 January 2013 в 16:22

Другие вопросы по тегам:

Похожие вопросы: