Миграция с VMware на Proxmox: перевод 80 виртуальных машин производственного предприятия

Исходная ситуация: ультиматум от Broadcom

В декабре 2025 года производственное предприятие ПромМаш (машиностроение, 1 200 сотрудников) получило новый счёт за лицензии VMware: после поглощения Broadcom стоимость выросла в 4,5 раза — с 2.8 млн рублей до 12.6 млн в год. При этом функционал, которым пользовался ПромМаш (ESXi + vCenter Standard), был упакован в обязательный бандл с компонентами, которые предприятию не нужны.

Инфраструктура ПромМаш:

  • 3 сервера HPE ProLiant DL380 Gen10 (2×Xeon Gold 6248, 512 GB RAM, 10 Gbps)
  • СХД NetApp FAS2750 с FC-подключением
  • 80 виртуальных машин: 45 Windows Server, 30 Linux, 5 appliance
  • VMware ESXi 7.0 U3 + vCenter 7.0
  • Veeam Backup & Replication для резервного копирования

Руководство поставило задачу: мигрировать на open source за 4 месяца с нулевым простоем критичных систем (ERP, 1С, почта, AD).

Сравнение альтернатив: Proxmox vs oVirt vs OpenStack

Мы провели двухнедельный пилот трёх платформ на выделенном тестовом сервере. Критерии: функциональность, сложность эксплуатации, совместимость с оборудованием ПромМаш, стоимость поддержки.

КритерийProxmox VE 8.2oVirt 4.5OpenStack 2024.1
Установка20 минут, ISO2-3 часа, engine+host1-2 дня, множество компонентов
Веб-интерфейсПолноценный, интуитивныйХороший, но медленныйHorizon — базовый
Живая миграция VMДа, из коробкиДаДа
HA (автоперезапуск VM)Да (fencing через IPMI)Да (power management)Через Masakari (сложно)
Бэкап из коробкиДа (vzdump + PBS)Нет (нужен ovirt-backup)Нет (Cinder backup)
Поддержка WindowsОтличная (VirtIO drivers)ХорошаяХорошая
Команда для поддержки1-2 человека2-3 человека5+ человек
Стоимость подписки€110/год/сокет (Community: 0)БесплатноБесплатно

Выбор: Proxmox VE 8.2. Решающие факторы: встроенная система бэкапов (Proxmox Backup Server), простота эксплуатации для команды из 2 сисадминов ПромМаш, полноценный веб-интерфейс для администрирования и живая миграция VM между нодами кластера.

oVirt отпал из-за проекта Red Hat по его сворачиванию в пользу OpenShift Virtualization. OpenStack — избыточно сложен для 80 VM и требует отдельной команды поддержки.

Подготовка: кластер Proxmox и хранилище

Мы развернули Proxmox VE 8.2 на всех трёх серверах HPE параллельно с VMware — оба гипервизора работали на разных дисках одного сервера через двойную загрузку.

# Установка Proxmox VE 8.2 на HPE DL380 Gen10
# Загружаемся с ISO, выбираем ext4 на NVMe SSD (boot/system)
# После установки:

# Обновление и настройка репозиториев (без подписки)
rm /etc/apt/sources.list.d/pve-enterprise.list
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

# Создание кластера
pvecm create prommash-cluster
# На остальных нодах:
pvecm add 10.10.0.1
pvecm add 10.10.0.1  # (с ноды 3)
pvecm status
# Cluster information
# Name:    prommash-cluster
# Nodes:   3
# Quorate: Yes
# Подключение NetApp FAS2750 через iSCSI (FC оставили для VMware на время миграции)
# /etc/pve/storage.cfg
iscsi: netapp-iscsi
    portal 10.10.5.1
    target iqn.1992-08.com.netapp:sn.abc123:vs.prommash
    content none

lvm: netapp-lvm
    vgname pve-netapp
    base netapp-iscsi
    content images,rootdir
    shared 1
    nodes pve1,pve2,pve3
# Proxmox Backup Server на отдельной машине
# /etc/proxmox-backup/datastore.cfg
[vm-backups]
    path /backup/vms
    gc-schedule daily
    prune-schedule daily
    keep-daily 7
    keep-weekly 4
    keep-monthly 12

Важный момент: NetApp при отключении VAAI (VMware-specific оптимизация) теряет аппаратное ускорение копирования и thin provisioning. Мы компенсировали это использованием LVM thin pools поверх iSCSI LUN.

V2V конвертация: миграция виртуальных машин

Самый трудоёмкий этап — конвертация 80 VM из формата VMware (VMDK на VMFS) в формат Proxmox (qcow2/raw). Мы протестировали три подхода и выбрали комбинированный.

Подход 1: qemu-img convert (для Linux VM)

# Экспорт VMDK с ESXi через SSH
ssh root@esxi1 'vim-cmd vmsvc/power.off 42'
scp root@esxi1:/vmfs/volumes/datastore1/linux-srv/linux-srv-flat.vmdk /tmp/

# Конвертация VMDK → qcow2 с сжатием
qemu-img convert -f vmdk -O qcow2 -c \
  /tmp/linux-srv-flat.vmdk \
  /var/lib/vz/images/200/vm-200-disk-0.qcow2

# Проверка целостности
qemu-img check /var/lib/vz/images/200/vm-200-disk-0.qcow2
# No errors were found on the image.

# Создание VM в Proxmox
qm create 200 \
  --name linux-srv \
  --memory 8192 \
  --cores 4 \
  --scsihw virtio-scsi-single \
  --scsi0 local-lvm:0,import-from=/var/lib/vz/images/200/vm-200-disk-0.qcow2 \
  --net0 virtio,bridge=vmbr0 \
  --boot order=scsi0 \
  --ostype l26

Время конвертации для диска 200 GB: ~35 минут. Для всех 30 Linux VM общий объём дисков составил 4.2 TB, конвертация заняла 2 рабочих дня.

Подход 2: virt-v2v (для Windows VM с драйверами)

# virt-v2v автоматически устанавливает VirtIO-драйверы в Windows
# Это критически важно — без VirtIO Windows не увидит диск и сеть

sudo apt install virt-v2v virtio-win

# Конвертация Windows Server 2019 VM
virt-v2v -i vmx \
  '/vmfs/volumes/datastore1/win-erp/win-erp.vmx' \
  -o local -os /var/lib/vz/images/300 \
  --bridge vmbr0

# virt-v2v автоматически:
# 1. Конвертирует VMDK → qcow2
# 2. Устанавливает VirtIO SCSI и сетевые драйверы
# 3. Удаляет VMware Tools
# 4. Настраивает BCD для загрузки с VirtIO-диска

Для 12 из 45 Windows-машин virt-v2v не справился (старые Windows Server 2012 R2 с нестандартными драйверами). Для них мы использовали ручной подход: qemu-img convert + установка VirtIO-драйверов через загрузочный ISO перед миграцией.

Подход 3: Proxmox import-wizard (для appliance)

# Proxmox 8.2 поддерживает импорт OVA напрямую через GUI
# Для 5 appliance (pfSense, Veeam proxy, и т.д.):

# Экспорт OVA из vCenter
govc export.ovf -vm 'pfsense-fw' -u admin@vsphere.local /tmp/

# Импорт через CLI Proxmox
qm importovf 500 /tmp/pfsense-fw/pfsense-fw.ovf local-lvm \
  --format qcow2

Сетевая реконфигурация

VMware использовал Distributed vSwitch с VLAN-транкингом. В Proxmox мы воссоздали аналогичную топологию через Linux bridge с VLAN-aware режимом:

# /etc/network/interfaces на каждой ноде Proxmox
auto lo
iface lo inet loopback

# Физический интерфейс 10 Gbps
auto eno1
iface eno1 inet manual

# Management bridge (VLAN 10)
auto vmbr0
iface vmbr0 inet static
    address 10.10.0.1/24
    gateway 10.10.0.254
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

# VLAN-интерфейсы для разных сегментов
auto vmbr0.20
iface vmbr0.20 inet manual
# VLAN 20: Production servers

auto vmbr0.30
iface vmbr0.30 inet manual
# VLAN 30: DMZ

auto vmbr0.40
iface vmbr0.40 inet manual
# VLAN 40: Storage network
# Назначение VLAN виртуальным машинам
# В конфигурации VM (/etc/pve/qemu-server/200.conf):
net0: virtio=AA:BB:CC:DD:EE:01,bridge=vmbr0,tag=20
# tag=20 → VM попадает в Production VLAN

# Для VM, которым нужен trunk (pfSense):
net0: virtio=AA:BB:CC:DD:EE:02,bridge=vmbr0,trunks=20;30;40

Переключение сети прошло без простоя: мы настроили trunk-порт на коммутаторе Cisco для обоих гипервизоров и мигрировали VM по одной, проверяя connectivity после каждой.

План миграции: 4 волны за 3 месяца

Мигрировать 80 VM за один день — самоубийство. Мы разбили процесс на 4 волны по критичности:

  • Волна 1 (неделя 1-2): 15 некритичных Linux-серверов (dev, staging, мониторинг). Обкатка процесса, выявление проблем.
  • Волна 2 (неделя 3-5): 25 серверов средней критичности (файловый сервер, print server, внутренние web-приложения). Миграция в выходные с откатом к понедельнику.
  • Волна 3 (неделя 6-9): 30 критичных серверов (1С, ERP, SQL Server, Exchange). Миграция в технологическое окно (суббота 22:00 — воскресенье 06:00).
  • Волна 4 (неделя 10-12): AD-контроллеры, pfSense, Veeam. Завершающий этап с полным отключением VMware.
# Скрипт автоматизации миграции одной VM
#!/bin/bash
set -euo pipefail

VM_NAME=$1
ESXI_HOST=$2
PROXMOX_VMID=$3
VLAN_TAG=$4

echo "[$(date)] Starting migration of $VM_NAME"

# 1. Создать snapshot в VMware (точка отката)
ssh root@$ESXI_HOST "vim-cmd vmsvc/snapshot.create \
  \$(vim-cmd vmsvc/getallvms | grep $VM_NAME | awk '{print \$1}') \
  pre-migration 'Before Proxmox migration' 0 0"

# 2. Выключить VM
ssh root@$ESXI_HOST "vim-cmd vmsvc/power.off \
  \$(vim-cmd vmsvc/getallvms | grep $VM_NAME | awk '{print \$1}')"

# 3. Экспорт VMDK
VMDK_PATH=$(ssh root@$ESXI_HOST "find /vmfs/volumes -name '${VM_NAME}-flat.vmdk' 2>/dev/null")
scp root@$ESXI_HOST:$VMDK_PATH /tmp/${VM_NAME}.vmdk

# 4. Конвертация
qemu-img convert -f vmdk -O qcow2 -p \
  /tmp/${VM_NAME}.vmdk /tmp/${VM_NAME}.qcow2

# 5. Создание VM в Proxmox и импорт диска
qm create $PROXMOX_VMID --name $VM_NAME --memory 8192 --cores 4 \
  --scsihw virtio-scsi-single \
  --net0 virtio,bridge=vmbr0,tag=$VLAN_TAG \
  --boot order=scsi0 --ostype l26

qm importdisk $PROXMOX_VMID /tmp/${VM_NAME}.qcow2 local-lvm
qm set $PROXMOX_VMID --scsi0 local-lvm:vm-${PROXMOX_VMID}-disk-0

# 6. Запуск и проверка
qm start $PROXMOX_VMID
sleep 30
ping -c 5 $(qm guest cmd $PROXMOX_VMID network-get-interfaces | \
  jq -r '.[1]."ip-addresses"[0]."ip-address"')

echo "[$(date)] Migration of $VM_NAME completed successfully"

# Очистка
rm -f /tmp/${VM_NAME}.vmdk /tmp/${VM_NAME}.qcow2

Результаты миграции

Миграция завершилась за 11 недель (на неделю раньше срока). Все 80 VM успешно работают на Proxmox VE 8.2:

МетрикаVMware ESXiProxmox VE
Стоимость лицензий/год12.6 млн руб0 руб (Community)
Система бэкаповVeeam (доп. лицензия)PBS (встроенный)
Время live migration VM~8 секунд~12 секунд
Веб-интерфейсvSphere Client (Flash/HTML5)Proxmox Web GUI
Потребление RAM гипервизором~4 GB~1.5 GB
Время обновления30-60 минут (перезагрузка)5-10 минут (apt upgrade)

Экономия в первый год: 12.6 млн рублей минус стоимость проекта (1.8 млн рублей на наши услуги + 200 000 рублей на тестовое оборудование) = 10.6 млн рублей чистой экономии.

Из подводных камней: 3 Windows-машины с привязкой лицензий к VMware BIOS UUID потребовали переактивации. Драйверы NetApp VAAI не работают с KVM — тонкое клонирование дисков стало медленнее на 40%, но для ПромМаш это некритично. Подробнее о наших проектах миграции — на itfresh.ru.

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

Veeam для Proxmox существует как community-плагин, но не имеет полноценной поддержки. Мы рекомендуем Proxmox Backup Server (PBS) — он встроен в экосистему, поддерживает инкрементальные бэкапы с дедупликацией, и бесплатен. В нашем кейсе PBS полностью заменил Veeam.
В Proxmox нет аналога VMware DRS из коробки. Для ПромМаш с 80 VM и 3 нодами это не проблема — ручная балансировка раз в месяц достаточна. Для крупных инсталляций есть скрипты на Python (proxmox-load-balancer на GitHub) или коммерческое решение Ceph с автоматическим распределением.
С оговорками. Для 500+ VM рекомендуется Proxmox с Ceph storage, минимум 5 нод, подписка Proxmox Premium для приоритетной поддержки. HA-кластер Proxmox с fencing через IPMI обеспечивает автоматический перезапуск VM при отказе ноды за 30-60 секунд. Для SLA 99.99% добавьте географическое резервирование.
Используйте потоковую конвертацию: ssh root@esxi 'cat /vmfs/.../disk-flat.vmdk' | qemu-img convert -f vmdk -O qcow2 /dev/stdin output.qcow2. Это конвертирует «на лету» без промежуточного файла. Для тонких дисков используйте флаг -S для пропуска нулевых блоков.
Для 80 VM наш проект занял 11 недель. Типичные сроки: до 50 VM — 1-2 месяца, 50-200 VM — 2-4 месяца, 200+ VM — от полугода. Основное время уходит не на техническую конвертацию (это дни), а на тестирование каждой VM, переактивацию лицензий Windows и обучение персонала.

Нужна помощь с проектом?

Специалисты АйТи Фреш помогут с архитектурой, DevOps, безопасностью и разработкой — 15+ лет опыта

📞 Связаться с нами
#миграция VMware Proxmox#VMware альтернатива open source#Broadcom лицензирование VMware#V2V конвертация qemu-img#virt-v2v миграция VM#Proxmox VE кластер#oVirt OpenStack сравнение#VMDK в qcow2 конвертация
Комментарии 0

Оставить комментарий

загрузка...