• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Статья также доступна на украинском (перейти к просмотру).

Как настроить Periodic TRIM для SSD-дисков на серверах Linux

Оглавление

Довольно часто у начинающих Администраторов возникают вопросы относительно скорости работы SSD-накопителей, которые постоянно работают в напряженном режиме, то есть имеют значительную плотность операций записи / считывания. В этом случае скорость их работы заметно снижается из-за неудачно настроенного механизма упорядочения данных, что и является основной причиной неурядиц. Принудительное включение Periodic TRIM поможет устранить указанную проблему. Рассмотрим более подробно, как это можно сделать на примере SSD-хранилища, построенного на базе сервера под управлением Ubuntu 22.04.

Особенности записи/считывания информации в SSD-накопителях

SSD-накопители в контексте использования Linux-системами являются блочными устройствами, образующими некое блочное хранилище. Такая терминология связана с тем, что ядро ??Linux-системы взаимодействует с аппаратной частью устройства, ссылаясь на блоки фиксированного размера, образующие единицы хранения данных разного уровня. Самая маленькая единица – страница. Самая большая – блок, состоящий из нескольких страниц. Правильная настройка любого блочного устройства позволяет организовать эффективное хранилище данных, в котором фактически полностью исключается влияние нагрузки на реальную скорость работы устройства с данными. При этом методы настройки в определенной степени зависят от типа операционной системы, а не только типа устройства.

Рекомендуем ознакомиться со статьей “LINUX 24 рекомендации по безопасности php для системных администраторов”.

SD-накопители способны оперировать как блоками, так и страницами данных. То есть они могут совершать операции записи/считывания также и на уровне отдельных страниц, а не только блоков. Однако операции очистки использованных данных могут выполняться ими на уровне блоков. В результате SSD-накопители не могут самостоятельно осуществлять весь спектр необходимых операций по обслуживанию данных, а только посредством файловой системы, которая, в частности, предоставляет им информацию о блоках с устаревшими данными.

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

Проблемы упорядочения данных SSD-хранилища

Идеальное SSD-хранилище данных должно функционировать таким образом, чтобы, во-первых: фаза очистки выполнялась только в автоматическом режиме; во-вторых: фаза очистки должна приходиться на время малейшей нагрузки на носитель. Только при выполнении указанных условий можно говорить об эффективном использовании хранилища SSD.

В Linux-системах по умолчанию инициализация фазы очистки или появление соответствующей TRIM-команды файловой системы накопителя происходит после каждой операции удаления данных, что приводит к торможению работы устройства во время значительных нагрузок. Такая ситуация не может считаться адекватной, поскольку она противоречит указанным выше условиям существования идеального хранилища SSD. Для ее исправления необходимо изменить настройки таким образом, чтобы активация фазы очистки происходила хотя бы через равные промежутки времени, что будет являться компромиссом между крайними вариантами настроек.

Ниже будет показано, как можно это сделать в условиях сервера под управлением Ubuntu 22.04.

Настройка процесса периодического обновления хранилища SSD

Предварительные настройки

В Linux-системах при монтировании любой из доступных файловых систем сразу же указываются параметры с соответствующими значениями, которые определяют их характеристики. Одним из них является параметр discard, устанавливающий режим непрерывного запуска TRIM-команды файловой системы после выполнения каждой операции удаления данных. Проверить это можно, просмотрев конфигурации смонтированных в настоящее время файловых систем на нашем устройстве. Набираем в терминале:

$ findmnt -O discard

Параметр discard

В результате мы получили нужную информацию, которая дает полное представление о конфигурации хранилища:

TARGET 	  SOURCE         FSTYPE       OPTIONS
/               	   /dev/vda2     	ext4        	   rw,noatime,discard,commit=120

Таким образом, мы выяснили следующее:

  • Место монтирования: корневой каталог;
  • Устройство: vda2;
  • Тип файловой системы: ext4;
  • Установленные параметры: noatime, rw, discard, commit.

Итак, в настоящее время включен режим непрерывного запуска TRIM-команды, что, конечно, нас не устраивает. Для этого мы можем прямо сейчас перемонтировать нашу файловую систему с другими параметрами, которые изменяют значения предыдущих настроек. Для этого введем в терминале:

$ sudo mount -o remount,nodiscard /

Монтирование конфигурации хранилища

С помощью символа «/» мы указали место монтирования – корневой каталог.

Теперь попытаемся снова запустить команду просмотра текущей конфигурации хранилища, чтобы выяснить, произошли ли какие-либо изменения:

$ findmnt -O discard

Текущая конфигурация хранилища

Мы видим, что никакой дополнительной информации уже не выводится, что в частности означает, что параметр discard Однако этого будет недостаточно, поскольку в файле настроек /etc/fstab дополнительно определяются конфигурации монтирования файловых систем при каждой загрузке системы. Его тоже нужно отредактировать. Сделаем это с помощью редактора nano:

$ sudo nano /etc/fstab

Запуск редактирования файла fstab

Каждая строка параметров из файла определяет конфигурацию соответствующей файловой системы, которую необходимо смонтировать (подключить) при загрузке операционной системы. Наличие указанной записи гарантирует их автоматическую монтировку. Приводим строку, соответствующую нашей текущей файловой системе:

/dev/disk/by-uuid/3cd87dc4-371e-4264-9b09-0058cf3bbe6e / ext4 discard, noatime, commit=120, defaults 0 1

ожно убедиться, что здесь также есть параметр discard, который мы и удаляем. После его удаления, строчка настроек должна выглядеть следующим образом:

Удаление параметра discard

Сохраним внесенные в файл изменения и выйдем из редактора (ctrl+X).

Таким образом мы отключили режим непрерывного выполнения TRIM-команды для всех последующих загрузок операционной системы нашего сервера. После этого можно перейти к настройке режима периодического запуска команды TRIM.

Включение режима периодического запуска TRIM-команды

Как уже отмечалось, методы настройки указанного режима также зависят от типа операционной системы, даже используемой в рамках группы Linux-подобных систем. В частности, в конфигурации Ubuntu 22.04 уже присутствует скрипт, еженедельно запускаемый доменом cron. Указанный скрипт полностью определяет нужный нам режим для TRIM-команды, что нас вполне устраивает.

Просмотрите содержимое скрипта, чтобы убедиться в этом. Для этого наберем в терминале:

$ nano /etc/cron.weekly/fstrim

Просмотр сожержимого файла fstrim

Как видим, здесь установлен параметр --all для запуска плагина fstrim, что собственно и определяет режим периодического запуска команды. В более ранних версиях этой же операционной системы указанный параметр отсутствует.

Что же касается других ОС семейства Linux, таких как CentOS, Fedora чи Debian, то здесь указанный режим можно включить с помощью модуля timer, который еженедельно будет запускать TRIM-команду на всех доступных совместимых устройствах.

Ответная команда будет выглядеть следующим образом:

$ sudo systemctl enable fstrim.timer

Выводы

Представленный нами механизм оптимизации работы SSD-хранилища не решает всех проблем, возникающих при эксплуатации хранилищ с большими объемами данных, однако улучшает качество их работы и поэтому стоит того, чтобы добавить в арсенал неотложных мер при работе с SSD-хранилищами.

Дата-центр FREEhost.UA предлагает аренду серверов для решения разнообразных задач: удаленный рабочий стол, сервера баз данных, размещение сайтов, сохранение резервных копий. Серверы мы предоставляем клиенту уже настроенные, при необходимости специалисты FREEhost.UA предоставят услугу по дополнительному администрированию и контролю работы за сервером. Два дизель-генератора, 3 оптических ввода, резервирование другой необходимой инфраструктуры гарантируют постоянную доступность серверов.

Подписывайтесь на наш телеграм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.

Смотрите наш канал Youtube на https://www.youtube.com/freehostua.

Мы в чем-то ошиблись, или что-то пропустили?

Напишите об этом в комментариях на сайте и в телеграм-канале. Мы с удовольствием ответим и обсудим Ваши замечания и предложения.

 
Дата: 08.11.2023
Автор: Александр Ровник
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
navigate
go
exit
Спасибо, что выбираете FREEhost.UA