Использование «бадблоков» на современных дисках


21

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

Может кто-нибудь объяснить, пожалуйста, лучшие варианты для использования с -bи -c? Я включил их определения со страницы руководства, но не уверен, что большие размеры будут полезны для современных дисков с 64 МБ ОЗУ и 4k секторов.

-b block-size       Specify the size of blocks in bytes. The default is 1024. 
-c number of blocks the number of blocks which are tested at a time. The default is 64

Во-вторых, я хотел бы знать, является ли тест режима записи более тщательным, чем неразрушающий режим чтения-записи?

И, наконец, сколько перераспределений в SMART-секторе допустимо / следует ли немедленно заменить диски с ненулевым количеством перераспределений?


3
для второй части: как только вы начинаете видеть плохие блоки, это означает, что что-то пошло не так. Вероятно, это хороший признак того, что вы должны заменить диск, прежде чем вообще не сможете его прочитать. Но во всех случаях, даже до сбоя, у вас всегда должно быть 2 резервных копии важных данных (1 локальная, 1 удаленная) в дополнение к рабочей копии. смотрите подробности моего ответа там: superuser.com/a/528181/174998
Оливье Дюлак

4
для размера блока: он должен отражать фактический размер блока, который использовала ваша ОС для хранения данных на этом жестком диске (в соответствии с используемой файловой системой). Дело не в том, чтобы ускорить процесс, а в том, что он помечает блок как «плохой», этот блок действительно 1 блок, а не 1/2 или 1/4 или даже 2 (или более) блока.
Оливье Дюлак

Ответы:


21

Вопрос 1:

Что касается -bварианта: это зависит от вашего диска. Современные большие диски имеют блоки по 4 КБ, и в этом случае вам следует установить -b 4096. Вы можете получить размер блока из операционной системы , и он также обычно может быть получен либо путем считывания информации о диске с метки, либо путем поиска номера модели диска. Если -bустановлено значение, превышающее размер вашего блока, целостность badblocksрезультатов может быть нарушена (т. Е. Вы можете получить ложноотрицательные результаты: не найдено плохих блоков, если они еще могут существовать). Если -bустановлено значение, которое меньше размера блока вашего диска, скорость badblocksзапуска может быть поставлена ​​под угрозу. Я не уверен, но могут быть другие проблемы с настройкой-bк чему-то меньшему, чем размер вашего блока, так как он не проверяет целостность всего блока, все равно возможно получить ложноотрицательные результаты, если он установлен слишком маленьким.

В -cопции соответствует тому , сколько блоков должны быть проверены сразу. Пакетное чтение / запись, в основном. Эта опция не влияет на целостность ваших результатов, но она влияет на скорость, с которой badblocksработает. badblocks(опционально) будет записывать, затем читать, буферизовать, проверять, повторять для каждого N блоков, как указано в -c. Если -cзадано слишком низкое значение, это приведет к тому, что выполнение будет badblocksвыполняться намного дольше обычного, поскольку организация очередей и обработка отдельного запроса ввода-вывода влечет за собой дополнительные расходы, а диск также может налагать дополнительные накладные расходы на запрос. Если -cустановлено слишком высоко, badblocksможет не хватить памяти. Если это произойдет, badblocksпроизойдет сбой довольно быстро после его запуска. Дополнительные соображения здесь включают параллельные badblocksзапуски: если вы работаетеbadblocksпротив нескольких разделов на одном диске (плохая идея) или против нескольких дисков по одному и тому же каналу ввода-вывода, вы, вероятно, захотите настроить -cчто-то ощутимо высокое, учитывая доступную память, badblocksчтобы параллельные прогоны не боролись за пропускную способность ввода-вывода и может распараллеливать в здравом смысле.

Вопрос 2:

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

В неразрушающем режиме badblocksвыполняет следующие действия:

  1. Прочитайте существующие данные, проверьте их (прочитайте еще раз при необходимости) и сохраните их в памяти.
  2. Записать в блок предопределенный шаблон (переопределяемый с помощью -pопции, но обычно не обязательный).
  3. Прочитайте блок обратно, убедившись, что считанные данные совпадают с шаблоном.
  4. Запишите исходные данные обратно на диск.
    • Я не уверен в этом, но он также, вероятно, перечитывает и проверяет, что исходные данные были успешно записаны, и все еще проверяет контрольную сумму на то же самое.

В режиме destructive ( -w) badblocksвыполняются только шаги 2 и 3 выше. Это означает, что количество операций чтения / записи, необходимых для проверки целостности данных, уменьшается вдвое. Если блок плохой, данные будут ошибочными в любом режиме. Конечно, если вы заботитесь о данных, которые хранятся на вашем диске, вы должны использовать неразрушающий режим, так как -wвы уничтожите все данные и оставите badblocksвместо них шаблоны, записанные на диск.

Предупреждение: если блок выходит из строя, но еще не полностью ушел, некоторые пары проверки чтения / записи могут работать, а некоторые - нет. В этом случае неразрушающий режим может дать вам более надежную индикацию «нестабильности» блока, поскольку он выполняет два набора проверки чтения / записи (возможно - см. Маркер на шаге 4). Даже если неразрушающий режим более надежен в этом смысле, он только более надежен по совпадению . Правильный способ проверки блоков, которые не являются полностью плохими, но не могут поддерживать несколько операций чтения / записи, - это запускать badblocksнесколько раз для одних и тех же данных, используя эту -pопцию.

Вопрос 3:

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


4
Любая идея, почему по -bумолчанию 1024? Это кажется странным для меня. Почему нет 512?
Райан Дж

6
@RyanJ 1024 - минимальный размер блока для ext2. badblocks является частью e2fsprogs и изначально предназначался для заполнения списка плохих блоков файловой системы ext2. Вы должны запустить его с тем же размером блока, что и для FS, чтобы получить числа в правильном формате для mkfs.ext2. TL; DR: исторические причины, о которых вам не следует беспокоиться.
sourcejedi

BUUUTT, @Zac B сказал: «Если для -b задано значение, превышающее размер вашего блока, целостность результатов бадблоков может быть нарушена» 1024> 512. Я могу понять, как 513 может привести к тому, что некоторые байты останутся без контроля. Но, возможно, следует повторить: «Если для параметра -b задано значение, превышающее размер вашего блока, а НЕ ДАЖЕ НЕСКОЛЬКО ИХ, целостность результатов бадблоков может быть нарушена». Что скажешь на оригинальном постере, другие люди умнее меня?
Билли С.

4

1) Если ваш современный диск использует размер сектора, отличный от 512b - тогда вам нужно установить этот размер с помощью -bопции (то есть -b 4096). Без этой опции ваша проверка будет выполняться намного медленнее, поскольку каждый реальный сектор будет повторяться несколько раз (8 раз в случае сектора 4k). Также, как упомянул Оливье Дюлак в комментарии к вопросу -block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.

Опция -cподразумевает на сколько секторов триид одновременно. Это может повлиять на производительность, а значение этой производительности может зависеть от конкретной модели диска.

2) write-mode test- Насколько я понимаю, он будет проверять, есть ли у вас грубая или программная ошибка (так называемая деградация данных, «гниение битов», разрушение носителей, сектора UNC)

3) Я бы не стал доверять SMART отчету в определенный момент времени. Более важно, как ценности изменяются во времени. Также здесь представлено исследование Google Failure Trends для большого количества накопителей на жестких дисках, и вот некоторые его обсуждения . Вот цитата из исследования:

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

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

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


Первое предложение неверно, по -bумолчанию 1024. Если на вашем диске используется размер сектора, отличный от 1024, что довольно часто встречается за пределами файловых систем ext2, вам следует указать это.
Хашим

1

Я бы оставил -b и -c по умолчанию, если у вас нет особых причин их менять. Возможно, вы могли бы установить -b на 4096, если ваш диск имеет размеры блока 4k.

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

И, наконец, сколько перераспределений в SMART-секторе допустимо / следует ли немедленно заменить диски с ненулевым количеством перераспределений?

Я бы заменил диск, как только будут заменены сектора.


2
Я бы заменил диск, как только будут заменены сектора. откуда вы знаете, что блоки работают плохо при нормальной работе? Вы получаете сигнал каким-то образом?
Алексис Уилке

5
Вы должны контролировать журналы SMART.
Ярослав Рахматуллин

1
если у вас нет конкретной причины их менять . Например, размер блока отличается от стандартного 1024, что очень часто встречается?
Carcamano

1

Этот тип различий между режимом чтения бадблоков (неразрушающий) и режимом записи (деструктивный):

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

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


0

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

  • Насколько критичны данные, хранящиеся на диске?
  • Что будет потеряно, если диск внезапно остановится?
  • Резервные копии данных в другом месте?
  • Является ли диск членом RAID, где потеря диска имеет минимальное влияние?
  • Растет ли число переназначенных секторов?

Вот две ситуации, с которыми я столкнулся. У меня был RAID5 из 6 200GB дисков. После сбоя питания, который привел к миганию индикаторов, один диск показал 14 переназначенных секторов и зарегистрировал несколько ошибок. Я наблюдал за диском, и больше ошибок не было зарегистрировано, и число переназначенных секторов оставалось стабильным. Я пришел к выводу, что диск пострадал из-за переходного режима питания и не был в противном случае. Я продолжал использовать это в течение многих лет. Оригинальный RAID5 был снят с производства, но у меня есть два из этих накопителей, которые работают около 10 лет. У них есть несколько переназначенных секторов. Я использую два из них для зеркального хранения инкрементных резервных копий из моей основной резервной копии. Таким образом, основная резервная копия видит (в основном) операции чтения, а записи идут на разные устройства. Если один из этих древних дисков выходит из строя, другой должен продолжать работу. Если оба не удаются, Я заменяю их чем-то другим и снова запускаю скрипт резервного копирования. Воздействие, если один из этих дисков выходит из строя, близко к нулю, поэтому я не беспокоюсь о переназначенных секторах.

У меня был жесткий диск емкостью 2 ТБ, который был одним из пары зеркальных дисков и начал расти переназначенные сектора. Сначала это были десятки, потом сотни, потом тысячи. Это было в течение нескольких лет. Другой диск в паре оставался работоспособным, и фактически медленно сбойный производный не был удален из массива. В конце концов я заменил оба диска на диски по 6 ТБ, и растущее число переназначенных секторов перестало быть проблемой. У меня все еще есть диск, и он все еще «работает», даже с примерно 4500 переназначенными секторами. Я поместил такие диски в тестовую систему (как член RAID), чтобы посмотреть, что произойдет, когда один из них действительно умрет. У меня была пара возможностей поработать с этим, и при любых обстоятельствах замена прошла без драмы.

У меня произошел сбой диска на моем основном резервном файловом сервере. Он не выдал никакого дополнительного предупреждения, он просто перестал отвечать на команды SATA. Это был член ZFS RAIDZ2, и я заменил его без всякой драмы. Фактически, на моем тестовом сервере я заменил неисправные диски без перезагрузки или перезагрузки сервера.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.