В этой статье полное описание функционала TRIM SSD. Она дает ответы на вопросы - Как это работает. Как выполнить TRIM на разделе NTFS. Включение TRIM на Windows и Linux. TRIM на Windows XP и Vista.
Оглавление
- Что такое TRIM (сбор мусора)
- Как работает TRIM
- Поддерживает ли ваш диск функцию TRIM?
- Когда TRIM должен работать
- Когда TRIM не работает!
- Включение TRIM в Linux
- Включение TRIM на Windows
- Как выполнить TRIM на разделе NTFS
- TRIM на Windows XP и Vista
- Восстановление удаленных данных
- Влияние TRIM на скорость записи.
Что такое TRIM
У электронных (SSD) дисков есть отличие от магнитно-механических (HDD) которое влияет на скорость записи. В HDD дисках запись выполняется "поверх" старых данных. Блоки диска, которые ранее содержали данные, а затем эти данные были удалены, просто помечаются как свободные. И когда нужно выполнять запись, контроллер HDD сразу записывает новые данные в эти свободные блоки.
Но при использовании флэш-памяти, блоки которые ранее содержали какую-то информацию, перед записью должны быть очищены. Это приводит к тому, что при записи в ранее использованные блоки скорость записи сильно падает, ведь контроллеру нужно их подготовить для записи (очистить).
Проблема в том, что операционные системы традиционно не работают с файловой системой таким образом, что при удалении файлов очищается содержание блоков на диске. Ведь на дисках HDD в этом не было необходимости.
Поэтому при использовании SSD дисков возникает эффект "деградации производительности". Когда диск новый и все блоки флэш-памяти чистые тогда скорость записи очень высокая, паспортная. Но после того как диск будет полностью заполнен и после этого часть файлов будет удалена, повторная запись будет происходить на более низкой скорости. Из-за того, что контроллеру диска придется очищать ранее использованные блоки флэш-памяти, перед записью туда новых данных.
Падение скорости записи в повторно используемые блоки флэш-памяти может быть очень высоким. До значений близких к скорости записи HDD дисков. При тестировании SSD дисков часто даже проводят отдельную проверку на снижение скорости записи в повторно используемые блоки.
Для борьбы с этим явлением, в новые ОС добавлена дисковая команда ATA TRIM. Драйвер файловой системы при удалении файла отправляет контроллеру SSD диска команду TRIM. По этой команде контроллер SSD диска очищает освобожденные блоки флэш-памяти, но делает это в фоновом режиме, в перерывах между операциями чтения и записи.
Использование этой команды позволяет вернуть полную скорость записи для повторно используемых блоков флэш-памяти. Однако не все ОС поддерживают эту команду. А только относительно свежие версии:
- Ядро Linux начиная с версии 2.6.33.
- Windows 7, 8 и 10
- Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).
До сих пор популярная WIndows XP (как и Vista) не поддерживают эту команду.
Обходной вариант для старых ОС, заключается в использовании, сторонних программ. Например это может быть программа hdparm (версии 9.17 и выше) или фирменные программы производителя SSD диска, например Intel SSD Toolbox.
Есть две модели SSD дисков у которых деградация скорости повторно используемых блоков выражена слабее чем у других:
- Plextor M5 pro.
- Plextor M5S.
Прошивки этих дисков умеют частично очищать неиспользуемые блоки без команды TRIM. Восстанавливая скорость записи до более высоких значений, но не до полной паспортной скорости записи.
Есть модели дисков, которые даже после выполнения команды TRIM не возвращаются к полной паспортной скорости записи.
Команда TRIM может не работать если SATA контроллер материнской платы был установлен в режим IDE (для совместимости со старой ОС или программой).
Команда TRIM чаще всего отключается при использовании RAID массива.
Как работает TRIM
Одна из основных функций любой файловой системы это хранение списка секторов диска, в которых записан тот или иной файл. То есть, с каждым файлом связан список дисковых секторов.
Когда вы удаляете файл на SSD диске, операционная система отправляет контроллеру SSD диска команду TRIM и вместе с ней список секторов которые можно очистить. Контроллер записывает эти сектора в очередь своей подпрограммы, "сборщика мусора". А эта подпрограмма обрабатывает все сектора из списка.
Сборщик мусора работает в те моменты, когда диск простаивает. То есть, когда операционная система не присылает запросы на чтение или запись данных. Поэтому с момента получения команды TRIM, до фактического удаления этих секторов проходит некоторое время.
Если в очереди на тримеризацию много секторов, их очистка может занять продолжительное время. Например, если выполнить быстрое форматирование целого раздела, то TRIM такого объема может быть длительным.
Однако нет необходимости сидеть и ждать когда процесс закончится. Даже если диск будет выключен, то обработка очереди возобновится после его включения.
Как проверить ваш SSD диск на поддержку команды TRIM
Использование ATA команды TRIM, не во всех случаях происходит автоматически, в некоторых ситуациях выполнение этой команды со стороны ОС необходимо включать явным образом.
Для начала нужно убедиться в том, что ваш SSD диск поддерживает эту команду. Впрочем, все новые диски ее поддерживают. Сделать такую проверку можно любой современной программой по работе с дисками. Например в Linux это можно сделать при помощи консольной команды:
hdparm -I /dev/sda | grep -i trim
Где sda ваш SSD диск. Вывод команды должен содержать строку "TRIM supported".
В Windows это можно сделать при помощи программы производителя вашего SSD диска, обычно такие служебные программы есть у всех производителей. Или через тестовую программу для дисков, например HD Tune или SSD Life.
Когда TRIM не работает!
- Функция TRIM не работает если SSD диск подключен через USB.
- Функция TRIM не работает для разделов c файловой системой FAT32.
- Функция TRIM не работает еще для большого количества файловых систем (например Ext2).
Когда TRIM должен работать
- Linux с ядром начиная от 2.6.33 и файловая система Ext4.
- Windows 7, 8 и 10 и файловая система NTFS.
- Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).
- FreeBSD начиная с версии 8.3 - для файловых систем UFS и ZFS.
Важно понимать, что функционал TRIM связан не только с версией ОС, но и с файловой системой. Например Windows 7, 8 и 10 поддерживают TRIM, но только для файловой системы NTFS, а на разделах FAT32 эта функция недоступна.
Включение TRIM в Linux
Примечание. В Ubuntu, начиная с версии 14.04, TRIM включать вручную уже не нужно!
Во-первых для использования TRIM, необходимо, чтобы файловая система была ext4.
Во-вторых включение команды TRIM указывается в опции монтирования для раздела ext4 в файле fstab. Конкретно это опция discard.
Кроме этого, для раздела на SSD диске можно добавить опции noatime (или realtime) и nodiratime - это снижение нагрузки по записи, не будут обновляться даты доступа к файлам и папкам.
Также можно добавить опцию commit и указать значение допустим 60 секунд - отложенные операции записи будут выполняться на раздел раз в 60 секунд. Но эту опцию можно добавлять только в том случае если у вас есть UPS (ИБП), или на ноутбуке!
Таким образом примерная строка fstab может выглядеть таким образом:
UUID=aeade6fd-2b24-4e59-bc8c / ext4 noatime,discard,errors=remount-ro,commit=60 0 1
В Linux можно выполнить команду TRIM и вручную:
sudo fstrim / -v
В этом примере команда применяется к корневой файловой системе.
Проверка и включение TRIM на Windows 7, 8 или 10
Сначала нужно открыть консоль ("Командная строка") с правами администратора. Меню Пуск - Программы - Стандартные - Командная строка. Правая кнопка мыши - Запустить от имени Администратора.
Далее в консоли выполнить команду:
fsutil behavior query disabledeletenotify
Если вывод команды будет - disabledeletenotify=1, значит команда TRIM отключена. Включить ее можно командой:
fsutil behavior set disabledeletenotify 0
Не перепутайте! Ноль - команда включена, единица - команда выключена.
Как выполнить TRIM на разделе NTFS
Если у вас операционная система Windows 7, 8 или 10, тогда можно ничего не делать. Достаточно проверить включена для функция TRIM. Далее Windows будет автоматически отправлять команду TRIM при следующих операциях с диском:
- Удаление файла(ов).
- Быстрое форматирование раздела (диска) NTFS.
- Удаление раздела NTFS.
В Windows 8 и 10 можно вручную дать команду TRIM для целого раздела (диска) NTFS. В свойствах диска, на вкладке "Сервис" нужно открыть Оптимизатор дисков. Это новое название дефрагментатора Windows.
В Оптимизаторе дисков для разделов NTFS на SSD диске будет доступна команда "Оптимизировать диск". Выполнение этой команды приводит к тому, что Windows отправляет SSD диску команду TRIM для всех свободных блоков на этом диске. То есть выполняется "тримизация" всего свободного пространства на разделе (диске) NTFS.
В Windows 7, 8 и 10 можно сделать "тримизацию" всего раздела (диска) NTFS. Для этого нужно выполнить быстрое форматирование этого раздела (диска). Однако важно понимать, что это уничтожит все данные на разделе.
В последних (2015, 2016 годы) версиях драйвера ntfs-3g (драйвер ntfs для линукс) добавлена функция TRIM. Теперь можно "тримизировать" раздел NTFS из Linux. Команда в терминале:
fstrim -v /media/ntfs/
где /media/ntfs/ примонтированный раздел NTFS.
Как выполнить TRIM на Windows XP и Vista
Ни Windows XP, ни Vista не поддерживают функцию TRIM. Если нужно "тримизировать" SSD диск, который используется в этих ОС, тогда есть следующие варианты:
- Программа производителя SSD диска. Если такая есть.
- Подключить этот диск на другой компьютер, где установлена Windows 8 или 10. И через Оптимизатор дисков выполнить оптимизацию NTFS разделов на этом диске. Важно! Диск нужно подключать через SATA, а не через USB. Подробно об этом в разделе "TRIM на NTFS".
- Загрузить компьютер с флешки со свежим дистрибутивом Linux (2015 или 2016 года). Примонтировать разделы NTFS и выполнить команду fstrim. Подробно об этом в разделе "TRIM на NTFS".
Но можно и вообще не "заморачиваться" по поводу TRIM на этих ОС. Можно оставить неразмеченой 20-30% от емкости диска и этого будет достаточно для поддержания нормальной скорости записи. Неразмеченой это значит не присвоенной ни одному разделу.
Восстановление удаленных данных
Если вы используете TRIM, о восстановлении удаленных файлов можно забыть. Если вы удалите файл, то его данные на SSD диске будут уничтожены.
Влияние TRIM на скорость записи
Важно понимать, что использование или не использование функции TRIM прямо не влияет на скорость записи SSD диска. Влияет на эту скорость только один фактор - наличие достаточного количества свободных блоков флеш-памяти. То есть таких блоков, которые очищены контроллером диска и готовы к записи в них новых данных.
Иначе говоря, скорость записи зависит от количества свободного места на диске. Если у вас диск почти полностью заполнен, то скорость записи упадет даже если вы используете TRIM. И наоборот, если у вас 20-30% емкости диска оставлены без разметки (unallocated disk space), тогда можно обойтись и без использования TRIM. Контроллер диска будет использовать неиспользуемую под разделы емкость для выравнивания скорости записи.
Функция TRIM действительно даст возможность поддерживать высокую скорость записи только при двух условиях:
- Под разделы выделена вся емкость SSD диска.
- Радел(ы) с файловой системой не заполнены более чем на 70-80% от своего размера.
Помощник.ru, 2016