Argentum (pargentum) wrote in ru_root,
Argentum
pargentum
ru_root

Category:

Как я победил бэд-блок

Несколько колов времени назад я жаловался на проблему с бэд блоками на дисковом массиве.

Меня тут же стали пугать всякими ужасами насчет "если бэдблоки полезли за смарт" и "восстановления данных из битых lvm".  На самом деле, smartctl показывает Reallocated_Sector_Ct 12, и это количество не росло.  Также не росло и количество плохих блоков.
Все это продолжалось больше месяца, но сообщения в логах и опасения, что будет, если на эти бэды попадут метаданные, все-таки заставили меня действовать.

Я попытался разлить данные по другим машинам, запустил tar ... | ssh ... dd of=musom.tar.bz2 и обнаружил файл, чтение которого давало i/o error (tar говорил file truncated to ... и продолжал дальше).  Как я и подозревал, это был старый бэкап, потерю которого я вполне мог перенести. 
Я запустил dd if=[Этот файл] of=/dev/zero conv=noerror и получил пять сообщений i/o error, ровно по числу бэдов, находимых через badblocks и smartctl.
Дальше я запустил
dd conv=notrunc,noerror if=/dev/zero of=badblock.file count=61577512
Смысл в том, чтобы перезаписать данные файла нулями в надежде, что либо смарт редиректнет эти блоки, либо, если это софтовые бэды, что они исчезнут при записи.
Приблизительно в районе первого бэда, dd подвис (не реагировал на SIGUSR1), в логе появилось сообщение о сбросе дискового контроллера, потом dd отвалился с сообщением i/o error (оказывается, conv=noerror работает только на ошибки чтения).
Я еще раз запустил
dd conv=notrunc,noerror seek=27957670 if=/dev/zero of=badblock.file count=33619842
В логе прошли еще пять сообщений о сбросе контроллера, но dd прошел нормально и прописал остаток файла нулями до конца.
Сообщения в логе об Offilne Sectors прекратились. badblocks ничего не показывает.  Что меня больше удивило, Reallocated_Sector_Ct не увеличился, из чего я делаю вывод, что это были "софт бэды", а вовсе не дефект поверхности.

На самом деле, я подозреваю, что, если бы бэды попали на метаданные, я бы так легко не отделался, но, с другой стороны, метаданные должны были бы быть перезаписаны при проходе fsck.
Tags: hardware, linux
Subscribe

  • HP StorageWorks D2700

    парни, а к каким контроллерам можно подключать сей девайс? Родная документация ведет на ныне мертвый http://www.hp.com/go/D2000. В том месте где…

  • vmware player, beep!!!111

    кривой вопрос. а как запретить вмварь-плееру издавать любые звуки, чтоб при таб-таб-таб в виртуальном линухе оно не пищало? совет ссайта афтырей про…

  • dhcp

    а у вас на практике бывали сети, где было не порядка 256, а порядка 64к компов в одной подсети которым надо раздать ip адреса? я не про какой-нибудь…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 14 comments

  • HP StorageWorks D2700

    парни, а к каким контроллерам можно подключать сей девайс? Родная документация ведет на ныне мертвый http://www.hp.com/go/D2000. В том месте где…

  • vmware player, beep!!!111

    кривой вопрос. а как запретить вмварь-плееру издавать любые звуки, чтоб при таб-таб-таб в виртуальном линухе оно не пищало? совет ссайта афтырей про…

  • dhcp

    а у вас на практике бывали сети, где было не порядка 256, а порядка 64к компов в одной подсети которым надо раздать ip адреса? я не про какой-нибудь…