Как SMART самотестирование связано с бадблоками?
Инструмент smartctl позволяет запустить длительную самопроверку (smartctl -t long /dev/sda
). Однако есть также badblocks
что я могу бегать на драйве. Как эти два связаны? Если badblocks обнаруживает плохие блоки, автоматически ли диск обновляет свои значения SMART (например, путем обновления количества перемещенных секторов)? Могут ли бадблоки заменить smartctl -t long
, или наоборот?
5 ответов
Я должен не согласиться с voretaq7 - SMART не волшебство. Когда у вас есть диск и один из его секторов выходит из строя, вы больше не сможете читать данные с него. Таким образом, вполне возможно иметь нечитаемый файл на современном диске. SMART помечает этот нечитаемый сектор как "Текущий в ожидании" и "Неисправный в автономном режиме", когда к нему впервые обращаются после сбоя.
Но когда этот сектор будет записан снова, он будет переназначен на место переотображения, не помечено, и счетчик Reallocated_Sector_Ct увеличится. Тогда весь диск будет снова доступен для чтения.
smartctl -t long
Проверка полезна - она будет проверять все пространство диска на наличие нечитаемых секторов, а также регистрировать и помечать как "Текущее ожидание" и "Неисправность в автономном режиме" как первый неисправный сектор, возникший при запуске. Я настраиваю свои серверы для запуска этого длинного теста один раз в неделю на каждом диске. Это не слишком влияет на обычные функции привода, так как запросы ОС всегда имеют приоритет над сканированием SMART.
Как и на сервере, я всегда запускаю диски в зеркалах RAID1, поэтому, когда длинный тест обнаруживает неисправный сектор, я могу переписать его содержимое, используя данные с другого диска в зеркале, что вызывает перераспределение.
badblocks
иногда также полезно - например, он протестирует весь диск и не остановится при первой ошибке. Он может проверить один раздел или любую другую часть диска. Вы можете использовать его, чтобы быстро проверить, был ли плохой блок успешно перераспределен.
Как я уже указывал в своем другом ответе, на каждом современном жестком диске имеется место для переназначения (потому что, особенно при сегодняшних плотностях дисков, диск не будет идеальным - всегда будет несколько дефектов, которые диск должен переназначить, даже на фирменных - новые, никогда не бывшие в употреблении, диски со сборочной линии в мои руки).
Из-за этого теоретически вы должны сообщить о сбое SMART до того, как badblocks
замечает (видимые конечному пользователю) поврежденные сектора на диске.
На современных жестких дисках любые видимые конечному пользователю поврежденные сектора (о чем может сообщать badblocks
или автоматически обнаруживается ОС) - последний вздох и дрожь умирающего диска.
В конечном итоге умный и badblocks
проверить две разные, но связанные вещи:
SMART - это инструмент самоконтроля:
Жесткий диск знает некоторую информацию о его рабочих параметрах и имеет мета-знания относительно того, что является "нормальным" для одних и "приемлемым" для других.
Если накопитель обнаруживает, что определенные параметры являются "ненормальными" или "неприемлемыми", он сообщит о состоянии перед отказом - другими словами, накопитель по-прежнему функционирует, но может вскоре выйти из строя.
Например: Двигатель шпинделя обычно потребляет 0,10 ампер, но теперь он потребляет 0,50 ампер - ненормально высокое усилие, которое может указывать на то, что вал сжимается, или постоянная смазка на подшипниках исчезла. В конце концов, двигатель не сможет преодолеть сопротивление, и привод закроется.
Другой пример: диск имеет 1000 блоков "переназначения" для работы с поврежденными секторами. Он использовал 750 из них, и инженеры, которые создали накопитель, определили, что количество повторных операций указывает на что-то внутренне неправильное (плохое блюдо, отказ по старости, поврежденная голова) - накопитель сообщит о состоянии перед отказом, позволяя вам получить время Ваши данные отключены до того, как закончится место переназначения и станут видны поврежденные сектора.
SMART ищет больше, чем просто плохие сектора - это более полная оценка состояния диска. Вы можете получить предупреждение SMART перед отказом на диске без плохих секторов и без ошибок чтения / записи (например, проблема шпиндельного двигателя, которую я описал выше).
badblocks
инструмент с определенной (устаревшей) целью: поиск плохих секторов
badblocks
приходит со времени до SMART и переназначения плохого сектора. В то время мы знали, что у дисков есть недостатки, но единственный способ отобразить их, чтобы предотвратить случайное хранение данных, - это провести стресс-тестирование диска, вызвать сбой, а затем помнить, что данные больше никогда не помещались туда.
Причина, по которой я говорю, что она устарела, заключается в том, что электроника на современных приводах уже делает то, что badblocks
делает, внутренне и в несколько тысяч раз быстрее. badblocks
в основном позволяет старым накопителям, в которых не хватает сложной электроники, повторно отображать (или пропускать) сектора, в которых произошел сбой, но современные жесткие диски уже обнаруживают неисправные сектора и переназначают их для вас.
Теоретически вы могли бы использовать badblocks
данные с ошибками переназначения (видимого) ОС, как если бы ваш современный диск был древним винчестерским, но это в конечном итоге контрпродуктивно - как я уже говорил ранее, ЛЮБЫЕ поврежденные сектора обнаруживаются с badblocks
на современном диске это причина, по которой весь накопитель считается неисправным (или может выйти из строя).
Видимые поврежденные сектора указывают на то, что на диске нет места для переназначения, что относительно редко встречается для современных дисков, если они не старые (подходит к концу функциональный ресурс) или неисправны (неисправные диски / головки с завода).
Так что в основном, если работает badblocks
на диске перед его развертыванием в производстве вы почувствуете себя лучше и сделайте это, но если ваш диск был изготовлен в этом столетии и на нем виден плохой сектор, вы должны выбросить его в корзину (или вызвать его гарантию). За мои деньги SMART статус и глубокая защита - лучшее использование моего времени, чем ручная проверка дисков.
Хорошие ответы на этот вопрос
https://superuser.com/a/693065
Вопреки другим ответам я считаю бадблоки не устаревшими, а очень полезным инструментом. Однажды я обновил свой компьютер новым жестким диском, и он начал работать нестабильно. Благодаря плохим блокам у меня ушло много времени, чтобы понять, что поверхность диска имеет дефекты. С тех пор я запускаю полные блокираторы режима записи (разрушаемые!) Для каждого нового жесткого диска, который я начинаю использовать, и у меня больше никогда не возникало этой проблемы. Я очень рекомендую
время sudo badblocks -swvo sdX.log /sev/sdX
за каждый новый жесткий диск. Он будет проверять каждый бит диска на запись и чтение, поэтому он может избежать многих проблем позже.
Во время этого теста неисправные блоки будут отображаться на диске. Таким образом, "количество повторных секторов" следует записывать до и после теста и сравнивать с пороговым значением SMART, поскольку оно скажет что-то о работоспособности накопителя.
badblocks - это пережиток старых времен, он не очень полезен, он может найти нечитаемый в настоящее время сектор, но правильное решение для плохого сектора - восстановить данные из резервной копии. Что может быть сделано, если данные не были важны для вас, это удалить связанный файл и записать что-нибудь в это место, это позволит диску перераспределить сектор, если он сочтет это необходимым, и продолжить работу.
Самопроверка диска также будет использоваться для проверки всех носителей на наличие различных дефектов. Предполагается использовать более низкие пороговые значения по сравнению с тем, что он использует в обычной работе, чтобы определить, имеет ли диск много слабых мест, и на основе логики поставщика может решить, что диск истек срок его службы и объявить тест не пройден. В этот момент вы должны вынуть все свои данные или восстановить их из резервной копии и заменить диск.
Если действие диска (либо с помощью бадблоков, либо при нормальной работе) встречается с неисправимой ошибкой чтения, диск автоматически обновляет свой счетчик отложенных перераспределений, и когда перераспределение выполняется, он обновляет ожидающие перераспределения и перераспределенные счетчики. Простой дд получит такое же.
Если вам нужно выбрать между этими двумя вариантами, используйте smartctl -t, если он лучше анализирует диск.
Я также могу предложить использовать мою утилиту дискового сканирования https://github.com/baruch/diskscan, она больше работает как бадблоки, но пытается оценить, работают ли сектора, которые плохо работают, что-то вроде слабослышащего сектора, который требует много дольше читать. Это указывает на проблему с развивающимся носителем, и в будущих версиях также может предлагаться автоматическая попытка помочь диску устранить эту проблему.
Я не могу поверить, что никто не говорил о дисках с рейтингом NAS. В их прошивке отключено переназначение дисков (по очень веским причинам).
[чтобы вы могли видеть, что у них разные роли]
Я искал здесь, потому что взял старый диск NAS и использовал его в обычном рабочем столе Linux. Он получил плохой сектор, я переназначил его В ФАЙЛОВОЙ СИСТЕМЕ, используя e2fsck -c (т.е. плохие блоки, но без всех ручных вычислений)
(Скрытое) использование badblocks означает, что плохой сектор не используется файловой системой... но он по-прежнему ПЛОХОЙ на диске, поэтому smartctl нервничает по этому поводу... надеясь на способ сообщить smartctl об этом " Я знаю об этом плохом секторе, оставь его».
Таким образом, из-за бэдблоков этот сектор никогда не будет использоваться для реальных данных, но smartctl все еще беспокоится о физическом устройстве... им нужен способ объединения.