Проблема эта всплывает, когда ставишь Proxmox на десктопное железо. Я нередко его использовал для различных вспомогательных задач – тестирование бэкапов, временный запасной гипервизор и т.д. В прод ставить не рекомендую, хоть и будет работать, и может показаться это выгодным. Я всегда настаивал на покупке хоть какого, старого, бушного, но сервера на полноценной серверной платформе с IPMI.
Итак, проблемы могут возникнуть, когда у вас будет примерно такая сетевая карта:
# lspci | grep Ethernet04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet ControllerПо умолчанию у вас будет установлен драйвер r8169. Проверить так:
# lsmod | grep r81r8169С ним сетевая карта может быть как вообще недоступна, так и на вид полностью рабочей, но с вероятностью непрогнозируемого зависания. Причём зависать она может очень редко, например, раз в месяц в момент сильной сетевой загрузки. Выглядит это так, что сеть как-будто вообще не работает. Причём проявляться это может как на гипервизоре, так и в каких-то отдельных виртуальных машинах. Они перестают быть доступны по сети.
Проблема может через 10 минут пройти сама, а может и нет, и поможет только перезагрузка. В логах могут быть какие-то упоминания проблем с сетевой картой, типа таких:
[01448.532276] r8169 0000:09:00.0 enp3s0: rtl_rxtx_empty_cond == 0 (loop: 42, delay: 100).А может и вообще ничего не быть. Известное мне решение только одно – использовать драйвер r8168. Это решение широко освещено на официальном форуме Proxmox. Там можно найти множество веток с обсуждением подобной проблемы.
Драйвер можно скачать самому и собрать его. Взять можно, например, тут. Там есть инструкция по сборке, она несложная. Можно взять готовый пакет для Debian из non-free репозитория: r8168-dkms. Установить его можно так. Добавляем себе в систему репозитории non-free и non-free-firmware. То есть в файле
/etc/apt/sources.list должна быть строка:deb http://ftp.ru.debian.org/debian bookworm main contrib non-free non-free-firmwareСтавим необходимые пакеты:
# apt install pve-headers r8168-dkmsВо время установки r8168-dkms должен собраться и установиться драйвер r8168, а предыдущий r8169 отключиться и добавиться к заблокированным во время загрузки.
Есть ещё один пакет с этим драйвером, собранный специально под PVE. Я не знаю, чем он отличается от обычного дебиановского. Брать тут. Его достаточно просто скачать и установить:
# wget https://github.com/nathanhi/r8168/releases/download/pve8%2F8.054.00-1-bpo12/r8168-dkms_8.054.00-1-bpo12_all.deb# dpkg -i r8168-dkms_8.054.00-1-bpo12_all.debОписанные выше действия могут как помочь, так и нет. Например, на одном сервере я вообще не видел сетевой карты. После установки драйвера r8168, она определялась в системе и начинала нормально работать. А иногда ничего не менялось и сеть как отваливалась периодически, так и продолжала отваливаться. Тогда приходилось делать что-то типа такого:
#!/bin/bashIP="10.20.1.2"if ! ping -c 1 -W 5 "$IP" > /dev/null 2>&1; then echo "$(date): $IP недоступен. Перезапуск сетевой службы..." systemctl restart networkingelse echo "$(date): $IP доступен."fiСтавил подобный bash скрипт в cron на исполнение каждую минуту. В моменты редких зависаний он перезапускал сеть и всё продолжало нормально работать.
☝️ А резюме всего этого такое. Если у вас сетевая карта Realtek, то либо замените её, либо не ставьте туда Proxmox. Есть высокая вероятность, что нормально он всё равно работать не будет, а вы только время потеряете на отладку и решение проблем.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#proxmox #ошибка