TRIM на зашифрованном SSD

TRIM на зашифрованном SSD

wiki.ubuntuusers.deговорит, что если я хочу использовать TRIM на зашифрованном SSD, мне нужны как минимум cryptsetup 1.4 и ядро ​​3.1. Нужно ли мне это при создании разделов и настройке шифрования или достаточно обновления после этого?

решение1

Ubuntu 11.10 Oneiric не поставляется с cryptsetup 1.4, хотя Precise поставляется. Я не знаю, можно ли обновить cryptsetup на Oneiric или нет. Поскольку Precise выйдет через месяц, вы также можете подождать этого релиза, прежде чем рассматривать TRIM с зашифрованными разделами. Ядро всегда можно обновить впоследствии.

Отhttp://code.google.com/p/cryptsetup/wiki/Cryptsetup140:

Поддержка параметра --allow-discards для разрешения запросов discards/TRIM.

Начиная с ядра 3.1, устройства dm-crypt опционально (не по умолчанию) поддерживают команды отбрасывания блоков (TRIM).

Если вы хотите включить эту операцию, вам придется включать ее вручную при каждой активации с помощью --allow-discards.

cryptsetup luksOpen --allow-discards /dev/sdb test_disk

ВНИМАНИЕ: существует несколько последствий для безопасности, пожалуйста, прочтите как минимум http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html прежде чем включить его.

Как вы видите, эта функция не включена по умолчанию из-за ухудшения безопасности, как упоминалось в связанном блоге. Таким образом, если вы используете cryptsetup на ядре 3.0 (которое поставляется с Precise), у вас не будет поддержки TRIM на ваших зашифрованных разделах. После обновления до 3.1+ у вас ее все еще не будет, если вы не включите ее.

Для этого вам придется редактировать /etc/crypttabпосле установки (не уверен, что это возможно во время установки) и добавить опцию discard. Смотрите такжекрипттаб(5).

решение2

Я опубликовал пошаговое руководство по включению TRIM с зашифрованными разделами LUKS в Ubuntu 12.04 или любом Debian с cryptsetup 1.4+ и ядром 3.1+. (Не стесняйтесь копировать его сюда, если какие-либо руководства askubuntu сочтут это необходимым.)

Пример настройки

источник

Ноутбук с SSD в качестве единственного диска, Linux установлен в одном корневом разделе LVM ext4 с разделом подкачки LVM, оба поверх зашифрованного LUKS логического раздела.

SSD-накопитель:/dev/sda

$ sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

$ ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # root partition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

Как

  1. Сделайте резервную копию всех ваших данных. Вы портите свою файловую систему, поэтому резервная копия — это просто хорошая идея.

  2. Убедитесь, что у вас установлены требуемые версии ядра и cryptsetup (3.1 и 1.4, например, в Ubuntu 12.04; однако будьте осторожны, на момент написания статьи версия 12.04 все еще находилась в стадии бета-тестирования).

  3. Добавьте параметр discard к параметрам файловой системы зашифрованного тома LVM в файле /etc/fstab. Это даст файловой системе раздела LVM знать, что вы хотите использовать TRIM.

    /dev/mapper/volumegroup-root    /    ext4    discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Однако последнего шага недостаточно. Пока LUKS не знает, что вы хотите использовать TRIM, он будет эффективно блокировать все операции TRIM, поступающие из файловой системы раздела LVM, из соображений безопасности. Добавьте параметр discard к опциям cryptdevice в /etc/crypttab, чтобы LUKS принял поведение discard раздела LVM.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Пересоберите свой initramfs. Параметры crypttab хранятся там и используются при загрузке.

    sudo update-initramfs -c -k all
    
  6. Перезагрузить.

  7. Проверьте, активен ли теперь TRIM.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Если последняя команда показывает такой результат ( 1 allow_discards atконец), то все готово.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

Связанный контент