У меня есть сервер Linux (CentOS 5.5) с двумя идентичными жесткими дисками IDE. Я использовал программный RAID (mdadm) для создания зеркал для каждой файловой системы, чтобы любой жесткий диск мог выйти из строя и данные не были потеряны.
Сегодня вышел из строя один из моих жестких дисков. Вся суть RAID должна состоять в том, чтобы позволить системе продолжать работать, когда это происходит; но вместо этого произошло то, что консоль начала извергать одни и те же 4 строки снова и снова:
hdb: task_out_intr: status=0x61 { DriveReady DeviceFault Error }
hdb: task_out_intr: error=0x04 { DriveStatusError }
ide: failed opcode was: unknown
ide0: reset: success
Консоль была непригодна для использования из-за большого количества ошибок. Мне удалось подключиться по SSH, но первая команда, которую я попробовал, просто зависла. Я снова подключился по SSH и попытался перезагрузиться, но он тоже завис. В конечном итоге мне пришлось физически перезагрузить машину.
Я знаю, как удалить вышедший из строя диск из MD, заменить его и т. Д. Но если машина заблокируется и станет непригодной для использования в этой ситуации, кажется, в первую очередь лишается смысла наличия зеркал RAID.
Неужели ядро Linux всегда так себя ведет в этой ситуации? Или есть какой-то способ настроить ядро так, чтобы при выходе из строя жесткого диска оно ограничивало количество возникающих ошибок и не препятствовало использованию машины и чистой перезагрузке?
Я не сталкивался с этим, но поскольку вы используете программный RAID, это возможно что из-за сбоя жесткого диска что-то мешает вводу-выводу на контроллере диска, поэтому вы получаете другие сбои, такие как блокировка команд.
Данные должны быть неповрежденными (если они не повреждены, и в этом случае вы скопировали повреждение). Если сам диск вышел из строя, вы сможете выключить питание, удалить неисправный диск, снова включить питание и, надеюсь, все вернется в рабочее состояние со сломанным зеркалом.
Мне кажется, что природа сбоя не очень хорошо сочетается с контроллером. Выньте неисправный диск. Держать его там не принесет никакой пользы и может принести больше вреда.
Когда на ID-диске возникает ошибка чтения, в большинстве случаев он просто отказывается отвечать на команду чтения.
Ваше сообщение об ошибке (отображается hdb
) означает, что оба жестких диска подключены к одному кабелю. Это может быть причиной вашей проблемы: отказавший диск заблокировал всю шину ide - ядро linux просто имеет ждать таймаута и, следовательно, не иметь доступа к рабочему диску.