Proxmox VE — бесплатный гипервизор корпоративного уровня на базе KVM и LXC. Для серверов 1С это означает: консолидация нескольких ролей (сервер 1С, СУБД, терминальный сервер) на одном физическом хосте без затрат на лицензии VMware или Hyper-V. При правильной настройке виртуальная машина 1С на Proxmox теряет не более 3-5% производительности по сравнению с bare metal. По данным наших тестов виртуализации 1С, результат зависит от настройки CPU, дисков и RAM — именно об этом статья.

В этой инструкции: установка Proxmox VE, создание VM под сервер 1С, проброс дисков (passthrough), CPU pinning для высокочастотных ядер, настройка hugepages, выбор между VirtIO и SCSI, типичные ошибки виртуализации 1С. Каждый шаг — с командами и пояснениями, зачем именно так.

Если вы выбираете между Proxmox и Hyper-V — раздел со сравнением в конце статьи. Если ещё не определились, нужна ли виртуализация вообще, — начните со статьи 1С на виртуальной машине. А за подробностями по методологии тестирования серверов для 1С — на отдельную страницу.

Что потребуется для настройки Proxmox под 1С

Минимальные и рекомендуемые требования к хосту Proxmox для размещения VM с сервером 1С.

КомпонентМинимумРекомендуетсяПримечание
CPU4 ядра, от 3.0 ГГц, VT-x/VT-dXeon Gold/Platinum, 8+ ядер, от 3.5 ГГц1С зависит от частоты. Как выбрать процессор
RAM16 ГБ ECC64+ ГБ ECCRAM хоста = сумма RAM всех VM + 2-4 ГБ на Proxmox
Диск ОС ProxmoxSSD 120 ГБNVMe 256 ГБТолько для гипервизора, ISO-образов и бэкапов
Диск VMSSD 200 ГБNVMe SSD 500+ ГБДля дисков VM. Passthrough NVMe — оптимально для 1С
Сеть1 GbE2x 10 GbE (bond)Для отделения трафика управления от трафика VM
BIOSVT-x включенVT-x + VT-d (IOMMU)VT-d нужен для passthrough дисков и сетевых карт

VT-d (IOMMU) — критичная настройка. Без неё невозможен проброс NVMe-диска напрямую в VM, а это даёт максимальную производительность дисковой подсистемы для 1С. Проверьте поддержку в BIOS: Intel VT-d или AMD-Vi. На серверах Dell, HPE, Supermicro — включается в разделе Advanced → Processor Configuration.

Установка Proxmox VE и подготовка хоста

Proxmox VE устанавливается из ISO-образа как самостоятельная ОС. Не поверх существующего Debian — чистая установка на выделенный диск.

Установка Proxmox

  1. Скачайте ISO с proxmox.com/en/downloads (Proxmox VE 8.x ISO Installer)
  2. Запишите на USB-флешку (Rufus, Balena Etcher или dd)
  3. Загрузите сервер с USB, выберите Install Proxmox VE (Graphical)
  4. Целевой диск — SSD для ОС (не диск, который будет использоваться VM)
  5. Задайте пароль root и email администратора
  6. Настройте сеть: статический IP, шлюз, DNS
  7. После установки войдите в веб-интерфейс: https://IP-адрес:8006

Включение IOMMU для passthrough

Для проброса NVMe-дисков и сетевых карт нужно активировать IOMMU на уровне ядра Linux.

# Редактируем параметры загрузки GRUB
nano /etc/default/grub

# Для Intel -- добавьте intel_iommu=on:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

# Для AMD -- добавьте amd_iommu=on:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

# Применить
update-grub
reboot

Параметр iommu=pt (passthrough mode) — ускоряет работу устройств, которые не используют passthrough. Без него все устройства проходят через IOMMU, что добавляет задержки.

# После перезагрузки -- проверить, что IOMMU активен
dmesg | grep -e DMAR -e IOMMU
# [    0.012345] DMAR: IOMMU enabled

# Загрузить модули VFIO (для passthrough)
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
update-initramfs -u -k all
reboot

Отключение подписки Enterprise (для тестовых сред)

Proxmox VE работает полноценно без платной подписки. Единственное ограничение — при входе появляется предупреждение. Для продуктивных сред рекомендуется подписка (от 95 евро/год за сокет) — она даёт доступ к enterprise-репозиторию и поддержке.

# Для тестовой среды: добавить бесплатный репозиторий
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

# Обновить систему
apt update && apt full-upgrade -y

Создание виртуальной машины под сервер 1С

VM для сервера 1С требует точной настройки CPU, RAM и дисков. Каждый параметр влияет на производительность платформы 1С:Предприятие.

Базовые параметры VM

ПараметрРекомендация для 1СПочему
Machine typeq35Поддержка PCIe passthrough, UEFI
BIOSOVMF (UEFI)Быстрее загрузка, поддержка GPT-дисков >2 ТБ
SCSI ControllerVirtIO SCSI singleЛучшая производительность для дисковых операций
NetworkVirtIO (paravirtualized)Минимальные накладные расходы сети
Qemu AgentВключенКорректный shutdown, freeze/thaw для бэкапов
OS TypeMicrosoft Windows / LinuxЗависит от гостевой ОС

Создание VM через CLI

Веб-интерфейс Proxmox удобен для разовых операций. Для воспроизводимости — CLI.

# Создание VM (VMID=100, имя 1c-server)
qm create 100 \
  --name 1c-server \
  --machine q35 \
  --bios ovmf \
  --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0 \
  --ostype win11 \
  --cpu host \
  --cores 8 \
  --sockets 1 \
  --memory 32768 \
  --balloon 0 \
  --net0 virtio,bridge=vmbr0 \
  --scsihw virtio-scsi-single \
  --scsi0 local-lvm:200,iothread=1,discard=on,ssd=1 \
  --ide2 local:iso/windows-server-2022.iso,media=cdrom \
  --agent 1

# Запуск VM
qm start 100

Ключевые моменты в команде:

Настройка CPU: pinning высокочастотных ядер для 1С

1С:Предприятие — однопоточное приложение. Каждый сеанс пользователя выполняется в одном потоке. Поэтому для 1С частота ядра важнее количества ядер. В серверных процессорах не все ядра работают на одной частоте: Turbo Boost поднимает частоту ограниченного числа ядер.

CPU pinning привязывает vCPU виртуальной машины к конкретным физическим ядрам. Это даёт два преимущества: VM гарантированно получает высокочастотные ядра и исключает миграцию потоков между ядрами (снижает задержки из-за L3 cache miss).

Определение лучших ядер

# Посмотреть текущие частоты всех ядер
cat /proc/cpuinfo | grep "MHz" | sort -t: -k2 -rn | head -16

# Или через lscpu
lscpu --extended

# Для мониторинга в реальном времени
apt install -y linux-cpupower
turbostat --quiet --show Core,CPU,Bzy_MHz --interval 2

На процессорах Intel Xeon Gold/Platinum максимальный Turbo Boost обычно достигается на первых 2-4 ядрах. Например, Gold 6244 (3.6/4.4 ГГц) поднимает до 4.4 ГГц только 1-2 ядра, а все 8 — до 4.0 ГГц. Привяжите VM 1С к ядрам 0-7, чтобы захватить высокочастотные.

Настройка CPU pinning

# Привязать vCPU к физическим ядрам 0-7
# Редактируем конфигурацию VM
nano /etc/pve/qemu-server/100.conf

# Добавить строку:
affinity: 0-7

# Или для точного контроля (каждый vCPU на своё ядро):
# vCPU 0 → ядро 0, vCPU 1 → ядро 1, и т.д.

# Перезапустить VM для применения
qm shutdown 100 && qm start 100

Правила CPU pinning для 1С:

NUMA topology для двухпроцессорных серверов

Двухсокетные серверы (Dell R640, HPE DL380) имеют два NUMA-узла. Каждый процессор — свой контроллер памяти. VM должна работать внутри одного NUMA-узла.

# Проверить NUMA-топологию хоста
numactl --hardware
# node 0: cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23
# node 1: cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31
# node 0: size: 65536 MB
# node 1: size: 65536 MB

# В конфигурации VM включить NUMA:
qm set 100 --numa 1

# Привязать VM к NUMA node 0 (ядра 0-7):
# affinity: 0-7

Без NUMA-привязки Proxmox может разместить vCPU на разных сокетах. Каждое обращение к «чужой» памяти проходит через QPI/UPI-шину между процессорами — это +50-100 нс на каждый доступ. Для СУБД и 1С, которые активно работают с памятью, это заметная деградация.

Настройка RAM: hugepages для сервера 1С

Linux по умолчанию использует страницы памяти по 4 КБ. Для VM с 32 ГБ RAM это 8 миллионов записей в таблице страниц (TLB). Процессор кеширует только несколько тысяч записей TLB — остальные вызывают TLB miss и замедляют работу.

Hugepages — страницы по 2 МБ (или 1 ГБ). Для 32 ГБ RAM нужно всего 16 384 записи вместо 8 миллионов. Это снижает TLB miss на 90%+ и ускоряет работу СУБД и 1С на 5-15%.

Настройка hugepages на хосте

# Рассчитать количество hugepages (2 МБ каждая)
# Для VM с 32 ГБ RAM: 32768 МБ / 2 МБ = 16384 страниц
# Добавьте 5% запас: ~17000

# Задать hugepages
echo "vm.nr_hugepages = 17000" >> /etc/sysctl.conf
sysctl -p

# Проверить
grep Huge /proc/meminfo
# HugePages_Total:   17000
# HugePages_Free:    17000
# Hugepagesize:       2048 kB

Важно: hugepages резервируются из общей RAM хоста и не подлежат свопу. Если на хосте 64 ГБ RAM и вы зарезервировали 34 ГБ под hugepages — для Proxmox и других VM останется 30 ГБ обычной памяти. Рассчитывайте точно.

Включение hugepages в VM

# В конфигурации VM:
nano /etc/pve/qemu-server/100.conf

# Добавить строку:
hugepages: 2

# Убедитесь, что balloon отключен (balloon: 0)
# Hugepages несовместимы с balloon memory

# Перезапустить VM
qm shutdown 100 && qm start 100

Если hugepages не выделены на хосте — VM не запустится. Proxmox выдаст ошибку «cannot allocate hugepages». Убедитесь, что HugePages_Free в /proc/meminfo достаточно для VM.

Дисковая подсистема: VirtIO SCSI, passthrough, кеширование

Дисковая подсистема — узкое место виртуализации 1С. СУБД (MS SQL, PostgreSQL) и платформа 1С генерируют интенсивный random I/O. Выбор контроллера и режима подключения диска напрямую влияет на производительность.

VirtIO SCSI vs IDE vs SATA

КонтроллерIOPS (random 4K)ЗадержкаПрименение
IDE~5 000ВысокаяУстаревший, не использовать
SATA (AHCI)~20 000СредняяСовместимость, legacy ОС
VirtIO SCSI~100 000+НизкаяРекомендуется для 1С
NVMe passthrough~500 000+МинимальнаяМаксимум для СУБД 1С

VirtIO SCSI single с iothread — оптимальный выбор для большинства сценариев. NVMe passthrough — для максимальной производительности, когда NVMe-диск полностью отдаётся одной VM. Подробнее о выборе дисков: SSD для сервера 1С.

NVMe passthrough (проброс диска)

Проброс NVMe напрямую в VM обходит виртуальный контроллер. VM работает с диском как на bare metal. Требует VT-d (IOMMU).

# 1. Найти NVMe-устройство
lspci -nn | grep -i nvme
# 01:00.0 Non-Volatile memory controller [0108]: Samsung Electronics... [144d:a808]

# 2. Определить IOMMU-группу
find /sys/kernel/iommu_groups/ -type l | grep "01:00.0"
# /sys/kernel/iommu_groups/15/devices/0000:01:00.0

# 3. Отвязать от драйвера nvme и привязать к vfio-pci
echo "0000:01:00.0" > /sys/bus/pci/devices/0000:01:00.0/driver/unbind
echo "144d a808" > /sys/bus/pci/drivers/vfio-pci/new_id

# 4. Для автоматического passthrough при загрузке:
echo "options vfio-pci ids=144d:a808" > /etc/modprobe.d/vfio.conf
echo "softdep nvme pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
update-initramfs -u -k all

# 5. Добавить устройство в VM
qm set 100 --hostpci0 01:00.0

Ограничение passthrough: диск доступен только одной VM. Если на хосте одна VM 1С — отдайте NVMe целиком. Если несколько VM — используйте VirtIO SCSI с LVM-thin или ZFS.

Настройка кеширования диска

Режим кеширования определяет, как данные проходят между VM и физическим диском.

РежимОписаниеДля 1С
none (default)Direct I/O, без кеширования на хостеРекомендуется для SSD/NVMe
writebackКеш хоста, запись отложенаБыстрее, но риск потери при сбое питания
writethroughКеш хоста, запись сразу на дискБезопасно, но медленнее writeback
directsyncDirect I/O + sync каждой записиМаксимальная безопасность, низкая производительность

Для сервера 1С с СУБД рекомендуется none на NVMe/SSD. Гостевая ОС и СУБД сами управляют кешированием. Если на хосте есть батарейка BBU (Battery Backup Unit) на RAID-контроллере — writeback безопасен и даёт лучшую производительность.

# Установить кеширование для диска VM
qm set 100 --scsi0 local-lvm:200,iothread=1,cache=none,discard=on,ssd=1

Настройка сети VM

Для VM с сервером 1С используйте VirtIO-сетевой адаптер. Он работает через паравиртуализацию: гостевая ОС «знает», что работает в VM, и общается с гипервизором напрямую, минуя эмуляцию железа.

Базовая сеть

# VirtIO-адаптер уже создан при создании VM (--net0 virtio,bridge=vmbr0)

# Для Windows: установите VirtIO-драйверы (без них сеть не работает)
# Скачайте ISO: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
# Подключите как второй CD-ROM и установите драйверы в гостевой Windows

Разделение сетей

На продуктивных серверах разделяйте сетевой трафик:

Для одиночного сервера с одной VM 1С — достаточно одного bridge (vmbr0). Для кластера Proxmox — минимум два (управление + хранилище).

Proxmox vs Hyper-V для сервера 1С

Два популярных гипервизора для 1С. Оба подходят, но отличаются в стоимости, управлении и экосистеме.

КритерийProxmox VEHyper-V
СтоимостьБесплатно (подписка опциональна)Бесплатно (Hyper-V Server) или в составе Windows Server ($6 000+)
ГипервизорKVM (Type 1)Type 1 (bare metal)
УправлениеВеб-интерфейс + CLI (pvesh, qm)Hyper-V Manager, PowerShell, Windows Admin Center
Гостевые ОСWindows, Linux, FreeBSDWindows (оптимально), Linux (поддержка)
CPU pinningДа, через конфигурацию VMОграниченный (NUMA-aware, но нет прямого pinning)
NVMe passthroughДа, через IOMMU/VFIOДа, через DDA (Discrete Device Assignment)
HugepagesДа, ручная настройкаАвтоматически для VM
Бэкапы VMВстроенные (vzdump), Proxmox Backup ServerWindows Server Backup, System Center DPM
КластеризацияВстроенная (Corosync), live migrationFailover Cluster (требует AD, Windows Server)
Поддержка 1СНеофициально (но работает через KVM)Официально поддерживается 1С

Когда Proxmox: бюджет ограничен, команда знает Linux, не нужна официальная поддержка 1С для гипервизора, хочется гибкости в настройке (CPU pinning, hugepages, ZFS). Подходит для малых и средних компаний с 10-100 пользователями 1С.

Когда Hyper-V: инфраструктура на Windows, есть лицензии Windows Server Datacenter (неограниченные VM), нужна официальная поддержка от 1С, интеграция с Active Directory и System Center. Характерно для крупных компаний с 100+ пользователями.

По производительности разница минимальна: оба гипервизора работают как Type 1 и используют аппаратную виртуализацию VT-x. Выбор определяется инфраструктурой и экспертизой команды, а не скоростью. Подробнее о виртуализации 1С — в статье 1С на виртуальной машине: тесты и рекомендации.

Пошаговая инструкция (сводная)

Типичные ошибки виртуализации 1С на Proxmox

Balloon memory при работе с СУБД

Balloon — механизм динамического управления RAM. Гипервизор «надувает шарик» внутри VM, отбирая часть памяти. Для десктопных VM это нормально.

Для СУБД (MS SQL, PostgreSQL) — катастрофа. СУБД выделяет buffer pool при старте и рассчитывает на стабильный объём RAM. Если balloon отберёт память — СУБД начнёт сбрасывать кеш на диск, производительность упадёт в разы.

Решение: balloon: 0 в конфигурации VM. Задавайте фиксированный объём RAM и не меняйте его на лету.

IDE-контроллер вместо VirtIO

При установке Windows без VirtIO-драйверов Proxmox создаёт диск на IDE-контроллере. IDE эмулирует устройство 20-летней давности: максимум 2 канала, ~5 000 IOPS. VirtIO SCSI — 100 000+ IOPS. Разница в 20 раз. Для 1С с активной работой с СУБД это критично.

Решение: перед установкой Windows подключите ISO с VirtIO-драйверами как второй CD-ROM. При выборе диска нажмите «Загрузить драйвер» и укажите путь к VirtIO SCSI driver на ISO. После этого Windows увидит VirtIO-диск.

Перевыделение ресурсов (overcommit)

Proxmox позволяет выделить VM больше vCPU и RAM, чем есть физически. Для web-серверов overcommit CPU 2:1 работает нормально. Для 1С — нет.

Платформа 1С использует CPU и RAM постоянно, без пауз. Overcommit приводит к steal time (CPU wait) и swap (RAM) — пользователи видят зависания.

Решение: для VM с 1С — соотношение vCPU к физическим ядрам не более 1:1. RAM — без overcommit, с запасом 2-4 ГБ для хоста.

Отсутствие VirtIO-драйверов в гостевой Windows

Создали VM, установили Windows, а сеть не работает или диск медленный. Причина — Windows не содержит драйверы VirtIO из коробки. Без драйверов Windows использует эмулированные устройства (E1000 для сети, IDE для диска) с производительностью в 10-20 раз ниже.

Решение: скачайте virtio-win.iso с сайта Fedora. Подключите к VM. Установите все драйверы: VirtIO SCSI, VirtIO Network, VirtIO Balloon (если используется), QEMU Guest Agent.

Игнорирование NUMA на двухсокетных серверах

VM разместила vCPU на ядрах обоих процессоров. Каждое обращение к «чужой» памяти — +50-100 нс. При тысячах обращений в секунду (а СУБД делает именно так) — потеря 10-20% производительности.

Решение: включить NUMA в VM (qm set 100 --numa 1), привязать vCPU к ядрам одного сокета через affinity.

Вопросы и ответы

Сколько пользователей 1С выдержит VM на Proxmox?

Столько же, сколько на bare metal при правильной настройке. С CPU pinning, hugepages и VirtIO потеря производительности — 3-5%. Конкретное число зависит от процессора: Gold 6244 (3.6 ГГц) держит до 80 пользователей, E5-2680v4 (2.4 ГГц) — до 40. Смотрите тесты конкретных процессоров в нашем рейтинге.

Обязательно ли включать IOMMU и hugepages?

IOMMU обязателен только для passthrough (NVMe, сетевые карты, GPU). Без passthrough 1С работает на VirtIO-дисках — это тоже быстро. Hugepages не обязательны, но дают 5-15% прироста для СУБД. Если настройка кажется сложной — начните без hugepages, добавите позже без переустановки.

Можно ли запустить 1С в LXC-контейнере вместо VM?

Технически — да, но не рекомендуется для продуктивной эксплуатации. LXC разделяет ядро с хостом, нет полной изоляции. MS SQL Server в LXC не поддерживается Microsoft. Серверная часть 1С рассчитана на полноценную ОС. Используйте LXC для вспомогательных сервисов (мониторинг, бэкапы, DNS), а для 1С — полноценную VM.

Как делать бэкапы VM с 1С на Proxmox?

Встроенный vzdump создаёт полный снимок VM (диск + память). Для VM с 1С рекомендуется: остановить службу 1С перед бэкапом или использовать snapshot mode с QEMU Guest Agent (freeze/thaw файловой системы). Расписание — через веб-интерфейс (Datacenter → Backup). Для больших баз (50+ ГБ) лучше Proxmox Backup Server — инкрементальные бэкапы, дедупликация.

Нужна ли платная подписка Proxmox для сервера 1С?

Для работы — нет. Proxmox VE функционирует одинаково с подпиской и без. Подписка даёт: enterprise-репозиторий (стабильные обновления), техническую поддержку, доступ к Proxmox Backup Server Enterprise. Для продуктивного сервера с 1С на 50+ пользователей подписка оправдана (от 95 евро/год за сокет). Для тестов и малых инсталляций — бесплатной версии достаточно.

Как перенести VM с 1С на другой хост Proxmox?

Если оба хоста в кластере Proxmox — через live migration (без остановки VM). Перейдите в веб-интерфейсе: VM → Migrate → выберите целевой хост. Условие: общее хранилище (Ceph, NFS, iSCSI) или локальное хранилище с включённой репликацией. Без кластера — через vzdump (бэкап на хосте A) + qmrestore (восстановление на хосте B).

VirtIO или E1000 для сетевого адаптера VM с 1С?

Только VirtIO. E1000 эмулирует гигабитную сетевую карту Intel с полной эмуляцией — каждый пакет проходит через виртуальное устройство. VirtIO — паравиртуализированный драйвер, работает напрямую с гипервизором. Разница в задержке: VirtIO ~0.1 мс, E1000 ~0.5-1 мс. Для 1С, которая постоянно обменивается данными с СУБД по сети (если СУБД на отдельном сервере), это критично.

Итог

Proxmox VE — полноценный гипервизор для сервера 1С при правильной настройке. Семь ключевых параметров: CPU type host, CPU pinning на высокочастотные ядра, NUMA-привязка к одному сокету, hugepages, VirtIO SCSI с iothread, отключённый balloon, NVMe passthrough (при наличии выделенного диска). С этими настройками потеря производительности — 3-5% от bare metal.

Proxmox бесплатен и даёт гибкость, которой нет у Hyper-V: CPU pinning, hugepages, ZFS, кластеризация без Active Directory. Для компаний с Linux-экспертизой и бюджетом до 50-100 пользователей — оптимальный выбор. Для Windows-инфраструктуры с 100+ пользователями — Hyper-V может оказаться проще в эксплуатации.

После настройки Proxmox установите сервер 1С в VM: инструкция для Windows или для Linux. Настройте резервное копирование и кластер серверов 1С для отказоустойчивости. Если нужна помощь с выбором конфигурации или настройкой виртуализации — оставьте заявку.

cpu-pinning hugepages iommu kvm numa nvme-passthrough proxmox virtio виртуализация гайд