12

Чем полное сканирование поверхности чтения / записи по «плохим блокам» отличается от встроенного самотестирования SMART Extended?

Похоже, что они оба являются полными сканированиями, так почему для проверки диска емкостью 1 ТБ badblocks -vws 3 дня, в то время как SMART делает это за 2,5 часа (по крайней мере, это время, которое мне дал Smartmon)?

3 ответа3

11

Поверхностный тест SMART почти наверняка является единственным и, безусловно, неразрушающим, проходом чтения. Как было указано, он также является внутренним для привода; с возможным исключением второстепенных контрольных данных, данные не передаются на хост или с хоста во время теста.

С другой стороны, badblocks -w делает четыре прохода по диску, каждый с одной записью и одним чтением. Уже одно это составляет 8-кратную разницу во времени, затраченном на тестирование, плюс задержку вращения. Так как это программное обеспечение работает на хосте, все эти данные должны быть перетасованы через интерфейс диска в ОЗУ и обработаны программным обеспечением (в нашем случае, бадблоками).

Если мы возьмем задержку вращения в худшем случае, равную 1 × (диск должен сделать один полный оборот после записи данных, чтобы прочитать их обратно, и это почти то, что вы увидите, если вам нравится, когда плохие блоки сначала заполняют всю диск, а затем прочитать все обратно, вместо того, чтобы выполнять ввод-вывод по одной физической дорожке за раз, что с LBA практически невозможно), мы получаем худший случай (1+1) × 8 × = 16 × столько времени, сколько необходимо для завершить операцию. 16 × 2,5 ч = 40 ч, что, безусловно, соответствует вашим цифрам и все еще предполагает, что мы имеем дело только с хранением данных на диске и что это происходит так же быстро, как диск может поддерживать последовательный ввод / вывод.

4

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

badblocks -vws запрашивает сектор записи, затем читает и проверяет операцию. Каждая запись и чтение добавляет оборот диска на операцию плюс время для передачи данных через интерфейс SATA плюс обработка хост-ПК. Индикатор активности жесткого диска должен гореть большую часть времени.

1

https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs

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

Поэтому, когда это возможно, используйте разрушительные тщательные тесты Badblocks.

Редактировать: Под деструктивным я подразумевал, что многие современные жесткие диски имеют рабочую нагрузку 180 ТБ / год, то есть на жестком диске 12 ТБ, вы бы взяли 96 ТБ рабочей нагрузки, если бы вы выполнили полный набор тестов на наличие бадблоков только для того, чтобы протестировать его. Это может быть 48 ТБ, если под рабочей нагрузкой они подразумевают только записи, что может иметь место, но это плохо документировано.

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