Оглавление

  1. SMART
    1. Установка
    2. Просмотр результатов тестирования
  2. Trim
    1. Базовая информация.
    2. Проверька, поддержки TRIM у вашего накопителя
    3. Включение TRIM с помощью флагов монтирования
  3. Разделы подкачки на SSD
  4. Опция монтирования noatime
  5. Компиляция в tmpfs

Не для кого не секрет, что у SSD накопителей есть такое понятие как время жизни. Да, конечно современные твердотельные накопители стали достаточно надежными и долговечными. Но, ведь если мы забыли, то сам SSD не забудет и рано или поздно всё равно может прийти в негодность, а нам об этом даже ничего не будет известно.

Давайте позаботимся обо этом заранее. И в случае необходимости вы вовремя успеете начать резервное копирование данных.

Все команды выполняются от пользователя root.

Предупреждён - значит вооружен!

SMART.

Установка.

SMART — это система, которая контролирует внутреннюю информацию вашего диска. Она существует не только у SSD, но и у обычных жестких дисков и также поможет узнать о повреждении вашего диска. Для работы с данной системой, установите утилиту smartmontools:

Archlinux: $ pacman -S smartmontools
Debian: $ apt install smartmontools
RedHat: $ yum install smartmontools

Для отображения информации о конкретном жестком диске запустите smartctl с опцией info и именем жесткого диска. Например:

$ smartctl --info /dev/sdX

Если SMART доступен, но не включен, вы можете включить его:

$ smartctl --smart=on /dev/sdX

Существует три типа самотестирования, которые может выполнить устройство:

Флаг-c/--capabilities выводит, какие тесты поддерживает устройство, и примерное время выполнения каждого теста.

$ smartctl -c /dev/sdX

$ smartctl -t short /dev/sdX
$ smartctl -t long /dev/sdX
$ smartctl -t conveyance /dev/sdX

Перейти к оглавлению.


Просмотр результатов тестирования

Краткая информация:

$ smartctl -H /dev/sdX

Список последних результатов тестирования и подробную информацию об устройстве:

$ smartctl -l selftest /dev/sdX
$ smartctl -a /dev/sdX
$ smartctl -i -a /dev/sda
$ smartctl -s on -a /dev/sda

Самое главное, что вы должны увидеть - строчку об успешно пройденом результате тестирования:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
...

Этот тест может быть пройден (PASSED) или (FAILED). В последнем случае необходимо срочно начинать резервное копирование данных.

Следующая интересующая нас запись, которую можно посмотреть, когда выполняется диагностика HDD в Linux, это таблица SMART атрибутов.

В SMART таблице записаны параметры, определенные для конкретного диска разработчиком, а также порог отказа для этих параметров. Таблица заполняется автоматически и обновляется на основе прошивки диска.

Сейчас вы думаете, да smartctl хороший инструмент, но у меня нет возможности запускать его каждый раз вручную, было бы неплохо автоматизировать все это дело чтобы программа запускалась периодически и сообщала мне о результатах проверки. Это можно сделать с помощью smartd.

Автоматическая диагностика HDD в Linux настраивается очень просто. Сначала отредактируйте файл конфигурации smartd - /etc/smartd.conf. Добавьте следующую строку:

$ nano /etc/smartd.conf
/dev/sda -m myemail@mydomain.com -M test

Где:

Сохраните изменения и перезапустите smartd:

$ systemctl restart smartd

Вы должны получить на электронную почту письмо о том, что программа была запущена успешно. Это будет работать только если на компьютере настроен почтовый сервер.

Также можно запланировать тесты по своему графику, для этого используйте опцию -s и регулярное выражение типа T/MM/ДД/ДН/ЧЧ, где:

Остальные символы определяют дату и время теста:

Точка означает все возможные значения, выражение в скобках (A|B|C) - означает один из трех вариантов, выражение в квадратных скобках [1-5] означает диапазон (от 1 до 5).

Например, чтобы выполнять полную проверку жесткого диска Linux каждый рабочий день в час дня добавьте опцию -s в строчку конфигурации вашего устройства:

$ /dev/sda -m myemail@mydomain.com -M once -s (L /../../[1-5]/13)

Если вы хотите чтобы утилита сканировала и проверяла все устройства, которые есть в системе используйте вместо имени устройства директиву DEVICESCAN:

$ DEVICESCAN -m myemail@mydomain.com -M once -s (L /../../[1-5]/13)

Перейти к оглавлению.


Trim

Базовая информация.

Trim — команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных не несут полезной нагрузки и их можно не хранить физически.

Современные накопители данных такие как SSD нуждаются в команде TRIM интерфейса ATA и для этого в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:

Проверьте, поддерживается ли TRIM у вашего накопителя:

$ hdparm -I /dev/sda | grep TRIM

Включение TRIM с помощью флагов монтирования.

Используйте флаг discard в вашем /etc/fstab, чтобы получить преимущества команды TRIM, описанные выше:

/dev/sda1  /       ext4   defaults,noatime,discard   0  1
/dev/sda2  /home   ext4   defaults,noatime,discard   0  2
				

Примечание:

Безусловно рекомендуется включать TRIM на поддерживаемых SSD накопителях. Однако, иногда на некоторых SSD это может приводить к замедлению работы при удалении файлов. Если это ваш случай, вы можете использовать fstrim как альтернативу.

Раздел, который вы хотите "подтримить" должен быть примонтирован и должен быть указан точкой монтирования.

$ fstrim -v /

Я конечно ожидал освобождения скромных 5...10 ГБ на своем ноутбуке, но никак не 57 ГБ!

Перейти к оглавлению.


Разделы подкачки на SSD.

Можно размещать раздел подкачки на SSD. Но с другой стороны, современные компьютеры, имеющие более 2 ГБ оперативной памяти, используют раздел подкачки очень редко. Заметным исключением являются системы, которые используют спящий режим. Однако, учтите, что данная опция работает только до перезагрузки системы. Следующая оптимизация для SSD уменьшает "swappiness" системы:

$ echo 1 > /proc/sys/vm/swappiness

Для постоянного изменения конфигурации swappiness просто создайте файл, например /etc/sysctl.d/00-sysctl.conf с содержимым vm.swappiness=10:

$ echo -e -n "vm.swappiness=10\nvm.vfs_cache_pressure=50\n" >> /etc/sysctl.d/00-sysctl.conf

Перейти к оглавлению.


Опция монтирования noatime

Монтируйте разделы SSD с опцией noatime - во время чтения файлов не будет обновляться поле atime файловой системы, указывающее время последнего доступа к файлу. Однако, эта опция может вызвать проблемы с некоторыми программами, такими как Mutt, т. к. время доступа к файлу станет меньше, чем время изменения, что вызовет проблемы в работе. Использование опции relatime вместо noatime позволит быть уверенным, что поле atime никогда не станет меньше, чем время изменения.

/dev/sda1 / ext4 defaults,relatime,discard 0 1
/dev/sda2 /home ext4 defaults,relatime,discard 0 1
				

Расположите часто используемые файлы в оперативной памяти.

Перейти к оглавлению.


Компиляция в tmpfs.

Перенос интенсивной компиляции в /tmp — отличная идея продления срока жизни диска. Если у вас имеется более 4 ГБ оперативной памяти, строку tmp из /etc/fstab нужно изменить, чтобы раздел использовал больше половины доступной памяти, через параметр size=, т. к. /tmp при компиляции растёт очень быстро.

Пример для машины с 8 ГБ оперативки:

tmpfs /tmp tmpfs nodev,nosuid,size=7G 0 0
				

Перейти к оглавлению.

Ну а на этом на сегодня всё. Моё дело - лишь заинтересовать вас. Берегите свою технику и она прослужит вам долго. Всем Добра и Удачи!

Copyright © 28.05.2021 by Mikhail Artamonov