Предупреждён — значит вооружен!
SMART — это система, которая контролирует внутреннюю информацию вашего диска. Она существует не только у SSD, но и у обычных жестких дисков и также поможет узнать о повреждении вашего диска. Для работы с данной системой, установите утилиту smartmontools:
Archlinux: $ pacman -S smartmontools Debian: $ apt install smartmontools RedHat: $ yum install smartmontools
Для отображения информации о конкретном жестком диске запустите smartctl с опцией info и именем жесткого диска. Например:
Если SMART доступен, но не включен, вы можете включить его:
Существует три типа самотестирования, которые может выполнить устройство:
- Short: запускает тесты с высокой вероятностью обнаружения проблем с устройством
- Extended or Long: тест такой же, как и короткая проверка, но без ограничения по времени и с полным исследованием поверхности диска
- Conveyance: определяет, был ли нанесен ущерб во время транспортировки устройства
Флаг-c/—capabilities выводит, какие тесты поддерживает устройство, и примерное время выполнения каждого теста.
$ smartctl -c /dev/sdX $ smartctl -t short /dev/sdX $ smartctl -t long /dev/sdX $ smartctl -t conveyance /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 таблице записаны параметры, определенные для конкретного диска разработчиком, а также порог отказа для этих параметров. Таблица заполняется автоматически и обновляется на основе прошивки диска.
- ID — идентификатор атрибута, как правило, десятичное число между 1 и 255;
- ATTRIBUTE_NAME — название атрибута;
- FLAG — флаг обработки атрибута;
- VALUE — нормальное значение для состояния данного атрибута в диапазоне от 1 до 253, 253 — лучшее состояние, 1 — худшее. В зависимости от свойств, начальное значение может быть от 100 до 200;
- WORST — худшее значение value за все время;
- THRESH — самое низкое значение value, после перехода за которое нужно сообщить что диск непригоден для эксплуатации;
- TYPE — тип атрибута, может быть Pre-fail или Old_age. Все атрибуты по умолчанию считаются критическими, то-есть если диск не прошел проверку по одному из атрибутов, то он уже считается не пригодным (FAILED) но атрибуты old_age не критичны;
- UPDATED — показывает частоту обновления атрибута;
- WHEN_FAILED — будет установлено в FAILING_NOW если значение атрибута меньше или равно THRESH, или в «-« если выше. В случае FAILING_NOW, лучше как можно скорее выполнить резервное копирование, особенно если тип атрибута pre-fail.
- RAW_VALUE — значение, определенное производителем.
Сейчас вы думаете, да smartctl хороший инструмент, но у меня нет возможности запускать его каждый раз вручную, было бы неплохо автоматизировать все это дело чтобы программа запускалась периодически и сообщала мне о результатах проверки. Это можно сделать с помощью smartd.
Автоматическая диагностика HDD в Linux настраивается очень просто. Сначала отредактируйте файл конфигурации smartd — /etc/smartd.conf. Добавьте следующую строку:
$ nano /etc/smartd.conf /dev/sda -m myemail@mydomain.com -M test
- -m E-Mail — адрес электронной почты для отправки результатов проверки. Это может быть адрес локального пользователя, суперпользователя или внешний адрес, если настроен сервер для отправки электронной почты;
- -M — частота отправки писем:
- once — отправлять только одно сообщение о проблемах с диском.
- daily — отправлять сообщения каждый день если была обнаружена проблема.
- diminishing — отправлять сообщения через день если была обнаружена проблема.
- test — отправлять тестовое сообщение при запуске smartd.
- exec — выполняет указанную программу в место отправки почты.
Сохраните изменения и перезапустите smartd:
Вы должны получить на электронную почту письмо о том, что программа была запущена успешно. Это будет работать только если на компьютере настроен почтовый сервер.
Также можно запланировать тесты по своему графику, для этого используйте опцию -s и регулярное выражение типа T/MM/ДД/ДН/ЧЧ, где:
- L — длинный тест;
- S — короткий тест;
- C — тест перемещения (ATA);
- O — оффлайн тест.
Остальные символы определяют дату и время теста:
- ММ — месяц в году;
- ДД — день месяца;
- ЧЧ — час дня;
- ДН — день недели (от 1 — понедельник 7 — воскресенье;
- MM, ДД и ЧЧ — указываются с двух десятичных цифр.
Точка означает все возможные значения, выражение в скобках (A|B|C) — означает один из трех вариантов, выражение в квадратных скобках 4 означает диапазон (от 1 до 5).
Например, чтобы выполнять полную проверку жесткого диска Linux каждый рабочий день в час дня добавьте опцию -s в строчку конфигурации вашего устройства:
$ /dev/sda -m myemail@mydomain.com -M once -s (L /../../3/13)
Если вы хотите чтобы утилита сканировала и проверяла все устройства, которые есть в системе используйте вместо имени устройства директиву DEVICESCAN:
$ DEVICESCAN -m myemail@mydomain.com -M once -s (L /../../1/13)
Trim
Базовая информация.
Trim — команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных не несут полезной нагрузки и их можно не хранить физически.
Современные накопители данных такие как SSD нуждаются в команде TRIM интерфейса ATA и для этого в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:
- discard — устанавливается как опция монтировании файловой системы. Позволяет ядру Linux сразу отправлять команду TRIM на устройство, как только об этом сообщит файловая система.
- fstrim — утилита которая запускается вручную или по расписанию как сервис ОС, отправляет список удаленных блоков с ФС для зачистки их на устройстве.
Проверьте, поддерживается ли 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.
- Нет необходимости использовать флаг discard, если вы периодически запускаете fstrim
- Использование флага discard для корневого раздела с файловой системой ext3 приведёт к тому, что он будет смонтирован в режиме только-чтение.
Безусловно рекомендуется включать TRIM на поддерживаемых SSD накопителях. Однако, иногда на некоторых SSD это может приводить к замедлению работы при удалении файлов. Если это ваш случай, вы можете использовать fstrim как альтернативу.
Раздел, который вы хотите «подтримить» должен быть примонтирован и должен быть указан точкой монтирования.
Я конечно ожидал освобождения скромных 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
Ну а на этом на сегодня всё. Моё дело — лишь заинтересовать вас. Берегите свою технику и она прослужит вам долго. Всем Добра и Удачи!