Как игнорировать определенную ошибку SMART

Как игнорировать определенную ошибку SMART

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

This email was generated by the smartd daemon running on:

 host name: jon
DNS domain: [Unknown]
NIS domain: (none)

The following warning/error was logged by the smartd daemon:

Device: /dev/sdb [SAT], 11 Currently unreadable (pending) sectors


For details see host's SYSLOG.

You can also use the smartctl utility for further investigation.
The original email about this issue was sent at Sun Nov 25 02:30:45 2012 CET
Another email message will be sent in 24 hours if the problem persists.

Когда это произошло впервые, количество нечитаемых секторов медленно увеличивалось, поэтому сделал резервную копию и попробовал многие вещи, описанные в этой теме: https://serverfault.com/questions/104417/how-do-i-easily-repair-a-single-unreadable-block-on-a-linux-disk

Как вы видите из письма, это было 1,5 года назад, так что я точно не помню, что я пробовал, а что нет. Однако диск с тех пор остается стабильным и рабочим, так что я не вижу смысла что-либо менять. (Да, я регулярно создаю резервные копии.)

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

Редактировать:

Я знаю, что многие или большинство из вас дадут мне совет «заменить диск», что, в общем-то, является наилучшим возможным советом для вопроса типа «Я получаю эту ошибку. Что мне делать?»

Но, пожалуйста,пожалуйстаПризнаю, что я осознаю риск и задаю очень конкретный вопрос относительно демона SMART. Я не нашел в документах ничего, что указывало бы на возможность сделать то, что я хочу, но я хотел сначала дважды проверить, прежде чем использовать свой обходной путь.

Обновлять:

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

решение1

вам нужно изменить конфигурацию /etc/smartd.conf

добавьте аргументы к вашей настройке:

-t -I 197  

Игнорирует атрибут 197 — Ожидающие сектора

как это (пример):

/dev/ad0 -H -l error -l selftest -t -I 197

решение2

Самый простой способ остановить сообщение без замены диска — заставить диск либо пометить сектора как хорошие, либо плохие вместо «возможно, возможно плохие», что и означает «ожидание». Вы можете сделать это, принудительно выполнив полное чтение диска:

sudo dd if=/dev/sdb of=/dev/null bs=64K conv=noerror

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

Обратите внимание, что хотя это очистит текущие 11 ожидающих секторов, это можетобнаружить новые потенциально плохие секторав процессе (что приводит к ненулевому количеству ожидающих секторов). Запустите это снова, пока не останется больше ожидающих секторов.

решение3

Хм... Я не знаю, как можно перенастроить smartd, но я знаю, что можно заставить OMD[1] игнорировать некоторые ошибки SMART (я однажды сделал это со стабилизированным перераспределенным счетчиком секторов). Возможно, это также вариант для вас, если вы хотите отслеживать больше параметров вашего ящика, чем просто показания SMART.

решение4

Известно, что некоторые диски возвращают эту ошибку ошибочно, например, SSD-накопители Crucial серии MX500. Одним из решений является настройка пользовательского файла базы данных диска, /etc/smart_drivedb.hсодержащего следующее (мне пришлось отредактировать его, чтобы он соответствовал номеру моей прошивки):

  { "Crucial/Micron MX500 SSDs",
    "CT(250|500|1000|2000)MX500SSD[14]", // tested with CT500MX500SSD1/M3CR023
    "M3CR032", // Firmware with bogus attribute 197
    "This firmware returns bogus raw values in attribute 197",
  //"-v 1,raw48,Raw_Read_Error_Rate "
    "-v 5,raw48,Reallocate_NAND_Blk_Cnt "
  //"-v 9,raw24(raw8),Power_On_Hours "
  //"-v 12,raw48,Power_Cycle_Count "
    "-v 171,raw48,Program_Fail_Count "
    "-v 172,raw48,Erase_Fail_Count "
    "-v 173,raw48,Ave_Block-Erase_Count "
    "-v 174,raw48,Unexpect_Power_Loss_Ct "
    "-v 180,raw48,Unused_Reserve_NAND_Blk "
    "-v 183,raw48,SATA_Interfac_Downshift "
    "-v 184,raw48,Error_Correction_Count "
  //"-v 187,raw48,Reported_Uncorrect "
  //"-v 194,tempminmax,Temperature_Celsius "
  //"-v 196,raw16(raw16),Reallocated_Event_Count "
    "-v 197,raw48,Bogus_Current_Pend_Sect " // Randomly flips 0 <> 1
  //"-v 198,raw48,Offline_Uncorrectable "
  //"-v 199,raw48,UDMA_CRC_Error_Count "
    "-v 202,raw48,Percent_Lifetime_Remain "
    "-v 206,raw48,Write_Error_Rate "
    "-v 210,raw48,Success_RAIN_Recov_Cnt "
    "-v 246,raw48,Total_LBAs_Written "
    "-v 247,raw48,Host_Program_Page_Count "
    "-v 248,raw48,FTL_Program_Page_Count"
  }

После создания файла запустите service smartd restartобновление службы smartd. Затем вы увидите, grep smartd /var/log/syslogчто она включена для диска.

Источник:Билет в службу поддержки Smartmontools

Связанный контент