Контролируем показания S.M.A.R.T.

У моей истории с умершим винтом две концовки — плохая и хорошая.

Начну с плохой: из 300 Гб спасти удалось примерно 27 — винт то и дело отключался, и требовалась перезагружаться. Омрачает ситуацию и тот факт, что с момента покупки этого накопителя я напрочь забросил привычку записывать диски в целях бэкапа, потому потеря — всё, что не входит в жалкие 27 Гб и скачанное за период с июля прошлого года.

Оставим пессимизм (информация — дело наживное), перейдем к хорошему и приятному: винт приняли по гарантии, проверили на месте и дали добро на замену (а ведь я его прошивал). Брать такую же „рыбу“ мне не захотелось, остановил свой выбор на 640-гигабайтном Western Digital WD6400AAKS (без доплаты — спасибо неуклонному снижению цен на железо). На сей раз в качестве ФС была выбрана reiserfs, претензий к которой после долгого использования на рутовом разделе не имею. Из всего случившегося я сделал вывод — существует острая необходимость неустанно следить за состоянием накопителей, тем более в случае с постоянно подключёнными жёсткими дисками делать это совсем необременительно. Об этом сейчас и пойдёт речь.

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

smartctl -A /dev/sdX
где sdX — объект вашего пристального внимания. Пример вывода (мой умерший винт):
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 090 090 006 Pre-fail Always - 238403181
3 Spin_Up_Time 0x0003 096 095 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 102
5 Reallocated_Sector_Ct 0x0033 001 001 036 Pre-fail Always FAILING_NOW 2047
7 Seek_Error_Rate 0x000f 070 060 030 Pre-fail Always - 11226600
9 Power_On_Hours 0x0032 092 092 000 Old_age Always - 7188
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 1
12 Power_Cycle_Count 0x0032 100 037 020 Old_age Always - 103
184 Unknown_Attribute 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 070 058 045 Old_age Always - 30 (Lifetime Min/Max 28/30)
194 Temperature_Celsius 0x0022 030 042 000 Old_age Always - 30 (0 23 0 0)
195 Hardware_ECC_Recovered 0x001a 038 016 000 Old_age Always - 238403181
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
где:
1) ATTRIBUTE_NAME — название атрибута. Русскую расшифровку можно глянуть здесь.
2) RAW_VALUE — „сырое “значение, переданное диском.
3) VALUE — нормализованное значение, пересчитанное прошивкой из RAW_VALUE.
4) WORST — минимальное значение, которого достигал атрибут за время мониторинга (т.е. с момента включения SMART).
5) THRESH — минимальное пороговое значение, определённое производителем.
6) TYPE — тип атрибута. Тип Pre-fail обозначет критически важные атрибуты, Old_age — наработку на отказ (проще говоря — износ со временем, ресурс).
Работает всё просто: нормализованное значение VALUE, полученное из RAW_VALUE, сравнивается с пороговым THRESH и в случае равенства или падения ниже этой отметки в столбце WHEN_FAILED для соответствующего атрибута проставляется FAILING_NOW. А в этом нет ничего хорошего — высока вероятность выхода из строя диска в течение суток.

Гораздо приятнее, когда рутинная работа выполняется в автоматическом режиме. К счастью, в случае с smartmontools такое тоже возможно — для этого существует демон smartd. Описывать настройку сейчас мне не очень хочется, тем более конфиг /etc/smartd.conf хорошо комментирован и изобилует примерами. Другой вариант для любителей GUI — пакет gsmartcontrol из community.

Никакой автоматики, зато не надо помнить нужную команду и параметры — шевели мышкой на здоровье. : ) А здоровья хочется пожелать не только вам, но и вашим винтам.

Комментарии (0)

Отправить комментарий