Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Нестабильность сети UNAS 2 связана с устаревшим драйвером r8152 (v2.17.2, 2023) на USB-сетевой карте, UniFi Drive
 
**TL;DR:** В UNAS 2 используется USB-подключённый Realtek RTL8156 2.5GbE NIC с драйвером r8152 v2.17.2 от 2023-09-05 — почти три года давности. Сейчас на моём устройстве драйвер при каждой загрузке не может согласовать гигабит и откатывается до 100Mb. Поддержка UniFi не отвечает. Пишу на случай, если кто-то видит то же самое, и чтобы донести это до инженерной команды.---**Аппаратный дизайн**В UNAS 2 не используется PCIe NIC. Используется USB-подключённый Realtek RTL8156, подтверждено через:  ethtool -i eth0  # driver: r8152  # version: v2.17.2 (2023/09/05)  lsusb -t  # Port 1: Dev 2, Driver=r8152, 5000MЭто значит, что NIC сидит на USB-шине, деля очереди и пути восстановления USB-контроллера. USB NIC по своей природе более хрупкие под длительной нагрузкой, чем PCIe NIC — меньше очереди, больше участия CPU, менее надёжное восстановление после ошибок.**Изначальные симптомы (при длительной передаче)**Во время многo-ТБ SMB/SCP передач:- Пропускная способность падает и зависает на секунды-минуты- SMB-сессии отключаются- /var/log/kern.log заполняется `r8152 ... eth0: carrier off / carrier on`- Шара в итоге полностью отваливается- Восстанавливается только полным выключением питанияВоспроизводилось с разными кабелями, портами коммутатора и клиентами. Ни одно другое 2.5G-устройство на том же USW-Flex-2.5G не имеет проблем.**Стало хуже**После нескольких циклов устранения неполадок NIC перестал согласовывать гигабит при загрузке. В логе ядра теперь:  r8152 4-1.1:1.0 eth0: autoneg retry 3/3 for higher speed (total 3, linked at 100Mbps)  r8152 4-1.1:1.0 eth0: autoneg retry exhausted, accepting 100Mbps  r8152 4-1.1:1.0 eth0: carrier onСам драйвер сообщает, что трижды пытался согласовать более высокую скорость, потерпел неудачу и принял 100Mb. Порт коммутатора установлен на auto-negotiate. Все остальные устройства на том коммутаторе работают на своих номинальных скоростях.Любая попытка форсировать скорость через `ethtool -s eth0 ...` вешает устройство настолько, что требуется выключение питания — вероятно, потому что зависший USB NIC тянет за собой весь USB-стек.**Испробованные меры**- Отключение NIC offloads (tso/gso/gro/tx/rx/sg) — временное облегчение, потом снова отказ- Форсирование 1GbE — держалось часами, потом отказ под непрерывным RX- Разные кабели, порты коммутатора, настройки STP- Тикет в поддержку — эскалирован несколько дней назад, ответа нет**Проблема возраста драйвера**Драйвер r8152, поставляемый в текущей прошивке UniFi — v2.17.2 (2023-09-05). В upstream r8152 с тех пор вышло множество релизов с исправлениями поведения autoneg RTL8156 и восстановления после USB-зависаний. Этот драйвер нельзя обновить обычными средствами — он находится в образе ядра UniFi, а не как Debian-пакет.**Вопросы к UniFi**1. Почему устройство, вся задача которого — сетевaя передача файлов, использует USB NIC вместо PCIe?2. Почему драйвер r8152 поставляется почти на 3 года устаревшим?3. Планируется ли обновление прошивки, которое исправит поведение carrier-flap и autoneg-failure?4. Для затронутых пользователей — путь вперёд это RMA, или исправление уже в работе?**Для тех, кто видит это же**Если вы сталкиваетесь с теми же симптомами, пожалуйста, проверьте и опубликуйте:  ethtool -i eth0     # драйвер и версия  lsusb -t         # подтвердить USB-подключённый NIC  dmesg | grep r8152    # события carrier, повторы autoneg  ethtool eth0       # текущая согласованная скоростьБыло бы полезно знать, насколько это распространено и нашёл ли кто-нибудь рабочее долгосрочное решение (не временную меру).
 
апдейт: с этими настройками выше соединение стабильное всё время, даже ни одной потери пакетов, но иметь 100 Мбит как-то уже старовато в наши дни, надеюсь, скоро будет апгрейд драйвера
 
Спасибо @BlaqueSoul за расследование.Итак, из-за проблемы с драйвером, полагаю, сейчас мы ограничены вот таким обходным решением:ethtool -K "$IFACE" tso off gso off gro off tx off rx off sg offethtool -s "$IFACE" speed 100 duplex full autoneg offТекущая версия драйвера, похоже, устарела и соответствует известным проблемным базовым версиям, так что надеюсь, в будущем её обновят.Примечание: интерфейс способен работать на 1000 Мбит/с, но в моём случае стабильность важнее скорости, поэтому я пока зафиксировал его на 100 Мбит/с, чтобы избежать периодических зависаний сети. Посмотрим, как он поведёт себя со временем.Ещё: эти настройки не сохраняются и сбрасываются после перезагрузки, так что нужен скрипт, который будет применять их заново при запуске. Я положил скрипт в постоянный каталог и настроил его автоматический запуск после загрузки, а также создал watchdog, который следит за тем, не упал ли интерфейс, и тогда перезапускает сеть. Может, я ошибаюсь, и это проблема с железом, посмотрим, но пока стабильно 3 дня...
 
Какой ответ ты получил?
 
Особенно учитывая, что они так носятся с «улучшенной стабильностью и надёжностью», что типично для обновлений версий ОС.
 
Эти устройства работают на Alpine Linux с ядром 5.10. Это реально старьё. Я в шоке, что они не обновились хотя бы до 6.x, чтобы получить все плюшки от обновлённых драйверов.
 
Подтверждаю. Та же проблема с UNAS 2. Все те же проблемы, что выше. Немного драйвер и restion. Подтверждено на USB. Получаю ошибки согласования аутентификации и подключается только на 100mb. Сейчас создаю тикет в поддержку.
Страницы: 1
Читают тему (гостей: 1)