19

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

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

-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 ответа3

18

Вопрос 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. Запишите исходные данные обратно на диск.
    • Я не уверен в этом, но он также, вероятно, перечитывает и проверяет, что исходные данные были успешно записаны, и все еще проверяет контрольную сумму на то же самое.

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

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

Вопрос 3:

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

2

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 подразумевает количество секторов tryid одновременно. Это может иметь некоторое влияние на производительность, и значение этой производительности может зависеть от конкретной модели диска.

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

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

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

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

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .