Повільна SSD + dm-крипта з шифруванням Luks в Ubuntu 12.10


10

У мене на ноутбуці встановлений SSD об'ємом 128 Гб (Samsung 840 Pro) на інтерфейсі Sata 3. Цей ноутбук також має i5 3210 м процесор Ivy Bridge Intel та 8 ГБ оперативної пам’яті.

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

Переглядаючи цю сторінку SSD Benchmarking, він стверджує, що мій процесор:

  • ~ 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двох різних файлів (для запобігання буферизації), то iotopзвітую загалом приблизно 400 Мб / с. Таким чином, це, безумовно, відчуває, що це пов'язано з процесором.

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

Я не знаю, чи використовується моя dm-крипта 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, щоб побачити, чи є різниця? І, можливо, я мав би це якось увімкнути, але не знайшов підказок у своїх пошуках.

Дякую,

Відповіді:


6

Ваш 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, не потрібне програмне забезпечення.


5

У 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

перезавантажте та насолоджуйтесь. Після цього на подібному SSD я бачив 500 Мб / с, що читав і писав із незначним використанням процесора.

Повна інформація про цю помилку знаходиться на веб-сторінці https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/908387/comments/7

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.