Назад | Перейти на главную страницу

Плохой сектор на диске вызывает сбой всего сервера

Жесткий диск нашего выделенного сервера недавно был диагностирован на наличие сбойных секторов, и каждый раз, когда к определенным данным на диске собирается доступ, весь сервер перестает отвечать, прежде чем я выполню перезапуск через панель робота. Мы попросили нашего поставщика серверов установить новый диск, и они это сделали. Теперь я хочу жестко скопировать все на новый диск (поскольку старый диск также все еще подключен), поэтому я запускаю сервер в режиме восстановления (загрузка по сети) и запускаю следующее на сервере, загружаемом по сети, через SSH (root) :

ddrescue -d -f -r3 /dev/sdb /dev/sda /home/ddrescue.log

Примерно через 5 минут сервер перестает отвечать и даже не отвечает на SSH (как если бы порт был закрыт).

Что могло вызвать это? как я могу предотвратить то, что сервер перестанет работать, когда некоторые неисправные секторы вот-вот станут доступны.

Вам следует попробовать включить TLER - временное исправление ошибок

Без него диск с поврежденными секторами будет пытаться прочитать затронутые в течение 30+ секунд, что может привести к сбою всей дисковой подсистемы.

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

У вас есть список плохих блоков?

Как насчет создания логической резервной копии (например, с помощью tar)?

Я бы подошел к этому, но не тестировал:

  • как-нибудь получить список плохих блоков (fsck.ext4 с участием -c и / или -l)?
  • имея список плохих блоков, найдите файлы, на которые влияет debugfs:
    icheck block ...
          Print a listing of the inodes which use the one or  more  blocks
          specified on the command line.
  • создать логическую резервную копию с tar --exclude...

Удачи. : -s