В моем ноутбуке (Samsung 840 Pro) установлен интерфейс SSD 128 ГБ. Этот ноутбук также оснащен процессором Intel i5 3210m Ivy Bridge и 8 ГБ оперативной памяти.
Я установил Ubuntu 12.10, используя графический установщик, чтобы получить полное шифрование диска. Я отчасти разочарован, потому что я ожидал, что спецификации у меня будут лучше, чем у меня.
Просматривая эту страницу Benchmarking для SSD, она утверждает, что мой процессор способен делать:
Глядя на числа, которые я получаю, я думаю, что у меня, возможно, не включен 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, чтобы увидеть, есть ли какая-то разница? И, возможно, мне следует как-то включить его, но я не нашел никаких подсказок в своих поисках.
Спасибо,
В 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
.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, программное обеспечение не требуется.