Что именно делают параметры «allow-discards» и «root_trim» Linux?

10

В настоящее время многие инструкции, связанные с SSD, говорят, что вы должны добавить allow-discards и root_trim = yes в свой GRUB_CMDLINE_LINUX. Мне еще нужно найти тот, который говорит , почему вы должны это сделать, то есть что именно (если что!) Делают эти параметры. Где находится документация по этому вопросу и что он говорит о цели этих двух параметров?

Согласно Замечания по выпуску Cryptsetup 1.4.0 ,

  

Так как ядро ​​3.1, устройства dm-crypt необязательно (не по умолчанию) поддерживают   блокировки (TRIM). Если вы хотите включить эту операцию,   вы должны включить его вручную при каждой активации, используя   --allow-отбрасывает

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

, но это то же самое, когда передано ядру (через GRUB_CMDLINE_LINUX)?

Изменить: список параметров ядра Kernel.org . 't (в настоящее время, по крайней мере, в январе 2013 года) имеют один из этих вариантов.

    
задан Jani Uusitalo 15.01.2013 в 17:24
источник

1 ответ

6

Насколько я понимаю, параметр загрузки root_trim=yes специфичен для Gentoo. Внутри genkernel есть скрипт, который ищет параметр и устанавливает параметр --allow-discards с помощью cryptsetup (см. Их репозиторий git ). Кроме того, я нашел много сообщений о пользователях Ubuntu или Debian, которые заявили, что они работают без параметра root_trim . Я также не нашел строк в скрипте Ubuntus update-initramfs .

Таким образом, все это параметр загрузки no , но больше параметр cryptsetup . Документацию --allow-discards можно найти в man-странице cryptsetup (8) :

  

- Allow-отбрасывает
   Разрешить использование запросов сброса (TRIM) для устройства. Этот параметр применим только для create , luksOpen или loopaesOpen .

     

ПРЕДУПРЕЖДЕНИЕ : тщательно оцените конкретные риски безопасности перед                 включив эту опцию. Например, разрешая                 зашифрованные устройства могут привести к утечке информации о                 зашифрованное текстовое устройство (тип файловой системы, используемое пространство и т. д.), если                 отброшенные блоки могут быть легко размещены на устройстве позже.

     

Требуется версия ядра версии 3.1 или более поздняя. Для более старых                 версии игнорируются.

Основываясь на этом блоге на TRIM & amp; dm-crypt , TRIM - это операция, когда верхний уровень (например, файловая система) сообщает устройству, какие сектора больше не используются (больше не содержат действительных данных) и что устройству не нужно сохранять это содержимое.

В терминологии Linux эта операция называется сбросом. В мире SCSI это называется командой UNMAP.

Операция сброса может использоваться для двух целей: тонкое Provisioning (информирует о том, что область данных может быть возвращена в пул распределения) и для оптимизации работы SSD.

Отбросы наиболее полезны для оптимизации SSD, поскольку внутренняя архитектура использует более крупные блоки, чем сектора, и что блоки должны быть удалены до того, как будет выполнена операция записи. Информация о секторах, которые не требуют хранения данных, очень полезна, поскольку файловая система сможет более эффективно организовывать блоки таким образом, чтобы фрагментация данных была минимизирована, а также увеличилось время жизни диска.

    
ответ дан qbi 15.01.2013 в 17:50