Как диагностировать неисправный диск на сервере с контроллером хранилища raid?

У меня проблема с одним из моих Dell PowerEdge R210. Машина с Centos 6, сегодня системные журналы начали сообщать о сбое жесткого диска.

6 января 03:20:12 ядро ​​centos6: LSI Информация журнала отладки 31080000 для канала 0 id 0 6 января 03:20:12 ядро ​​centos6: sd 0:1:0:0: [sda] Необработанный смысловой код 6 января 03:20:12 centos6 kernel: sd 0:1:0:0: [sda] Результат: hostbyte= неверный driverbyte=DRIVER_SENSE 6 января 03:20:12 centos6 kernel: sd 0:1:0:0: [sda] Sense Key: Средняя ошибка [актуально] 6 января 03:20:12 ядро ​​centos6: информация fld=0x21a9055 6 января 03:20:12 ядро ​​centos6: SD 0:1:0:0: [sda] Add. Смысл: не восстановленная ошибка чтения 6 января 03:20:12 ядро ​​centos6: SD 0: 1: 0: 0: [SDA] CDB: чтение (10): 28 00 02 1a 90 20 00 00 38 00 янв 6 03:22:17 ядро ​​centos6: mptbase: ioc0: LogInfo (0x31080000): оригинатор = {PL}, код = {SATA NCQ сбой всех команд после ошибки}, подкод (0x0000) cb_idx mptscsih_io_done 6 января 03:22:17 centos6 ядро: журнал отладки LSI информация 31080000 для канала 0 id 0 Jan 6 03:22:17 centos6 ядро: mptbase: ioc0: LogInfo (0x31080000): оригинатор = {PL}, код = {SATA NCQ сбой всех команд после ошибки}, подкод (0x0000) cb_idx mptscsih_io_done 6 января 03:22:17 ядро ​​centos6: LSI Информация журнала отладки 31080000 для канала 0 id 0 6 января 03:22:17 ядро ​​centos6: mptbase: ioc0: LogInfo (0x31080000): оригинатор = {PL}, код = {SATA NCQ Сбой всех команд после ошибки}, подкод (0x0000) cb_idx mptscsih_io_done 6 января 03:22:17 ядро ​​centos6: LSI Информация журнала отладки 31080000 для канала 0 id 0 6 января 03:22:17 ядро ​​centos6: mptbase: ioc0: LogInfo(0x31080000): Originator={PL}, Code={SATA NCQ Сбой всех команд после ошибки}, SubCode(0x0000) cb_idx mptscsih_io_done 6 января 03:22:17 ядро ​​centos6: LSI Информация журнала отладки 31080000 для канала 0 id 0 6 января 03:22:17 ядро ​​centos6: mptbase: ioc0: LogInfo (0x31080000): Originator = {PL }, Code = {SATA NCQ Сбой всех команд после ошибки}, SubCode(0x0000) cb_idx mptscsih_io_done 6 января 03:22:17 centos6 kernel: LSI Информация журнала отладки 31080000 для канала 0 id 0 6 января 03:22:17 centos6 kernel: SD 0: 1: 0: 0: [sda] Необработанный код смысла 6 января 03:22:17 ядро ​​centos6: SD 0: 1: 0: 0: [sda] Результат: hostbyte= неверный driverbyte=DRIVER_SENSE 6 января 03:22: 17 ядро ​​centos6: sd 0:1:0:0: [sda] Sense: средняя ошибка [текущий] 6 января 03:22:17 ядро ​​centos6: Info fld=0x21a7d89 6 января 03:22:17 ядро ​​centos6: sd 0:1:0:0: [sda] Add. Смысл: Невосстановленная ошибка чтения 6 января 03:22:17 в ядре centos6: SD 0: 1: 0: 0: [SDA] CDB: Чтение (10): 28 00 02 1a 7d 80 00 00 18 00 Янв 6 03:22:19 centos6 kernel: sd 0:1:0:0: [sda] Необработанный смысловой код 6 января 03:22:19 centos6 kernel: sd 0:1:0:0: [sda] Результат: hostbyte= неверный driverbyte=DRIVER_SENSE
Jan  6 03:22:19 centos6 kernel: sd 0:1:0:0: [sda] Sense Key: средняя ошибка [текущий] 6 января 03:22:19 centos6 kernel: Info fld=0x21a7dc0 6 января 03:22:19 Centos6 ядро: SD 0: 1: 0: 0: [SDA] Добавить. Смысл: не восстановленная ошибка чтения 6 января 03:22:19 в ядре centos6: sd 0:1:0:0: [sda] CDB: чтение (10): 28 00 02 1a 7d c0 00 00 80 00 6 января 03:28:05 ядро ​​centos6: sd 0:1:0:0: [sda] Необработанный код смысла 6 января 03:28:05 ядро ​​centos6: sd 0:1:0:0: [sda] Результат: hostbyte= неверный driverbyte=DRIVER_SENSE янв. 6 03:28:05 ядро ​​centos6: sd 0:1:0:0: [sda] Sense Key: средняя ошибка [текущий] 6 января 03:28:05 ядро ​​centos6: Info fld=0x21a7d88 6 января 03:28:05 Centos6 ядро: SD 0: 1: 0: 0: [SDA] Добавить. Смысл: не восстановленная ошибка чтения 6 января 03:28:05 ядро ​​centos6: sd 0:1:0:0: [sda] CDB: чтение (10): 28 00 02 1a 7d 88 00 00 08 00 6 января 03:28:09 ядро ​​centos6: sd 0:1:0:0: [sda] Необработанный код смысла 6 января 03:28:09 ядро ​​centos6: sd 0:1:0:0: [sda] Результат: hostbyte= неверный driverbyte=DRIVER_SENSE

Теперь я предполагаю, что на этой машине установлен контроллер RAID, но я не знаю, какой тип RAID настроен (если есть).

Вывод из lspci:

01: 00.0 Контроллер хранилища SCSI: LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (версия 08)

Так что это мой вопрос: есть ли способ диагностировать эту проблему без перезагрузки компьютера из командной строки Linux? На системном уровне я вижу только логический диск, а не жесткие диски, которые подключены к RAID, что обычно хорошо, но теперь я хочу проверить, есть ли RAID, и какие жесткие диски являются членами этого RAID, и какой жесткий диск выходит из строя.

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

2 ответа

Если вы не хотите перезапускать свою систему для установки инструментов производителя, вы, в основном, будете сидеть здесь упрямо, пока машина полностью не умрет.
На этом этапе не имеет значения, что вы хотите. Машина будет отключена, вероятно, навсегда. Вам не придется беспокоиться о перезапуске, потому что вы должны будете сделать это как часть замены жестких дисков и восстановления из резервных копий. (У вас есть резервные копии, верно?).

Лекция окончена.

Если вы не хотите устанавливать диагностические инструменты производителя, вам остается только подойти к машине и найти диск с мигающим красным (или желтым) индикатором неисправности. Замени это.
Это, конечно, предполагает RAID-1, RAID-5, RAID-6 или другую конфигурацию, которая позволяет заменить один неисправный диск (и что у вас есть только один неисправный диск). Если у вас нет такой конфигурации, или отказало больше дисков, чем уровень отказоустойчивости вашей системы, вы вернулись к "замене всех дисков и восстановлению из резервной копии".

Не имея резервных копий, вы застряли с " СДЕЛАЙТЕ РЕЗЕРВНЫЕ КОПИИ, а затем, если вы не получили всего, что вам нужно, позвоните в компанию по восстановлению данных и попытайтесь спасти то, что вы можете".

На диске есть средние ошибки, что означает, что есть данные, которые невозможно прочитать. Информация журнала LSI (0x31080000) говорит о том, что последующие операции ввода-вывода были неудачными из-за того, как SATA выполняет восстановление после ошибок. Это не проблема сама по себе.

У вас плохой диск, и вы уже потеряли данные, если у вас есть RAID, то он тоже не работает. Скорее всего, хотя у вас нет RAID вообще, чтобы узнать, что вы должны посмотреть на вывод lsscsi, он сообщит вам марку и модель устройства /dev/sda. Если он говорит о жестком диске (WD, Hitachi, Seagate), у вас там одинокий жесткий диск, если он говорит LSI, у вас есть устройство RAID.

В любом случае вы уже потеряли данные, поскольку, даже если это устройство RAID, оно не смогло восстановиться из базовой ошибки среднего уровня и вернуло также среднюю ошибку в конце.

Что делать после этого?

Вам нужно найти, какие файлы вы потеряли, попробуйте прочитать их один за другим (find, xargs и cat - хорошая связка для этого) и посмотреть, какие файлы не могут быть прочитаны. Вам нужно будет взять их из резервной копии.

Чтобы восстановить сектора, просто запишите на них снова, и это исправит текущую ошибку носителя, вы можете просто удалить файлы или записать поверх них, и файловая система сделает это в свое время.

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

Если вы сомневаетесь, и вы заботитесь о данных, замените диск. Диск со средними ошибками, скорее всего, будет плохим, чем диск без ошибок.

Другие вопросы по тегам