Я хочу использовать 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-секторе допустимо / следует ли немедленно заменить диски с ненулевым количеством перераспределений?
linux
hard-drive
bad-blocks
Йорен
источник
источник
Ответы:
Вопрос 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
выполняет следующие действия:-p
опции, но обычно не обязательный).В режиме destructive (
-w
)badblocks
выполняются только шаги 2 и 3 выше. Это означает, что количество операций чтения / записи, необходимых для проверки целостности данных, уменьшается вдвое. Если блок плохой, данные будут ошибочными в любом режиме. Конечно, если вы заботитесь о данных, которые хранятся на вашем диске, вы должны использовать неразрушающий режим, так как-w
вы уничтожите все данные и оставитеbadblocks
вместо них шаблоны, записанные на диск.Предупреждение: если блок выходит из строя, но еще не полностью ушел, некоторые пары проверки чтения / записи могут работать, а некоторые - нет. В этом случае неразрушающий режим может дать вам более надежную индикацию «нестабильности» блока, поскольку он выполняет два набора проверки чтения / записи (возможно - см. Маркер на шаге 4). Даже если неразрушающий режим более надежен в этом смысле, он только более надежен по совпадению . Правильный способ проверки блоков, которые не являются полностью плохими, но не могут поддерживать несколько операций чтения / записи, - это запускать
badblocks
несколько раз для одних и тех же данных, используя эту-p
опцию.Вопрос 3:
Если SMART перераспределяет сектора, вам, вероятно, следует рассмотреть возможность замены диска как можно скорее. Диски, которые теряют несколько секторов, не всегда теряют их, но причина обычно в том, что сильно используемый диск становится магнитно-мягким, или неисправные головки / двигатели, приводящие к неточным или неудачным операциям чтения / записи. Конечно, окончательное решение остается за вами: исходя из ценности данных на диске и необходимой вам надежности систем, на которых вы работаете, вы можете решить сохранить их. У меня есть несколько дисков с известными неисправными блоками, которые годами вращались с предупреждениями SMART на моем файловом сервере, но их резервное копирование выполнялось по расписанию, так что я мог справиться с полным отказом без особой боли.
источник
-b
умолчанию1024
? Это кажется странным для меня. Почему нет512
?ext2
. badblocks является частью e2fsprogs и изначально предназначался для заполнения списка плохих блоков файловой системы ext2. Вы должны запустить его с тем же размером блока, что и для FS, чтобы получить числа в правильном формате для mkfs.ext2. TL; DR: исторические причины, о которых вам не следует беспокоиться.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 для большого количества накопителей на жестких дисках, и вот некоторые его обсуждения . Вот цитата из исследования:
Что касается упоминания другим о замене диска - возможно, у вас проблема не с жестким диском, а с деградацией данных в режиме без вывода сообщений (гниение битов, разрушение носителей, сектора UNC). В этом случае нет смысла заменять диск, но вместо этого полезно выполнять чтение / запись одних и тех же данных обратно на диск. Вы можете посмотреть здесь, как это можно решить.
Если у вас возникла серьезная ошибка, вы можете попытаться переразбить диск так, чтобы плохая область находилась вне каких-либо разделов. Для меня такой подход был полезен, и такой плохой диск долгое время использовался без проблем.
источник
-b
умолчанию 1024. Если на вашем диске используется размер сектора, отличный от 1024, что довольно часто встречается за пределами файловых систем ext2, вам следует указать это.Я бы оставил -b и -c по умолчанию, если у вас нет особых причин их менять. Возможно, вы могли бы установить -b на 4096, если ваш диск имеет размеры блока 4k.
Я бы посоветовал вам сначала запустить badblocks с неразрушающим тестом rw. Если он обнаружит поврежденные сектора, диск сломан и его необходимо заменить. Если он НЕ находит плохих блоков на неразрушающем, но вы все еще подозреваете, что он имеет плохие блоки, запустите деструктивный тест rw.
Я бы заменил диск, как только будут заменены сектора.
источник
Этот тип различий между режимом чтения бадблоков (неразрушающий) и режимом записи (деструктивный):
Диск перераспределяет поврежденный сектор только при сбое записи. Ошибки чтения файлов исправляются только тогда, когда делается попытка перезаписи файла. В противном случае. плохой блок остается частью файла, если предположить, что вы сможете что-то восстановить. Ошибки чтения для таблиц разделов могут быть «исправлены» только путем запуска поврежденных блоков в режиме записи и воссоздания раздела
Таким образом, режим чтения скажет вам, где находятся плохие блоки, но ничего не сможет с ними сделать. Режим записи проверяет работоспособность каждого сектора и заставляет диск перераспределять поврежденный блок, но за счет уничтожения данных. Выбирайте.
источник
Чтобы ответить на ваш второй вопрос о переназначенных секторах, это зависит. Я говорю из контекста домашнего пользователя, который (иногда) следит за такими вещами.
Вот две ситуации, с которыми я столкнулся. У меня был RAID5 из 6 200GB дисков. После сбоя питания, который привел к миганию индикаторов, один диск показал 14 переназначенных секторов и зарегистрировал несколько ошибок. Я наблюдал за диском, и больше ошибок не было зарегистрировано, и число переназначенных секторов оставалось стабильным. Я пришел к выводу, что диск пострадал из-за переходного режима питания и не был в противном случае. Я продолжал использовать это в течение многих лет. Оригинальный RAID5 был снят с производства, но у меня есть два из этих накопителей, которые работают около 10 лет. У них есть несколько переназначенных секторов. Я использую два из них для зеркального хранения инкрементных резервных копий из моей основной резервной копии. Таким образом, основная резервная копия видит (в основном) операции чтения, а записи идут на разные устройства. Если один из этих древних дисков выходит из строя, другой должен продолжать работу. Если оба не удаются, Я заменяю их чем-то другим и снова запускаю скрипт резервного копирования. Воздействие, если один из этих дисков выходит из строя, близко к нулю, поэтому я не беспокоюсь о переназначенных секторах.
У меня был жесткий диск емкостью 2 ТБ, который был одним из пары зеркальных дисков и начал расти переназначенные сектора. Сначала это были десятки, потом сотни, потом тысячи. Это было в течение нескольких лет. Другой диск в паре оставался работоспособным, и фактически медленно сбойный производный не был удален из массива. В конце концов я заменил оба диска на диски по 6 ТБ, и растущее число переназначенных секторов перестало быть проблемой. У меня все еще есть диск, и он все еще «работает», даже с примерно 4500 переназначенными секторами. Я поместил такие диски в тестовую систему (как член RAID), чтобы посмотреть, что произойдет, когда один из них действительно умрет. У меня была пара возможностей поработать с этим, и при любых обстоятельствах замена прошла без драмы.
У меня произошел сбой диска на моем основном резервном файловом сервере. Он не выдал никакого дополнительного предупреждения, он просто перестал отвечать на команды SATA. Это был член ZFS RAIDZ2, и я заменил его без всякой драмы. Фактически, на моем тестовом сервере я заменил неисправные диски без перезагрузки или перезагрузки сервера.
Еще одно замечание: у меня есть резервные копии всех важных данных на сайте и вне сайта. Если какая-либо одна система потеряна, в другом месте есть две копии данных.
источник