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

Драйвер Adaptec pm80xx сбрасывает диски случайным образом

Я создаю ZFS NAS, используя HBA-адаптер Adaptec ASA-71605H в Ubuntu 12.04.4.

Современные ядра Linux поставляются с открытой версией необходимого модуля ядра pm80xx. Adaptec самостоятельно предоставляет драйвер для Ubuntu 12.04, и я протестировал оба с одинаковым эффектом.

Симптом, который я вижу, заключается в том, что время от времени после загрузки доступны только 14 из 16 дисков.

Полный dmesg журнал доступно здесь, интересные части

[    3.591035] pm80xx 0000:01:00.0: driver version 0.1.37 / 1.0.15-1

[   50.749419] sas: Enter sas_scsi_recover_host busy: 0 failed: 0
[   50.749424] sas: ata1: end_device-1:0: dev error handler
[   50.749430] sas: ata2: end_device-1:1: dev error handler
[   50.749433] sas: ata3: end_device-1:2: dev error handler
[   55.900826] ata3.00: qc timeout (cmd 0xec)
[   55.900899] pm80xx:: mpi_sata_completion 2049: SATA IO STATUS 0x1 task ffff8807ee8cc000
[   55.900900] pm80xx:: mpi_sata_completion 2085: status:0x1, tag:0x2, task::0xffff8807ee8cc000
[   55.900831] pm80xx:: pm8001_chip_abort_task 4889: cmd_tag = 0x3, abort task tag = 0x2
[   55.900902] pm80xx:: mpi_sata_completion 2118: SAS Address of IO Failure Drive:50000d1106c76219<6>
[   55.900903] pm80xx:: mpi_sata_completion 2493: task 0xffff8807ee8cc000 done with io_status 0x1 resp 0x0 stat 0x8d but aborted by upper layer!
[   55.900906] pm80xx:: pm8001_mpi_task_abort_resp 3840: ABORT status = 0x0 task ffff8807ee8cc1c0
[   55.900907] pm80xx:: pm8001_mpi_task_abort_resp 3856: ABORT IO_SUCCESS for tag 3 ,task ffff8807ee8cc1c0
[   55.900911] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[   66.049020] ata3.00: qc timeout (cmd 0xec)
[   66.049087] pm80xx:: mpi_sata_completion 2049: SATA IO STATUS 0x1 task ffff8807ee8cc000
[   66.049088] pm80xx:: mpi_sata_completion 2085: status:0x1, tag:0x2, task::0xffff8807ee8cc000
[   66.049025] pm80xx:: pm8001_chip_abort_task 4889: cmd_tag = 0x3, abort task tag = 0x2
[   66.049089] pm80xx:: mpi_sata_completion 2118: SAS Address of IO Failure Drive:50000d1106c76219<6>
[   66.049091] pm80xx:: mpi_sata_completion 2493: task 0xffff8807ee8cc000 done with io_status 0x1 resp 0x0 stat 0x8d but aborted by upper layer!
[   66.049093] pm80xx:: pm8001_mpi_task_abort_resp 3840: ABORT status = 0x0 task ffff8807ee8cc1c0
[   66.049094] pm80xx:: pm8001_mpi_task_abort_resp 3856: ABORT IO_SUCCESS for tag 3 ,task ffff8807ee8cc1c0
[   66.049098] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[   96.181921] ata3.00: qc timeout (cmd 0xec)
[   96.182001] pm80xx:: mpi_sata_completion 2049: SATA IO STATUS 0x1 task ffff8807ee8cc000
[   96.182009] pm80xx:: mpi_sata_completion 2085: status:0x1, tag:0x2, task::0xffff8807ee8cc000
[   96.181934] pm80xx:: pm8001_chip_abort_task 4889: cmd_tag = 0x3, abort task tag = 0x2
[   96.182014] pm80xx:: mpi_sata_completion 2118: SAS Address of IO Failure Drive:50000d1106c76219<6>
[   96.182020] pm80xx:: mpi_sata_completion 2493: task 0xffff8807ee8cc000 done with io_status 0x1 resp 0x0 stat 0x8d but aborted by upper layer!
[   96.182025] pm80xx:: pm8001_mpi_task_abort_resp 3840: ABORT status = 0x0 task ffff8807ee8121c0
[   96.182029] pm80xx:: pm8001_mpi_task_abort_resp 3856: ABORT IO_SUCCESS for tag 3 ,task ffff8807ee8121c0
[   96.182043] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4)
[   96.337817] sas: --- Exit sas_scsi_recover_host: busy: 0 failed: 0

[   96.354159] sas: Enter sas_scsi_recover_host busy: 0 failed: 0
[   96.354177] sas: ata1: end_device-1:0: dev error handler
[   96.354194] sas: ata2: end_device-1:1: dev error handler
[   96.354204] sas: ata3: end_device-1:2: dev error handler
[   96.354210] sas: ata4: end_device-1:3: dev error handler
[   96.510401] ata4.00: ATA-9: ST4000VN000-1H4168, SC43, max UDMA/133
[   96.510409] ata4.00: 7814037168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[   96.511106] ata4.00: configured for UDMA/133
[   96.511134] sas: --- Exit sas_scsi_recover_host: busy: 0 failed: 0
[   96.526013] scsi 1:0:3:0: Direct-Access     ATA      ST4000VN000-1H41 SC43 PQ: 0 ANSI: 5

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

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

Другой вопрос предполагает, что ошибка возникает из общего IRQ 16, и действительно, у меня иногда появляются журналы ошибок, указывающие на IRQ 16. К сожалению, я не знаю, можно ли использовать другое IRQ, поскольку BIOS не позволяет мне этого и использование другого слота PCIe не является вариантом с точки зрения скорости соединения.

Любая помощь приветствуется. Я близок к тому, чтобы заказать контроллер LSI, чтобы посмотреть, поможет ли он, но надеюсь, что он будет работать с Adaptec. Я просто очень обеспокоен тем, что доверяю свои данные этому контроллеру.

Обновить: Проблемы продолжаются. Даже если все диски найдены, в libsas и модуле ядра pm80xx случайно возникают ошибки ядра. В производстве тоже не используется. Думаете о приобретении LSI 9201-16i…