Crossroads » Linux » TRIM в Ubuntu

TRIM в Ubuntu

  • Dislike
  • +1
  • Like
TRIM - команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных уже не содержатся в файловой системе и могут быть использованы накопителем для физического удаления.

Команда TRIM была введена вскоре после появления твердотельных накопителей (SSD), чтобы сделать их конкурентоспособной альтернативой традиционным HDD в персональных компьютерах. Из-за того, что на внутреннем уровне реализация операций в SSD существенно отличается от реализации тех же операций в традиционных механических жёстких дисках, обычные методы ОС для таких операций, как удаление файлов и форматирование диска (не обращаясь непосредственно к затрагиваемым секторам и страницам на накопителе), приводит к прогрессирующему ухудшению производительности операций записи на SSD. Применение TRIM позволяет устройству SSD уменьшить влияние сборки мусора, которая в противном случае в дальнейшем выразится падением производительности операций записи в затронутые секторы.

Для старых накопителей (SSD), произведённых до добавления команды TRIM в стандарт ATA, необходимо обновление прошивки. Так же команда TRIM не поддерживается в старых операционных системах и ряде современных Linux-сборок. В Windows TRIM поддерживается по умолчанию начиная с финального релиза Windows 7 и Windows Server 2008 R2. В OpenSolaris TRIM поддерживается с июля 2010-го года. В Mac OS X с версии 10.10.4 для любых SSD, до этого только для SSD поставляемых Apple. Во FreeBSD версий 8.3, 9.2, 10.0 и новее TRIM поддерживается в файловых системах UFS и ZFS. В Android начиная с версии 4.3 в систему была добавлена поддержка функции fstrim, которая является аналогом TRIM.

В Linux TRIM поддерживается начиная с версии ядра 2.6.33 в файловых системах EXT4 и BTRFS. Однако не во всех дистрибутивах команда добавлена по умолчанию. Например в Ubuntu (о ней и пойдёт речь) "из коробки" она работает только с версии 14.10. Последний, на сегодня, долгосрочный релиз - версия 14.04.

И так, для того чтобы TRIM работала в Linux необходимо чтоб ядро было как минимум версии 2.6.33 и новее. SSD должен поддерживать команду TRIM. Файловая система должна быть EXT4 или BTRFS. Поскольку подавляющее большинство пользователей используют файловую систему EXT4, то речь пойдёт о ней.

Если вы не уверены, что ваш SSD поддерживает TRIM, введите следующую команду:

sudo hdparm -I /dev/sda | grep "TRIM supported"


Где /dev/sda - ваш SSD. Если вы не уверены какое именно устройство - SDD, то введите команду

sudo fdisk -l


Если TRIM поддерживается, то вывод первой команды будет примерно таким:

Data Set Management TRIM supported (limit 1 block)


В версиях Ubuntu, начиная с 14.10 и производных TRIM запускается раз в неделю по умолчанию (как и в Android через fstrim). Для предыдущих версий (или если раз в неделю вас не устраивает) прописываем в Cron ежедневную задачу:

gksu nano /etc/cron.daily/trim 


Или

gksu gedit /etc/cron.daily/trim 


И в файл вставляем следующее:

#!/bin/sh  
LOG=/var/log/trim.log  
echo "*** $(date -R) ***" >> $LOG  
/sbin/fstrim -v / >> $LOG  
/sbin/fstrim -v /home >> $LOG 


Последние две команды указывают на точки монтирования файловых систем. Имеется ввиду, что ОС (/) и домашний раздел (/home) у вас на SSD. Если домашний раздел не на SSD, то последняя строка не нужна.

Можно всё это упростить и прописаться следующее:

#!/bin/sh 
/sbin/fstrim --all || true


В этом случае логи вестись не будут и TRIM будет выполняться на всех поддерживаемых дисках.

Сохраняем файл и прописываем права.

sudo chmod +x /etc/cron.daily/trim 


Чтобы проверить работает ли команда TRIM введите следующее:

sudo fstrim -v / 


Выдача будет примерно такая:

/: 12.3 GiB (13154824192 bytes) trimmed
Like Dislike

___
Tatyana K. По материалам Web UPD8 и Wikipedia



Tags: Ubuntu, Linux


 
  • Creative Commons Licence
  • Norton Safeweb
  • Website Uptime Monitoring By ServiceUptime.com