Проверка поддержки TRIM Включение TRIM с помощью флагов монтирования Применение TRIM по раписанию cron Включение TRIM с помощью tune2fs Настройка TRIM по расписанию с помощью таймера systemd
Когда в операционной системе происходит операция удаления данных с SSD-диска, то физически они не удаляются, а лишь помечаются как «неиспользуемые» в файловой системе. Операция записи новых данных на место «неиспользуемых» предварительно сопровождается уже реальной функцией стирания ранее «удаленных» данных, что приводит к снижению производительности диска.
Чтобы решить эту проблему используется TRIM — команда интерфейса ATA, которая сообщает твердотельному диску, какие «неиспользуемые» блоки данных можно физически удалить с твердотельного устройства (SSD).
Целью очистки памяти является периодическая оптимизация накопителя, чтобы он работал эффективно и сохранял производительность на протяжении всего срока службы. Часто эта операция может выполняться в фоновом режиме или в ручном.
На твердотельном накопителе с включенным TRIM, если вы удалите файл и впоследствии очистите корзину, восстановить удаленные данные уже будет невозможно. В отличие от механических жестких дисков, которые удерживают данные магнитным полем, все, что требуется NAND для полного удаления данных — это команда (trim).
Проверить поддержку TRIM можно двумя способами.
Способ №1 — с помощью команды lsblk:
lsblk -D
Если значения столбцов DISC-GRAN (отбросить гранулярность) и DISC-MAX (отбросить максимальное количество байтов) имеют ненулевые значения, это указывает на поддержку TRIM.
Способ №2 — с помощью команды hdparm:
hdparm -I /dev/sda | grep TRIM * Data Set Management TRIM supported (limit 1 block)
Если в выводе присутствует запись TRIM supported, значит диск поддерживает TRIM.
TRIM supported
В данном случае операция TRIM будет выполняться каждый раз при монтировании раздела диска. Параметр discard в /etc/fstab в строке монтирования раздела активирует TRIM:
discard
/dev/sda1 / ext4 defaults,noatime,discard 0 1 /dev/sda2 /home ext4 defaults,noatime,discard 0 2
не используйте флаг discard, если вы периодически выполняете команду fstrim;
если вы используете флаг discard для корневого раздела с файловой системой ext3, раздел будет смонтирован в режиме только-чтение (read_only).
Перед внесением изменений убедитесь, что ваш SSD поддерживает TRIM, иначе вы можете потерять данные!
Данный метод не работает для файловых систем VFAT.
Для использования fstrim раздел диска должен быть смонтирован и указан точкой монтирования. Для периодического выполнения команды можно задействовать планировщик заданий cron, в котором в качестве задания используется команда:
fstrim -v /
Данная команда будет применена к корневому разделу. Для указания, например, домашнего раздела используйте команду:
fstrim -v /home
Подробную информацию по работе с планировщиком cron см. в нашей статье «Crontab».
После настройки планировщика заданий уберите опцию discard из /etc/fstab, если ранее вы ее добавляли.
Приоритетным способом является использование discard. Если с ним возникли проблемы или он не подошел, используйте fstrim.
В файловой системе EXT4 флаг discard можно установить с помощью утилиты tune2fs. При данном способе флаг discard устанавливается в суперблоке ФС, как опция монтирования по умолчанию.
tune2fs -o discard /dev/sdXY
Если на диске используется LVM, то команда для корневого раздела может выглядеть примерно следующим образом:
tune2fs -o discard /dev/mapper/ro_redos-root
Чтобы определить, какой именно раздел применять в команде tune2fs, воспользуйтесь командами «lsblk», «df» или blkid, которые выведут на экран имена разделов диска.
Убедится в активации trim можно также с помощью tune2fs, при этом команде передается ключ -l:
tune2fs -l /dev/mapper/vg1-lvroot | grep options Default mount options: user_xattr acl discard
Использование параметров монтирования по умолчанию вместо редактирования в /etc/fstab актуально для внешних дисков, поскольку для разделов диска признак применения TRIM будет установлен по умолчанию и не придется на каждом компьютере редактировать /etc/fstab для добавления опции discard.
При использовании данного способа опция discard НЕ будет показана командой mount.
В РЕД ОС присутствует systemd-таймер, который предназначен для использования TRIM по расписанию. Активировать таймер можно командой:
systemctl enable --now fstrim.timer
По умолчанию задание fstrim будет выполняться еженедельно, это задание запускает связанную службу fstrim по расписанию. Время выполнения fstrim по умолчанию настроено на каждый понедельник с точностью запуска в 1 час, т.е. с 00:00 по 01:00.
Для установки собственного времени выполнения задания измените время в таймере /usr/lib/systemd/system/fstrim.timer, за это отвечает опция OnCalendar.
Пример изменения таймера на каждый понедельник в 12:00.
nano /usr/lib/systemd/system/fstrim.timer
[Unit] Description=Discard unused blocks once a week Documentation=man:fstrim ConditionVirtualization=!container ConditionPathExists=!/etc/initrd-release [Timer] OnCalendar=Mon *-*-* 12:00:00 Persistent=true [Install] WantedBy=timers.target
Перезапустите таймер для применения внесенных изменений:
systemctl daemon-reload systemctl restart fstrim.timer
В статусе таймера в поле Trigger будет указано запланированное время выполнения задания:
systemctl status fstrim.timer
Дата последнего изменения: 11.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.