Назад | Перейти на главную страницу

Как SMART-самотестирование связано с плохими блоками?

Инструмент smartctl позволяет запустить длительную самопроверку (smartctl -t long /dev/sda). Однако есть также badblocks что я могу бегать на машине. Как они связаны? Если badblocks обнаруживает плохие блоки, обновляет ли диск автоматически свои значения SMART (например, обновляя счетчик перемещенных секторов)? Могут ли плохие блоки заменить smartctl -t long, или наоборот?

Как я указал в моем другом ответе, на каждом современном жестком диске есть доступное пространство для переназначения (потому что, особенно при сегодняшней плотности диска, ни одна пластина диска не будет идеальной - всегда будет несколько дефектов, которые диск придется переназначать, даже на совершенно новых, никогда не использовавшихся приводы с конвейера в мои руки).

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


В конечном итоге SMART и badblocks протестируйте две разные, но связанные вещи:

SMART - это инструмент самоконтроля:

Жесткий диск знает некоторую информацию о своих рабочих параметрах и имеет некоторые мета-знания о том, что «нормально» для одних и «приемлемо» для других.
Если привод определяет, что определенные параметры являются «ненормальными» или «неприемлемыми», он сообщает о состоянии, предшествующем отказу, другими словами, привод все еще работает, но вскоре может выйти из строя.

Например: двигатель шпинделя обычно потребляет 0,10 ампер, но теперь он потребляет 0,50 ампер - аномально высокое потребление, которое может указывать на заедание вала или отсутствие постоянной смазки на подшипниках. В конце концов, двигатель не сможет преодолеть сопротивление, и привод закроется.

Другой пример: накопитель имеет 1000 блоков переназначения для работы с поврежденными секторами. Он использовал 750 из них, и инженеры, которые построили накопитель, определили, что количество переназначений указывает на внутреннюю неисправность (плохой пластинчатый диск, отказ из-за старости, поврежденная головка) - накопитель сообщит о состоянии перед отказом, позволяя вам время ваши данные отключены до того, как пространство переназначения закончится и поврежденные сектора не станут видимыми.

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


badblocks - это инструмент со специальной (устаревшей) целью: поиск поврежденных секторов.

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

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

Теоретически вы могли бы использовать badblocks данные для переназначения ОС (видимые) сбои, как если бы ваш современный диск был древним винчестерским диском, но это в конечном итоге контрпродуктивно - как я сказал ранее ЛЮБОЙ сбойные сектора обнаружены с помощью badblocks на современном приводе являются причиной отказа от всего привода как неисправного (или готового выйти из строя).

Видимые поврежденные секторы указывают на то, что на диске закончилось пространство для переназначения, что относительно редко для современных дисков, если они не старые (срок службы приближается к концу) или неисправен (плохие пластины / головки с завода).


Так что в основном если запустить badblocks на диске перед развертыванием в производственной среде заставляет вас почувствовать себя лучше, продолжайте и делайте это, но если ваш диск был произведен в этом веке и на нем видны видимые дефектные сектора, вы должны выбросить его в корзину (или обратиться в гарантийное обслуживание). За мои деньги статус SMART и глубокая защита Это лучшее использование времени, чем проверка дисков вручную.

Хорошие ответы на этот вопрос

https://superuser.com/a/693065

https://superuser.com/a/693064

В отличие от других ответов, я считаю плохие блоки не устаревшими, но очень полезным инструментом. Как только я обновил свой компьютер новым жестким диском, он начал нестабильно работать. Мне потребовалось довольно много времени, чтобы понять, благодаря badblocks, что поверхность диска имеет дефекты. С тех пор я запускаю плохие блоки в режиме записи (разрушаемые!) Для каждого нового жесткого диска, который я начинаю использовать, и больше никогда не сталкивался с этой проблемой. Я очень рекомендую

время sudo badblocks -swvo sdX.log / sev / sdX

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

Во время этого теста сбойные блоки будут отображены на диске. Таким образом, «счетчик повторно привязанных секторов» следует записывать до и после теста и сравнивать с порогом SMART, поскольку он что-то скажет о состоянии диска.

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

Но когда этот сектор будет записан снова, он будет переназначен на пространство переназначения, немаркирован, и счетчик «Reallocated_Sector_Ct» увеличится. Тогда весь диск снова станет читаемым.

smartctl -t long test полезен - он проверяет все пространство на диске на наличие нечитаемых секторов и регистрирует и отмечает как «Текущее ожидание» и «Не исправляется в автономном режиме» первый сбойный сектор, обнаруженный при запуске. Я настраиваю свои серверы на запуск этого длительного теста один раз в неделю на каждом диске. Это не слишком сильно влияет на нормальные функции накопителя, так как запросы ОС всегда имеют приоритет над сканированием SMART.

Как и на сервере, я всегда запускаю диски в зеркалах RAID1, поэтому, когда долгий тест обнаруживает плохой сектор, я могу переписать его содержимое, используя данные с другого диска в зеркале, принудительно перераспределив.

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

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

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

Если действие диска (посредством плохих блоков или нормальной работы) приводит к неисправимой ошибке чтения, диск автоматически обновляет свой счетчик отложенного перераспределения, а когда перераспределение выполняется, он обновляет счетчики отложенного перераспределения и перераспределения. Простой dd тоже сможет это сделать.

Если вам нужно выбрать между двумя, используйте smartctl -t, чтобы лучше анализировать диск.

Я также могу предложить использовать мою утилиту diskscan https://github.com/baruch/diskscan, он работает больше как плохие блоки, но пытается оценить, есть ли в них неисправные сектора, что-то вроде сектора с нарушениями слуха, чтение которого занимает намного больше времени. Это указывает на развивающуюся проблему с носителем, и в будущих версиях также может быть предложена автоматическая попытка помочь диску решить эту проблему.