Управление вентиляторами в Proxmox VE: полное руководство

Гул вентиляторов сервера с Proxmox VE, работающих постоянно на максимальных оборотах, — типичная ситуация после установки гипервизора на обычное десктопное железо или самосборный сервер: материнская плата не получает корректные данные о температуре, а операционная система по умолчанию вообще не управляет кулерами. В результате домашняя лаборатория шумит как промышленная стойка, хотя реальная нагрузка на процессор близка к нулю.

Хорошая новость: Proxmox VE построен на Debian, поэтому весь арсенал Linux-инструментов для управления вентиляторами доступен из коробки. В этой статье разберём, как определить датчики, настроить автоматическое регулирование оборотов через fancontrol, что делать с серверными платами с IPMI и как не навредить железу слишком агрессивными настройками.

Почему Proxmox не управляет вентиляторами из коробки

Proxmox VE — это гипервизор, а не десктопная система. Разработчики исходят из того, что серверное оборудование управляет охлаждением самостоятельно: через BMC-контроллер, прошивку материнской платы или настройки BIOS/UEFI. Поэтому в веб-интерфейсе Proxmox вы не найдёте ни одного пункта, связанного со скоростью вращения вентиляторов.

На десктопных платах ситуация иная. После загрузки Linux управление PWM-контроллерами часто переходит от BIOS к операционной системе, а та без настроенного демона просто оставляет вентиляторы на последнем заданном режиме — нередко это 100% оборотов. Возможная причина постоянного шума кроется именно здесь, а не в неисправности железа.

Прежде чем что-либо настраивать, проверьте простую вещь: зайдите в BIOS/UEFI и посмотрите, есть ли там настройки Smart Fan, Q-Fan, Fan Curve или аналогичные. На многих платах достаточно выставить адекватную температурную кривую там — и вмешательство на уровне ОС вообще не потребуется.

Определяем датчики: lm-sensors

Первый шаг любой настройки — выяснить, какие температурные датчики и PWM-контроллеры видны системе. Для этого служит пакет lm-sensors. Установка выполняется из консоли узла Proxmox (через SSH или через Shell в веб-интерфейсе):

apt update && apt install lm-sensors

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

sensors-detect

По завершении скрипт предложит загрузить найденные модули ядра. Проверить результат можно командой sensors — она выведет температуры ядер процессора, напряжения и, если повезёт, текущие обороты вентиляторов. Если раздел с оборотами (fan1, fan2 и т.д.) отсутствует, возможная причина в том, что ваш чип мониторинга не поддерживается ядром напрямую или требует дополнительного модуля.

  • 🔍 coretemp — температуры ядер Intel, почти всегда определяется автоматически
  • 🔍 k10temp — датчики процессоров AMD Ryzen и EPYC
  • 🔍 nct6775 — популярный чип мониторинга на платах ASUS, ASRock, Gigabyte
  • 🔍 it87 — чипы ITE на ряде плат Gigabyte, иногда требует ручной установки модуля
⚠️ Внимание: если sensors-detect не нашёл ни одного чипа управления вентиляторами, не пытайтесь загружать модули вслепую методом перебора. Неверный модуль в лучшем случае не сработает, в худшем — вызовет нестабильность системы. Сверьтесь со спецификацией вашей материнской платы.

Настройка fancontrol и pwmconfig

Когда датчики определены, можно переходить к автоматическому управлению оборотами. Стандартный инструмент для этого — демон fancontrol, который настраивается интерактивной утилитой pwmconfig. Установите пакет:

apt install fancontrol

Затем запустите мастер настройки. Утилита по очереди протестирует каждый найденный PWM-канал: остановит вентилятор, постепенно поднимет обороты и определит, какой канал к какому кулеру привязан:

pwmconfig

Во время теста внимательно слушайте сервер и сверяйтесь с выводом sensors — вам нужно понять, какой PWM отвечает за процессорный кулер, а какой — за корпусные. В конце мастер предложит задать температурные пороги: минимальную температуру (ниже неё вентилятор работает на минимуме) и максимальную (при достижении — полные обороты).

☑️ Настройка fancontrol в Proxmox

Выполнено: 0 / 6

После сохранения конфигурации запустите демон и включите его автозагрузку:

systemctl enable --now fancontrol

Проверить, что всё работает, просто: понаблюдайте за оборотами в выводе sensors при изменении нагрузки, например во время stress или компиляции. Обороты должны плавно расти вместе с температурой, а не прыгать скачками.

⚠️ Внимание: не занижайте минимальные обороты процессорного кулера до полной остановки, если не уверены в пассивном охлаждении. Полная остановка вентилятора при росте нагрузки может привести к перегреву быстрее, чем демон успеет отреагировать. Оставляйте запас — минимум, при котором кулер гарантированно вращается.
📊 Как вы управляете вентиляторами на своём Proxmox-сервере?
Только настройки BIOS/UEFI
fancontrol + lm-sensors
IPMI / BMC серверной платы
Вентиляторы всегда на максимуме

Серверные платы: управление через IPMI

Если ваш Proxmox работает на серверной плате — Supermicro, ASUS с BMC, платах для Dell или HPE — управление вентиляторами обычно выполняет отдельный контроллер BMC, а не операционная система. Вмешательство fancontrol здесь может конфликтовать с логикой BMC, поэтому подход другой.

Для взаимодействия с BMC используется пакет ipmitool. Он позволяет читать датчики и, на многих платах, задавать режимы вентиляторов. Пример чтения данных:

apt install ipmitool

ipmitool sensor list

Команды установки скорости вентиляторов через raw-команды IPMI сильно различаются между производителями и даже ревизиями плат. Универсальной команды не существует — конкретные raw-коды для вашей платы нужно брать из документации производителя или профильных сообществ именно по вашей модели. Слепое копирование чужих raw-команд может перевести вентиляторы в непредсказуемый режим.

Почему серверные платы шумят даже без нагрузки

Многие серверные BMC рассчитаны на стоечное размещение и по умолчанию держат обороты высокими, чтобы гарантировать охлаждение в плотно набитой стойке. Некоторые платы поднимают обороты до максимума, если не видят «родной» вентилятор с нужным числом импульсов таходатчика, или если установлены сторонние жёсткие диски без температурных датчиков, распознаваемых прошивкой. Это защитное поведение, а не неисправность.

Мониторинг температур в веб-интерфейсе Proxmox

Настроив охлаждение, полезно видеть температуры прямо в панели Proxmox. Штатный интерфейс показывает температуру дисков (при установленном smartmontools), но датчики процессора и обороты вентиляторов по умолчанию не отображает. Для мониторинга используйте командную строку или внешние системы.

Простейший вариант — периодически проверять вывод sensors. Более продвинутый — подключить узел к системе мониторинга вроде Zabbix, Prometheus с экспортёром node_exporter (он собирает данные lm-sensors) или Netdata. Так вы получите графики температур во времени и сможете настроить оповещения о перегреве.

  • 📊 sensors — мгновенный снимок температур и оборотов в консоли
  • 📊 s-tui — терминальный монитор с графиками температуры и частоты CPU
  • 📊 node_exporter + Grafana — полноценные дашборды с историей
  • 📊 watch sensors — автообновление показаний каждые 2 секунды

Типичные проблемы и их диагностика

Не всегда настройка проходит гладко. Ниже — частые симптомы и направления проверки, которые не зависят от конкретной модели железа.

СимптомВозможная причинаЧто проверить
sensors не показывает обороты вентиляторовЧип мониторинга не определён или модуль не загруженПовторить sensors-detect, проверить lsmod
pwmconfig пишет «no pwm-capable sensor modules»Ядро не видит PWM-контроллерРучная установка модуля чипа (например, it87)
fancontrol запущен, но обороты не меняютсяBIOS удерживает управление или неверная привязка PWMРежим управления в BIOS, повторный pwmconfig
Вентиляторы на максимуме после перезагрузкиСлужба fancontrol не стартует автоматическиsystemctl status fancontrol, journalctl -u fancontrol
Серверная плата игнорирует настройки ОСОхлаждением управляет BMCНастройки Fan Mode в интерфейсе BMC/IPMI

Отдельный случай — вентиляторы, которые «пульсируют»: набирают обороты и сбрасывают их каждые несколько секунд. Возможная причина — слишком узкий гистерезис между порогами температур в конфигурации fancontrol. Разнесите минимальную и максимальную температуры дальше друг от друга, и поведение сгладится.

⚠️ Внимание: любые правки файла /etc/fancontrol вступают в силу только после перезапуска службы командой systemctl restart fancontrol. Если вы меняли пороги, а поведение не изменилось — в первую очередь проверьте, не забыли ли перезапустить демон.

Безопасность: как не перегреть сервер

Главный риск ручного управления вентиляторами — перегрев из-за слишком тихого профиля. Сервер с виртуальными машинами может резко увеличить нагрузку: запланированный бэкап, антивирусное сканирование в гостевой ОС, миграция ВМ. Кривая охлаждения должна выдерживать такие пики.

Практические правила, которые снижают риск:

  • 🛡️ Максимальную температуру в fancontrol задавайте с запасом ниже критической для вашего процессора — точное значение смотрите в спецификации CPU
  • 🛡️ После настройки обязательно проведите стресс-тест и убедитесь, что температура стабилизируется на безопасном уровне
  • 🛡️ Настройте оповещения о перегреве через систему мониторинга — не полагайтесь только на слух
  • 🛡️ Учитывайте летнюю жару: кривая, настроенная зимой, может не справиться в июле

Часто задаваемые вопросы

Можно ли управлять вентиляторами через веб-интерфейс Proxmox?

Штатно — нет, в интерфейсе Proxmox VE нет таких настроек. Управление выполняется через BIOS/UEFI, консольные утилиты (fancontrol) или BMC/IPMI на серверных платах. Существуют сторонние скрипты и плагины, но их стабильность и совместимость с обновлениями Proxmox не гарантированы.

Что делать, если pwmconfig не находит PWM-контроллеры?

Сначала убедитесь, что sensors-detect завершился успешно и модули загружены. Если чип вашей платы (например, семейства ITE) не поддерживается штатным ядром, может потребоваться ручная сборка модуля — это уже нестандартная процедура, и её целесообразность стоит оценивать отдельно. Альтернатива — управление кривыми через BIOS/UEFI.

Влияет ли fancontrol на виртуальные машины?

Напрямую — нет. Демон работает на уровне хоста и только меняет обороты вентиляторов. Косвенное влияние возможно лишь в одном случае: если из-за неудачной настройки процессор перегреется и начнёт троттлить, производительность всех ВМ снизится. Поэтому стресс-тест после настройки обязателен.

Как вернуть управление вентиляторами обратно в BIOS?

Остановите и отключите службу: systemctl disable --now fancontrol, затем перезагрузите сервер. После перезагрузки большинство плат возвращают управление прошивке. Дополнительно проверьте в BIOS, что режим Smart Fan включён.

Почему серверная плата держит вентиляторы на максимуме сразу после старта?

Это типичное защитное поведение BMC: до полной инициализации датчиков контроллер выставляет максимальные обороты, чтобы исключить перегрев. Обычно через минуту-две обороты снижаются до рабочих. Если этого не происходит, проверьте настройки Fan Mode в интерфейсе BMC и наличие всех «родных» датчиков.