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

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

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

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

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

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

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

10
задан 16 January 2013 в 11:44

1 ответ

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

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

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

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

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

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

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

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

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

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

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

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