Есть ли в Ubuntu поддержка команды TRIM для использования с SSD?


34

Диски SSD должны быть «очищены / сброшены» после того, как накопитель заполнен, чтобы поддерживать производительность. Это делается с помощью команды TRIM для новых накопителей SSD. Поддерживает ли Ubuntu команду TRIM (через hdparm и т. Д.) Для очистки / сброса этих дисков?


Хороший вопрос, хотя обратите внимание, что степень, в которой TRIM улучшает производительность, зависит от твердотельных накопителей, для некоторых это не имеет такого большого значения, как вы думаете (хотя в большинстве случаев они кажутся медленнее).
— Николас Найт

1
Я думаю, что производительность будет восстановлена ​​до тех же (если не близко) заводских значений по умолчанию. Посмотрите здесь для объяснения -> anandtech.com/show/2738/10
— ssanj

Ответы:


24

Похоже, что есть поддержка TRIM в 10.10 и более новых версиях:

Кроме того, работа с TRIM происходит автоматически - пустые блоки автоматически освобождаются, когда они больше не нужны (например, вы удаляете файл), если диск сообщает, что он поддерживает TRIM. Вам не нужно вручную вводить команду hdparm, чтобы это работало.


Я думал, что вы все еще должны использовать инструменты, которые «отправляют» команду TRIM на SDD. Хорошо, если это работает так, как вы укажете. :) В этой статье Anandtech -> ( anandtech.com/show/2738/10 ) указано, что для работы TRIM и ОС, и SSD требуется поддержка TRIM. Я предполагаю, что мой вопрос касается поддержки OS / Linux для TRIM при использовании SSD-дисков с поддержкой TRIM.
— ssanj

3
Команде TRIM необходимо знать, какие блоки необходимо освободить, поэтому было бы опасно выдавать это, не зная точно, какие блоки на диске не используются. Да, и ОС, и диск должны иметь поддержку обрезки. В Linux это было добавлено в версии ядра 2.6.33, поэтому будет включено в Maverick. Оба драйвера диска и файловая система, которую вы используете, должны поддерживать триммер для правильной работы. Если вы используете ext4 в качестве файловой системы на Maverick, все будет в порядке.
— Джереми Керр

Интересно, будет ли возможность для существующих твердотельных накопителей пройти «модифицированную TRIM», чтобы очистить существующую крошку, накопленную до ОС, поддерживающей TRIM. Или потребуется переустановка?
— Кент Бугаарт

20

Ответ Джереми не совсем точный AFAIK. В течение некоторого времени я работал с последними стабильными ядрами на Lucid и довольно остро следил за состоянием TRIM, поскольку в качестве основного диска у меня установлена ​​OCZ Agility.

Вот что (я думаю) я знаю:

  • Ядро имеет поддержку TRIM с 2.6.33 (Maverick - 2.6.35).

  • EXT4 имеет поддержку TRIM, но только когда журналирование отключено.

  • Принцип работы TRIM в ядре очень простой и довольно медленный. Диски, соответствующие спецификациям, могут принимать несколько диапазонов, но ядро ​​в настоящее время может использовать только один диапазон за раз. Это происходит от того, что я прочитал, возможно, месяц назад. Хотелось бы, чтобы у меня был источник, поскольку это может быть неверно или больше не может применяться.

Журналирование это то, что убивает это для меня. Повреждение данных - это PITA.

Однако более новые версии hdparm (v9.25 - Maverick - v9.27) поставляются со скриптом, wiper.shкоторый вызывает быстрый анализ диска и затем обрезает все пустое пространство. Вместо того, чтобы терять функции, мне намного проще wiper.shзапускать cron раз в неделю (или раз в день / месяц / что угодно). Ухудшение SSD для диска ОС не происходит так быстро, если вы постоянно не разрываете вещи. Вам не нужно в режиме реального времени TRIMming.

Существует также интерфейс GUI под названием DiskTRIM, которого нет в репозиториях. Менее опытным пользователям может показаться, что это проще в использовании, чем настройка заданий cron.

Есть PPA для hdparm и disktrim, и все они могут быть запущены на Lucid (и обратно) без необходимости в ядрах 2.6.33+.


Можете ли вы дать ссылку на эти PPA, пожалуйста?
— Хорхе Кастро

Так discardотключает ли журналирование включение опции монтирования для ext4? Я только что искал ссылки, но не могу найти ни одного, кроме этого ответа - можете ли вы предоставить источник?
— Хэмиш Даунер

2
в Ubuntu 12.04 wiper.sh был заменен на fstrim
— tomodachi

1
@Oli: Я немного больше читал и теперь уверен, что опция сброса не отключает журнал. Первоначально Afaict опция сброса работала только с журналом (я нашел этот патч, который позволяет отбрасывать без журнала). Страница ядра ext4 описывает вариант сброса, но не упоминает, что журнал несовместим.
— Хэмиш Даунер

8

Linux поддерживает автоматический TRIM с файловой системой ETX4 начиная с ядра 2.6.33.

Первый выпуск Ubuntu с автоматической поддержкой TRIM - 10.10 (Maveric), но его нужно активировать в fstab (как описано здесь ).


4

В общем, да, потому что есть множество способов получить более новые ядра. Если мы уточним ваш вопрос следующим образом: «Имеет ли 10.04 LTS встроенную поддержку для команды?» тогда ответ - нет. Однако ядра Maverick и Natty (-generic, -generic-pae, -server и -virtual flavors) были перенесены в 10.04 LTS и доступны из $ release-updates в репозиториях Ubuntu, например, linux-image-generic-lts-backport-maverickэто обратный порт Maverick для Lucid. ,


2

У меня работает 11.04, и не похоже, что TRIM работает по умолчанию.

Я протестировал, используя приведенные здесь инструкции, чтобы создать файл, удалить его и посмотреть, обнуляются ли / удаляются ли сектора .

Я попытался включить TRIM, используя инструкции здесь, но не игра в кости

Я запускаю wiper.sh, я получаю

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: утилита Linux SATA SSD TRIM, версия 3.3, автор Mark Lord.
rootdev = / DEV / sda1
fsmode2: fsmode = чтение-запись
/: fstype = ext4
свободный размер = 13785252 КБ, зарезервировано = 137852 КБ
Подготовка к онлайн-TRIM свободного места в / dev / sda1 (ext4 смонтирована для чтения-записи в /).

Эта операция может молча уничтожить ваши данные. Вы уверены (да / нет)? Y
Создание временного файла (13647400 КБ).
Синхронизация дисков ..
Начало операций TRIM.
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ DEV / SDA:
обрезка 27294800 секторов из 462 диапазонов
удалось
Удаление временного файла ..
Синхронизация дисков ..
Выполнено.

Однако, если я запустлю его снова, он покажет то же количество секторов / диапазонов, которые необходимо обрезать, и снова сообщит об успехе. Я получаю одно и то же каждый раз. Не похоже, что сектора когда-либо удаляются / освобождаются. Чтение их по-прежнему показывает те же данные.

Любопытно, если кто-то еще получил его на работу.


Если вы добавили опцию сброса в fstab, и она все еще не работает, возможно, это ошибка в альфа-версии. Вы должны подать отчет об ошибке.
— Uli

Я только что проверил это в natty (следуя этим инструкциям: askubuntu.com/questions/18903/how-to-enable-trim ) и его работа еще лучше в natty, TRIM почти мгновенный.
— Uli

Возможно, у вас есть твердотельный накопитель, который не поддерживает TRIM - некоторые из более ранних твердотельных накопителей не поддерживали TRIM.
— Хэмиш Даунер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.