При копировании больших файлов (50+ ГБ) с диска NVMe на жесткий диск SATA 7200 об/мин в журналах полностью пропатченной Ubuntu 20.04 я вижу следующую ошибку:
Aug 08 00:45:59 host kernel: ata6.00: exception Emask 0x20 SAct 0x0 SErr 0x0 action 0x6 frozen
Aug 08 00:45:59 host kernel: ata6.00: irq_stat 0x20000000, host bus error
Aug 08 00:45:59 host kernel: ata6.00: failed command: WRITE DMA EXT
Aug 08 00:45:59 host kernel: ata6.00: cmd 35/00:08:30:a2:e0/00:00:e8:00:00/e0 tag 23 dma 4096 out
res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x20 (host bus error)
Aug 08 00:45:59 host kernel: ata6.00: status: { DRDY }
Aug 08 00:45:59 host kernel: ata6: hard resetting link
Aug 08 00:46:00 host kernel: ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
Aug 08 00:46:00 host kernel: ata6.00: configured for UDMA/133
Aug 08 00:46:00 host kernel: ata6: EH complete
ata6.00
это диск, на который идет запись.
Проблема непостоянная. Иногда не появляется в течение 24 часов, иногда пару раз в час. Часто диск восстанавливается, но иногда файловая система просто повреждается, ее нужно размонтировать, восстановить (если возможно) и перемонтировать.
Что я пробовал:
- Я пробовал 3 разных марки HDD. У всех одна и та же проблема.
- Я подозревал аппаратную проблему. Я заменил материнскую плату и кабели SATA. Ничего из этого не помогло.
- У меня есть другой сервер с идентичной конфигурацией. Там проблема не возникает. Та же нагрузка.
- У меня есть еще один сервер с совершенно другой конфигурацией (Intel против AMD). Проблема возникает там. Та же нагрузка.
- Я отключил NCQ через
echo 1 > /sys/block/sda/device/queue_depth
. Не помогло.
У меня закончились идеи...
Это все компоненты класса центра обработки данных. Учитывая предпринятые мной шаги, я полагаю, что это не дефект производства оборудования.
Может ли это быть связано с программным обеспечением/ОС/BIOS?
Есть идеи, что еще мне следует попробовать?
решение1
Может быть, это больше проблема рабочей температуры? Поскольку диск постоянно используется, его физическое положение и отношение тепловыделения к потерям становятся слишком высокими, что приводит к непредсказуемому поведению?
В более новых ядрах, таких как ваше, температуру диска можно поместить в sysfs по этому пути:
/sys/class/hwmon/*
Обязательно убедитесь, что drivetemp
модуль загружен modprobe drivetemp
.
Вы можете рассмотреть возможность мониторинга файлов здесь и начать повторное копирование большого файла, документация ядраздесьдает указание, как следует интерпретировать эти файлы.
Они содержат полезные значения, такие как минимальная/максимальная рабочая температура, а некоторые драйверы также могут предлагать индикаторы аварийной сигнализации, которые представляют собой зависящие от чипа сигналы тревоги, срабатывающие при возникновении неисправности.
решение2
Кажется, проблема решена обновлением до Ubuntu 21.04. Не знаю, почему. Теперь сервер работает стабильно, без проблем с ATA.