Забота о братьях наших меньших - SSD
Не для кого не секрет, что у SSD накопителей есть такое понятие как время жизни. Да, конечно современные твердотельные накопители стали достаточно надежными и долговечными. Но, ведь если мы забыли, то сам SSD не забудет и рано или поздно всё равно может прийти в негодность, а нам об этом даже ничего не будет известно.
Давайте позаботимся обо этом заранее. И в случае необходимости вы вовремя успеете начать резервное копирование данных.
Все команды выполняются от пользователя root.
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 — команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных не несут полезной нагрузки и их можно не хранить физически.
Современные накопители данных такие как SSD нуждаются в команде TRIM интерфейса ATA и для этого в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:
$ hdparm -I /dev/sda | grep 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. Но с другой стороны, современные компьютеры, имеющие более 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
Монтируйте разделы SSD с опцией noatime - во время чтения файлов не будет обновляться поле atime файловой системы, указывающее время последнего доступа к файлу. Однако, эта опция может вызвать проблемы с некоторыми программами, такими как Mutt, т. к. время доступа к файлу станет меньше, чем время изменения, что вызовет проблемы в работе. Использование опции relatime вместо noatime позволит быть уверенным, что поле atime никогда не станет меньше, чем время изменения.
/dev/sda1 / ext4 defaults,relatime,discard 0 1 /dev/sda2 /home ext4 defaults,relatime,discard 0 1
Расположите часто используемые файлы в оперативной памяти.
Перенос интенсивной компиляции в /tmp — отличная идея продления срока жизни диска. Если у вас имеется более 4 ГБ оперативной памяти, строку tmp из /etc/fstab нужно изменить, чтобы раздел использовал больше половины доступной памяти, через параметр size=, т. к. /tmp при компиляции растёт очень быстро.
Пример для машины с 8 ГБ оперативки:
tmpfs /tmp tmpfs nodev,nosuid,size=7G 0 0
Ну а на этом на сегодня всё. Моё дело - лишь заинтересовать вас. Берегите свою технику и она прослужит вам долго. Всем Добра и Удачи!
Copyright © 28.05.2021 by Mikhail Artamonov