Чи підтримує Ubuntu команду TRIM для використання з SSD?


34

SSD-накопичувачі потрібно "очистити / скинути" після заповнення накопичувача, щоб зберегти продуктивність. Це робиться за допомогою команди TRIM для нових накопичувачів SSD. Чи підтримує Ubuntu команду TRIM (через hdparm тощо) для очищення / скидання цих дисків?


Хороший запитання, хоч зауважте, що ступінь підвищення TRIM різняться між SSD, для деяких це не має такої різниці, як ви могли б подумати (хоча вони в основному здаються повільнішими).
Ніколас Лицар

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

Відповіді:


24

Схоже, є підтримка функціональності TRIM у версії 10.10 та новіших версіях:

Також речі TRIM відбуваються автоматично - порожні блоки автоматично вивільняються, коли вони більше не потрібні (наприклад, ви видаляєте файл), якщо диск повідомляє, що він підтримує TRIM. Вам не потрібно вручну видавати команду hdparm, щоб це працювало.


Я подумав, що вам все одно доведеться використовувати інструменти, які "відправляли" команду TRIM в SDD. Добре, якщо він працює, як ви вказали. :) У цій статті Anandtech -> ( anandtech.com/show/2738/10 ) зазначено, що для роботи TRIM потрібна підтримка TRIM як ОС, так і SSD. Я думаю, моє запитання стосується підтримки OS / Linux для TRIM при використанні SSD-накопичувачів, відомих TRIM.
ssanj

3
Команда TRIM повинна знати, які блоки (блоки) звільнити, тому було б небезпечно видавати це, не знаючи, які саме блоки на диску не використовуються. Так, і ОС, і диск повинні мати підтримку обрізки. У Linux це було додано у версії ядра 2.6.33, тому воно буде включено до Maverick. Для належної роботи обох дисків драйвер файлової системи, яку ви використовуєте, повинен підтримувати обробку. Якщо ви використовуєте ext4 як свою файлову систему в Maverick, вам слід добре.
Джеремі Керр

Тоді мені цікаво, чи вдасться існуючі SSD пройти «модернізований TRIM» для того, щоб очистити наявну крихту, накопичену до ОС, що підтримує TRIM. Або потрібна переустановка?
Кент Богаарт

20

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

Ось що (я думаю) я знаю:

  • Ядро має підтримку TRIM станом на 2.6.33 (Maverick - 2.6.35).

  • EXT4 має TRIM підтримку , але тільки тоді , коли ведення журналу вимкнено.

  • Те, як TRIM працює в ядрі, дуже простий і досить повільний. Диски, що слідують за специфікаціями, можуть приймати декілька діапазонів, але в даний час ядро ​​може робити лише один діапазон. Це походить із того, що я читав, можливо, місяць тому. Я б хотів, щоб у мене було джерело, оскільки це може бути неправдою або більше не застосовуватиметься.

Журналінг - це те, що вбиває це для мене. Корупція даних - це ПДФО.

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

Існує також інтерфейс графічного інтерфейсу під назвою DiskTRIM, який, схоже, не знаходиться в репостах. Менш досвідченим користувачам це може бути простішим у використанні, ніж налаштування завдань cron.

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


Чи можете ви зв’язатись, будь ласка, з цими договорами про договір?
Хорхе Кастро

Так чи дозволяє включити 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 аромати) були підтримані до 10,04 LTS і доступні від $ -оновлень-оновлень у сховищах Ubuntu, наприклад, linux-image-generic-lts-backport-maverickце підтримка Maverick до Lucid .


2

Я бігаю 11.04, і це не схоже на те, що TRIM працює відповідно до коробки.

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

Я намагався включити TRIM, використовуючи тут інструкції, але без кісток

Я запускаю wiper.sh, отримую

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

Ця операція мовчки може знищити ваші дані. Ви впевнені (у / н)? у
Створення тимчасового файлу (13647400 Кб) ..
Синхронізація дисків ..
Початок операцій TRIM ..
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
обробка 27294800 секторів з 462 діапазонів
вдалося
Видалення тимчасового файлу ..
Синхронізація дисків ..
Зроблено.

Однак якщо я запускаю його знову, він показує, що стільки ж секторів / діапазонів потрібно обрізати, і знову повідомляти про успіх. Я щоразу отримую абсолютно те саме. Схоже, сектори ніколи не видаляються / звільняються. Читання їх все ще показує ті самі дані.

Цікаво, якщо хтось змусив його працювати.


Якщо ви додали до параметра fstab параметр відкидання, він все ще не працює, ймовірно, помилка в альфа. Вам слід подати звіт про помилку.
Улі

Я щойно перевірив це в natty (слідуючи цій інструкції: askubuntu.com/questions/18903/how-to-enable-trim ), і його робота в natty працює ще краще, TRIM майже миттєвий.
Улі

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