У меня есть массив из 5 накопителей WD Red емкостью 1 ТБ во внешнем корпусе на мультиплексоре SATA. Это подается в настольную машину с контроллером мультиплексора SATA.
Примерно через год службы (это произошло дважды), массив начнет сбрасываться, как в этом видео. Нет никаких признаков того, что какой-либо конкретный диск неисправен, просто корпус отключается, и все диски отключаются в массиве.
У меня есть два таких корпуса, и ошибка всегда связана с избыточным массивом, когда я перемещаю их из одного в другое. Корпуса оставались неизменными в течение многих лет, как и интерфейсные карты, но новые установленные диски решили проблему еще на один год.
Это могут быть десятки вещей: от шумного источника питания, медленно убивающего цепи питания диска, до плохой реализации ОС ZFS, но так сложно понять, с чего начать. Какая стратегия позволила бы мне выяснить, в чем проблема на самом деле?
ОС: CentOS 7.0, ядро: 3.10.0
Корпус: SiI 3726 мультиплексор
Интерфейсная карта: демультиплексор SiI 3132
Жесткие диски: WD10EFRX
Сообщения:
Когда происходит сброс:
[ttt.tttt] ata4.03: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ttt.tttt] ata4.03: failed command: WRITE DMA EXT
[ttt.tttt] ata4.03: cmd 35/00:.. ...:00/e0 tag 3 dma 144688 out
[ttt.tttt] ata4.03: status: { Busy }
[ttt.tttt] ata4.03: error: { ICRC UNC AMNF IDNF ABRT }
Как только zpool полностью остановился:
[ttt.tttt] INFO: task txg_sync:xxxxx blocked for more than 120 seconds
[ttt.tttt] INFO: task zpool:xxxxx blocked for more than 120 seconds
Как только вторая произошла в ответ на команды терминала, такие как
$ zpool status
система по сути бесполезна и требует полной перезагрузки.
Проблема не связана с падением напряжения на накопителях, как видно из последнего видео. Я думаю, что это ключевая информация, которую сбрасывает сама коробка, все огни, даже собственный индикатор питания сбрасывается.
Сообщения для dmesg огромные, слишком длинные, чтобы их можно было прикрепить.
Выход из badblocks
:
$ badblocks -vn /dev/sdp1
irq_stat 0x00060002, device error via SDB FIS
SError: { Handshk }
failed command: WRITE FPDMA QUEUED
cmd 61/...
res 41/... ...Emask 0x410 (ATA bus error) <F>
status: { DRDY ERR }
error: { ICRC ABRT }
И это происходит одинаково для всех 5 дисков в массиве. Это как коробка перегружается и сбрасывается сама.
Обновление: 12.06.2017
Все диски были перенесены во второй корпус по соединению USB3 вместо eSATA.
- Корпус: ICY BOX IB-3810U3
- Чип мультиплексора: ASMedia ASM1074L
- Серверная материнская плата USB3 хоста: Gigabyte GA-B85-HD3 SKT 1150
При перемещении всех дисков в новый корпус команда badblocks
запускалась на каждом диске без единой ошибки. Затем пул был импортирован и запущен скраб. Ошибка не найдена и очистка завершена успешно. Однако сегодня появилось сообщение для всех 5 дисков (было невозможно определить, были ли они дисками этого пула / резервуара / массива):
WARNING: Your hard drive is failing
Device: /dev/sdk [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdl [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdm [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdn [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdo [SAT], unable to open device
После этого при попытке составить список содержимого накопителя он заблокировал терминал. Новый терминал заблокирован по любой команде zpool
. top
списки txg_sync
и запас процессов z_rd_int_x
которые все используют процессор. Два других пула успешно обслуживают файлы через SAMBA, причем один из них продолжает восстанавливать сам себя (о чем свидетельствуют только индикаторы HD) при зависании состояния zpool status
.
данные smartctl
: 12/12/2017
Согласно комментарию, ниже smartctl
данные smartctl для UDMA_CRC_Error_Count
.
Для второй итерации массива в настоящее время не удается:
4193, 4030, 3939, 2869, 3977
Для исходного массива (с заменой третьего диска):
3003, 3666, 0, 4536, 5309
Для полосы RAID0 в том же корпусе и возможности подключения
523, 504, 526, 553, 476
Для зеркала ZFS с горячим резервом, размещенного на хост-машине:
0, 0, 0
На диске Seagate Archive, кажущаяся ерунда. :
Temperature_Celsius UDMA_CRC_Error_Count Head_Flying_Hours
40 (0 16 0 0 0) 0 57501022168585
Это потенциально говорит о том, что eSATA и USB 3.0 по своей природе шумные и повреждение данных неизбежно.