Внешне подключенный пул ZFS зависает, никаких признаков ошибок на дисках

484
J Collins

У меня есть массив из 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данные для 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 по своей природе шумные и повреждение данных неизбежно.

4
Драйвер ZFS привязан к вашему ядру. Текущее ядро ​​4.14 у вас есть эта версия? Чем более актуально ваше ядро, тем менее вероятно, что это драйвер ZFS. ** dmesg ** записывает что-то другое в эти периоды? cybernard 6 лет назад 1
Я использую CentOS, и я считаю, что версия, по `uname -r`, 3.10.0. Однако он сообщает, что он полностью обновлен. `dmesg` действительно сходит с ума, фактически в любом открытом окне терминала сообщения чередуются с обычным выводом экрана, сообщая о проблемах с оборудованием, 'действие 0x6 заморожено' и т. д. J Collins 6 лет назад 0
Вы попали в дистрибутив CentOS, они говорят, что 3.10.0 является текущей, но это не так. http://www.kernel.org является официальным источником. Можно загрузить и скомпилировать новое ядро ​​самостоятельно. Они говорят, что 3.10 - это EOL или конец жизни. Также 3.10.108, а не 3.10.0, является новейшей версией этой ветки. Если вы собираетесь использовать новое ядро ​​4.14.3, это ваш лучший вариант. Одна из причин, по которой я перешел на OpenSuse с репо вьюнок, заключается в том, что они редко отстают более чем на 1 месяц. cybernard 6 лет назад 0
Хотя я ценю этот комментарий и с тех пор исследовал установку нового ядра в CentOS, есть ли аспект в новых версиях, который, по вашему мнению, может быть более надежным и избежать этой проблемы? J Collins 6 лет назад 0
Ядро буквально обновлялось десятки раз с момента вашего старого ядра. Хотя я не читал каждый журнал изменений, из своего опыта я знаю, насколько важна новая версия ядра. Я постоянно обновляю 5+ linux VM. У вас все еще есть проблема? Изменились ли события dmesg? cybernard 6 лет назад 0
Я обновил вопрос, добавив больше информации, по-видимому, заметные выдержки из dmesg, а также видео с живого выхода, когда происходит сбой. Обратите внимание, что сообщения на экране не запрашиваются, они перекрывают экран терминала. J Collins 6 лет назад 0
«МККК»; // ОШИБКА ИНТЕРФЕЙСА CRC, "UNC"; // НЕ УКАЗАНО, "AMNF"; // АДРЕСНАЯ МАРКА НЕ НАЙДЕНА и "IDNF"; // ID NOT FOUND Звук, как будто один из дисков имеет по крайней мере 1, если не больше поврежденных секторов. cybernard 6 лет назад 0
Вы сделали ** Zpool Scrub Rpool **? Примечание. Это потребляет все время простоя плана ввода-вывода соответственно. cybernard 6 лет назад 0
Является ли rpool специальным ключевым словом? Обычно, когда он находится в плохом состоянии, все операции ввода-вывода приостанавливаются в массиве. В этом случае любой вызов «zpool» теперь блокирует этот терминал, и мне нужен новый «Alt F2» и т. Д. Также очистка, похоже, прерывается при перезапуске корпуса привода. Возможно, мультиплексор плохо обрабатывает диск с плохими секторами? J Collins 6 лет назад 0
Я согласен, что все светодиоды погасли ... хотя это сильно зависит от того, что их ведет. С какими питающими рельсами прицел подключен? Я подозреваю, что ссылки SATA падают - можете ли вы подключить диски напрямую и удалить корпус из уравнения? Attie 6 лет назад 0
Правильно ли я понимаю, что вы переместили все 5 дисков в другой корпус, и проблема все еще возникает? Attie 6 лет назад 0
Область действия находится на шинах +5 и +12 В, идущих прямо от источника питания. Я имею в виду, что после этого может быть плохое соединение, но эти напряжения выглядят надежными. Одна вещь, которую я получил от анализа этих видео, состоит в том, что все индикаторы дисковода срабатывают за доли секунды до того, как он выходит из строя. Вот почему я подозревал блок питания, но, кажется, хорошо. В прошлом я переместил некорректно работающий массив в новый идентичный корпус, и он взял на себя вину за это. Я собираюсь попробовать переместить этот массив в другую модель коробки. Исторически, хотя вина переместилась в эту коробку также. J Collins 6 лет назад 0
Первый тест одного диска в этой новой коробке с использованием badblocks пока выглядит солидно. J Collins 6 лет назад 0
@JCollins Вероятно, нужно заменить rpool именем вашего пула или тома. cybernard 6 лет назад 0
Я запустил скраб и обновил вопрос новой информацией. J Collins 6 лет назад 0
Другие вещи, которые нужно проверить, это вывод `smartctl` (counter). Некоторые счетчики могут указывать на проблемы, такие как неисправные кабели SATA ... Gert van den Berg 6 лет назад 0
@GertvandenBerg Я обновил вопрос данными `smartctl` для` UDMA_CRC_Error_Count`, насколько я понимаю, это лучший индикатор сбоя межсоединения. J Collins 6 лет назад 0
@JCollins: Исправьте .... Были некоторые ошибки ... Если они увеличивают кабели, может быть проблема. (Это количество времени жизни, ненулевое значение просто означает, что в жизни драйвера были некоторые ошибки). Ненулевые значения обычно показывают, что кабели могут быть проблематичными. (SATA / SCSI через USB, кажется, обычен для USB3, но не уверен, что это может привести к увеличению количества ...) Gert van den Berg 6 лет назад 0
Счетчик ошибок архивного диска, кажется, корректен, летные часы, вероятно, не ... (Ot это фактически миллисекунды или что-то подобное вместо часов) Gert van den Berg 6 лет назад 0

1 ответ на вопрос

1
Gert van den Berg

Статистика SMART показывает, что на жестких дисках были обнаружены ошибки CRC в их ссылках. (Чтобы убедиться, что это не проблема, которая была ранее решена, вы должны отслеживать значение с UDMA_CRC_Error_Countтечением времени - это сумма ошибок за время жизни диска)

Случаи, когда я ранее видел это, были связаны с плохими кабелями SATA. Замена кабеля решила проблему (счетчики все еще имеют свои значения, но значение остается постоянным). Это довольно сложная установка, и проблема может быть в кабеле, в mux / demux или где-нибудь в корпусе.

Я подозревал плохие кабели. Имея груз запчастей, заменил их все. Не так с USB 3.0, так как в этот момент я обесценил кабели как источник ошибки. Являются ли эти микросхемы мультиплексора / демультиплексора достаточно близкими к электрическим стандартам и даже имеют стандартную допустимую частоту появления ошибок? J Collins 6 лет назад 0
Если бы драйверы были перенесены в корпус USB, они все равно имели бы счетчик ошибок из предыдущих выпусков ... (* изменение * в значениях важно) Я не особенно знаком с мультиплексорами / демультиплексорами. Это может быть даже компоновка печатной платы ... Это сложная установка со многими компонентами - в идеале каждый элемент необходимо тестировать отдельно, чтобы определить точную проблему. (Я бы предположил, что расширители портов будут ретранслировать сигнал) Gert van den Berg 6 лет назад 0
Кабель eSATA может быть более вероятной проблемой - он является общим для всех дисков. Демукс не выглядит как правильный термин для SiI 3132 - похоже, это простая интерфейсная ИС SATA. (Подключение одного диска (с неважными данными) к одному и тому же кабелю SATA и `dd if = / dev / disk of = / dev / null` и` dd if = / dev / zero of = / dev / disk # это приведет к стиранию это хотя` для генерации большого количества активности для проверки увеличения счетчика - один из способов тестирования) Gert van den Berg 6 лет назад 1