Полное руководство по работе с Proxmox VE через консоль

  • Михаил
  • 8 мин. на прочтение
  • 7
  • 11 Jan 2026
  • 11 Jan 2026

Краткое описание Proxmox VE

Proxmox Virtual Environment (Proxmox VE) — это полнофункциональная платформа виртуализации с открытым исходным кодом, основанная на Debian Linux. Она сочетает в себе два типа виртуализации:

KVM (Kernel-based Virtual Machine) — для аппаратной виртуализации полных виртуальных машин (VM)

LXC (Linux Containers) — для легковесной виртуализации на уровне операционной системы

Ключевые компоненты Proxmox:

QEMU — эмулятор для KVM виртуализации

LXC — система контейнеризации

Corosync — для кластеризации и высокой доступности

ZFS/LVM — поддержка современных файловых систем

Ceph — встроенная поддержка распределенного хранилища

REST API/WebUI — удобное управление

Основные определения:

Процессор (CPU) в контексте виртуализации:

vCPU (виртуальный CPU) — виртуальный процессор, предоставляемый гостевой ОС

Ядра (Cores) — физические или логические ядра CPU

Socket — виртуальный сокет процессора

Типы CPU: host, kvm64, qemu64 (эмуляция разных процессоров)

NUMA (Non-Uniform Memory Access) — архитектура памяти для многопроцессорных систем

Память (RAM):

Ballooning — технология динамического перераспределения памяти между ВМ

SWAP — область на диске для расширения виртуальной памяти

Hugepages — большие страницы памяти для улучшения производительности

Memory sharing (KSM) — общая память для идентичных страниц разных ВМ

Сетевые карты и интерфейсы:

vmbrX — виртуальные мостовые интерфейсы (bridges)

VLAN — виртуальные локальные сети для сегментации трафика

Bonding — агрегация каналов для отказоустойчивости и производительности

OVS (Open vSwitch) — программно-определяемые сети

SR-IOV — прямой доступ к сетевым устройствам для лучшей производительности


Полное содержание руководства

Раздел 1: Основы работы с Proxmox

1.1. Вход в систему и базовая навигация
1.2. Архитектура Proxmox VE
1.3. Компоненты и зависимости системы

Раздел 2: Управление аппаратными ресурсами

2.1. Процессоры (CPU): типы, модели, настройки
2.2. Оперативная память (RAM): виды, управление, оптимизация
2.3. Сетевые интерфейсы: карты, мосты, VLAN, bonding
2.4. Дисковые подсистемы: HDD, SSD, NVMe
2.5. Аппаратное ускорение: GPU, FPGA, специализированные карты

Раздел 3: Работа с виртуальными машинами (KVM)

3.1. Создание и конфигурация ВМ
3.2. Управление жизненным циклом ВМ
3.3. Редактирование параметров ВМ
3.4. Управление дисками и хранилищем ВМ
3.5. Сетевые настройки ВМ
3.6. Снимки состояния и клонирование

Раздел 4: Работа с контейнерами LXC

4.1. Создание и настройка контейнеров
4.2. Управление ресурсами контейнеров
4.3. Сетевые настройки LXC
4.4. Точки монтирования и хранилище

Раздел 5: Управление хранилищами

5.1. Типы хранилищ Proxmox
5.2. Настройка локальных хранилищ (LVM, ZFS, Directory)
5.3. Настройка сетевых хранилищ (NFS, CIFS, iSCSI)
5.4. Распределенные хранилища (Ceph)
5.5. Миграция данных между хранилищами

Раздел 6: Сетевая инфраструктура

6.1. Настройка сетевых карт и интерфейсов
6.2. Создание и управление виртуальными сетями
6.3. VLAN и сетевые сегменты
6.4. Безопасность сети: фаервол, политики
6.5. SDN (Software Defined Networking) в Proxmox

Раздел 7: Кластеризация и высокая доступность

7.1. Создание и управление кластером
7.2. Настройка HA (High Availability)
7.3. Миграция ВМ между узлами
7.4. Восстановление после сбоев

Раздел 8: Резервное копирование и восстановление

8.1. Настройка резервного копирования
8.2. Расписание бэкапов
8.3. Восстановление ВМ и контейнеров
8.4. Аварийное восстановление

Раздел 9: Мониторинг и диагностика

9.1. Мониторинг ресурсов системы
9.2. Анализ производительности
9.3. Работа с логами
9.4. Устранение неисправностей

Раздел 10: Безопасность и обновления

10.1. Настройка безопасности Proxmox
10.2. Обновление системы и компонентов
10.3. Роли и права доступа
10.4. Сертификаты и шифрование

Раздел 11: Расширенные возможности

11.1. Автоматизация через API и CLI
11.2. Интеграция с внешними системами
11.3. Кастомизация и оптимизация
11.4. Миграция с других платформ виртуализации

Раздел 12: Экстренные ситуации

12.1. Восстановление системы
12.2. Потеря quorum в кластере
12.3. Проблемы с хранилищами
12.4. Сброс паролей и доступа

Приложения

A. Полезные команды для ежедневного использования
B. Примеры скриптов для автоматизации
C. Таблица кодов ошибок и их решение
D. Ссылки на документацию и ресурсы


Теперь подробно рассмотрим ключевые аспекты:

2.1. Процессоры (CPU) в Proxmox

Типы процессоров в виртуализации:

# Просмотр информации о физическом CPU
cat /proc/cpuinfo
lscpu
# Доступные модели CPU в KVM
kvm-ok                                       # Проверка поддержки KVM
find /usr/share/kvm/ -name "*.xml" | head   # Модели CPU
# Настройка CPU для ВМ
qm set 100 --cpu cputype=host                # Использовать CPU хоста
qm set 100 --cpu cputype=EPYC                # Эмуляция AMD EPYC
qm set 100 --cpu cputype=Haswell-noTSX       # Эмуляция Intel Haswell

Параметры CPU для ВМ:

# Основные параметры
qm set 100 --cores 4                         # 4 виртуальных ядра
qm set 100 --sockets 2 --cores 4 --type host # 2 сокета по 4 ядра
qm set 100 --cpuunits 1024                   # Вес CPU (относительный)
qm set 100 --cpulimit 0.5                    # Ограничение использования (50%)
# NUMA настройки
qm set 100 --numa 1                          # Включить NUMA
qm set 100 --numa cpus=0-3,hostnodes=0,memory=2048

Оптимизация CPU:

# Включение вложенной виртуализации
qm set 100 --args -cpu host,+vmx            # Для Intel
qm set 100 --args -cpu host,+svm            # Для AMD
# Настройка topology
qm set 100 --vcpus 8 --cores 4 --sockets 2  # 2 сокета × 4 ядра

2.2. Оперативная память (RAM)

Типы памяти в виртуализации:

# Просмотр информации о памяти
free -h
cat /proc/meminfo
dmidecode -t memory                         # Подробная информация о модулях
# Настройка памяти для ВМ
qm set 100 --memory 4096                    # 4GB RAM
qm set 100 --balloon 2048                   # Ballooning до 2GB

Ballooning (динамическая память):

# Включение balloon driver
qm set 100 --balloon 0                      # Отключить ballooning
qm set 100 --balloon 1024                   # Минимальный размер 1GB
# Проверка ballooning
qm config 100 | grep balloon
cat /sys/devices/system/node/node*/meminfo | grep HugePages

Hugepages (большие страницы):

# Настройка hugepages
echo 2048 > /proc/sys/vm/nr_hugepages       # Выделить 2048 hugepages
sysctl vm.nr_hugepages=2048                 # Через sysctl
# Монтирование hugepages
mount -t hugetlbfs hugetlbfs /dev/hugepages
# Для ВМ
qm set 100 --hugepages 1024                 # Использовать hugepages

SWAP управление:

# Настройка swap для ВМ
qm set 100 --swap 1024                      # 1GB swap
# Системный swap
swapon --show
swapon -a                                   # Активировать все swap разделы
swapoff /dev/sdXN                           # Отключить swap

2.3. Сетевые интерфейсы

Физические сетевые карты:

# Просмотр сетевых интерфейсов
lspci | grep -i ethernet                    # Сетевые карты
ethtool eth0                                # Информация об интерфейсе
ip link show                                # Все интерфейсы
# Настройка скорости и дуплекса
ethtool -s eth0 speed 1000 duplex full autoneg off

Виртуальные мосты (vmbr):

# Просмотр мостов
brctl show
bridge link show
# Создание моста через CLI
ip link add name vmbr1 type bridge
ip link set vmbr1 up
ip addr add 192.168.1.1/24 dev vmbr1
# Постоянная настройка (/etc/network/interfaces)
auto vmbr1
iface vmbr1 inet static
   address 192.168.1.1/24
   bridge_ports none
   bridge_stp off
   bridge_fd 0

VLAN настройка:

# Создание VLAN интерфейса
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.10.1/24 dev eth0.10
ip link set eth0.10 up
# В конфигурации
auto eth0.10
iface eth0.10 inet manual
auto vmbr10
iface vmbr10 inet static
   address 192.168.10.1/24
   bridge_ports eth0.10
   bridge_stp off

Bonding (агрегация каналов):

# Создание bond интерфейса
ip link add bond0 type bond mode 802.3ad
ip link set eth0 down
ip link set eth1 down
ip link set eth0 master bond0
ip link set eth1 master bond0
ip link set bond0 up
# Режимы bonding:
# mode=0 (balance-rr)    - циклический баланс
# mode=1 (active-backup) - активный-резервный
# mode=2 (balance-xor)   - баланс XOR
# mode=3 (broadcast)     - широковещательный
# mode=4 (802.3ad)       - агрегация LACP
# mode=5 (balance-tlb)   - адаптивный баланс передачи
# mode=6 (balance-alb)   - адаптивный баланс приема/передачи

Open vSwitch (OVS):

# Установка OVS
apt install openvswitch-switch
# Создание OVS bridge
ovs-vsctl add-br ovsbr0
ovs-vsctl add-port ovsbr0 eth0
ovs-vsctl add-port ovsbr0 eth1
# Настройка VLAN в OVS
ovs-vsctl set port eth0 tag=10
ovs-vsctl add-port ovsbr0 vlan100 tag=100 -- set interface vlan100 type=internal

SR-IOV (Single Root I/O Virtualization):

# Проверка поддержки SR-IOV
lspci -vvv | grep -i "single root"
# Включение SR-IOV в ядре
echo "options ixgbe max_vfs=8" > /etc/modprobe.d/ixgbe.conf
modprobe -r ixgbe && modprobe ixgbe
# Назначение VF ВМ
qm set 100 --hostpci0 01:00.1

3.1. Создание и конфигурация ВМ

Базовое создание ВМ:

# Минимальная команда создания ВМ
qm create 100
# Создание с указанием имени
qm create 100 --name "ubuntu-server"
# Создание с полной конфигурацией
qm create 100 \
 --name "Production-VM" \
 --description "Виртуальная машина для веб-сервера" \
 --memory 4096 \
 --balloon 1024 \
 --cores 4 \
 --sockets 1 \
 --cpu host \
 --net0 virtio,bridge=vmbr0 \
 --scsi0 local-lvm:32 \
 --ostype l26 \
 --boot order=scsi0 \
 --agent 1 \
 --onboot 1 \
 --protection 0 \
 --tablet 1

Параметры создания ВМ:

Типы ОС:

# Определение типа гостевой ОС
qm set 100 --ostype l26                    # Linux 2.6/3.x/4.x/5.x (64-bit)
qm set 100 --ostype w2k8                   # Windows 2008
qm set 100 --ostype w2k12                  # Windows 2012
qm set 100 --ostype win10                  # Windows 10
qm set 100 --ostype ubuntu                 # Ubuntu
qm set 100 --ostype debian                 # Debian
qm set 100 --ostype centos                 # CentOS

BIOS/EFI настройки:

# BIOS (по умолчанию)
qm set 100 --bios seabios
# UEFI с OVMF
qm set 100 --bios ovmf \
 --efidisk0 local-lvm:4m \
 --machine q35
# Secure Boot (требует OVMF)
qm set 100 --args "-global driver=cfi.pflash01,property=secure,value=on"

Машина и архитектура:

# Тип машины
qm set 100 --machine pc-i440fx-6.1        # Стандартная (по умолчанию)
qm set 100 --machine q35                  # Современная с PCIe
qm set 100 --machine virt                 # Только KVM
# Архитектура CPU
qm set 100 --arch x86_64                  # 64-bit
qm set 100 --arch aarch64                 # ARM 64-bit (требует KVM на ARM)

3.2. Управление жизненным циклом ВМ

Стандартные операции:

# Запуск ВМ
qm start 100                              # Обычный запуск
qm start 100 --skiplock                   # Запуск с игнорированием блокировок
qm start 100 --force                      # Принудительный запуск
# Остановка ВМ
qm shutdown 100                           # Грациозная остановка (через ACPI)
qm shutdown 100 --timeout 60              # С таймаутом 60 секунд
qm shutdown 100 --forceStop               # Принудительная остановка
# Перезагрузка
qm reset 100                              # Жесткая перезагрузка
qm reboot 100                             # Мягкая перезагрузка (через ACPI)
# Приостановка/возобновление
qm suspend 100                            # Приостановить ВМ
qm resume 100                             # Возобновить ВМ

ЭКСТРЕННАЯ ОСТАНОВКА (ВАЖНО!):

# Метод 1: Через qm stop с флагами
qm stop 100 --forceStop --skiplock        # Немедленная остановка
# Метод 2: Сигнал SIGKILL процессу QEMU
# Найти PID ВМ
cat /var/run/qemu-server/100.pid
# Отправить SIGTERM (грациозно)
kill $(cat /var/run/qemu-server/100.pid)
# Отправить SIGKILL (немедленно)
kill -9 $(cat /var/run/qemu-server/100.pid)
# Метод 3: Через систему задач Proxmox
pvesh create /nodes/node1/tasks/stopvm -vmid 100
# Метод 4: Уничтожение через QEMU monitor
qm monitor 100                            # Войти в monitor
system_powerdown                          # Грациозное выключение
quit                                       # Выйти
# Через one-liner
echo "system_powerdown" | socat - UNIX-CONNECT:/var/run/qemu-server/100.mon

Мониторинг состояния:

# Проверка статуса ВМ
qm status 100
qm config 100 --current 1                 # Текущая конфигурация
# Список всех ВМ с их статусами
qm list                                   # Краткий список
pvesh get /nodes/node1/qemu               # Детальный список через API

3.3. Редактирование параметров ВМ

Изменение основных параметров:

# Изменение имени и описания
qm set 100 --name "Новое имя ВМ"
qm set 100 --description "Описание виртуальной машины"
# Изменение тегов
qm set 100 --tags "prod,webserver,backup-daily"

Управление ресурсами CPU:

# Изменение количества CPU
qm set 100 --cores 8                      # 8 ядер
qm set 100 --sockets 2 --cores 4          # 2 сокета по 4 ядра
# Ограничения CPU
qm set 100 --cpulimit 0.5                 # Ограничить до 50% CPU
qm set 100 --cpuunits 1024                # Вес CPU (относительный приоритет)
# NUMA настройки
qm set 100 --numa 1                       # Включить NUMA
qm set 100 --numa cpus=0-7,hostnodes=0,memory=8192

Управление памятью:

# Изменение объема RAM
qm set 100 --memory 8192                  # 8GB RAM
qm set 100 --balloon 4096                 # Минимальный размер при ballooning
# Настройка памяти
qm set 100 --hugepages 1024               # Использовать hugepages (в MB)
qm set 100 --shares 1000                  # Вес памяти

Управление загрузкой:

# Порядок загрузки
qm set 100 --boot order=scsi0;net0        # Сначала диск, потом сеть
# Опции загрузки
qm set 100 --bootdisk scsi0               # Установить загрузочный диск
qm set 100 --acpi 1                       # Включить ACPI
qm set 100 --kvm 1                        # Включить аппаратную виртуализацию

Прямое редактирование конфигурации:

# Просмотр конфигурации
cat /etc/pve/qemu-server/100.conf
# Редактирование конфигурации
nano /etc/pve/qemu-server/100.conf
# После редактирования вручную
qm rescan --vmid 100                      # Пересканировать конфигурацию

3.4. Управление дисками ВМ

Добавление дисков:

# Добавить диск SCSI
qm set 100 --scsi1 local-lvm:50           # 50GB диск на local-lvm
# Добавить диск VirtIO (лучшая производительность)
qm set 100 --virtio2 local-zfs:100        # 100GB диск на ZFS
# Добавить диск IDE (для совместимости)
qm set 100 --ide0 local:32                # 32GB диск
# Специальные параметры диска
qm set 100 --scsi1 local-lvm:50,ssd=1,cache=writeback,discard=on,iothread=1
# Параметры:
#   ssd=1           - эмулировать SSD
#   cache=none/writeback/writethrough - политика кэширования
#   discard=on      - включить TRIM/UNMAP
#   iothread=1      - использовать отдельный IO thread
#   replicate=0     - отключить репликацию для этого диска
#   backup=0        - исключить из бэкапа

Расширение дисков:

# Расширение диска на стороне Proxmox
qm resize 100 scsi0 +20G                   # Добавить 20GB
qm resize 100 scsi0 100G                   # Установить размер 100GB
# Для дисков на ZFS
qm resize 100 virtio0 200G
# После расширения в Proxmox, внутри гостевой ОС:
# Для Linux:
#   fdisk -l                              # Посмотреть новый размер
#   parted /dev/sda resizepart 1 100%     # Расширить раздел
#   resize2fs /dev/sda1                   # Расширить файловую систему
# Для Windows:
#   Зайти в Disk Management и расширить том

Изменение параметров существующих дисков:

# Изменить cache политику
qm set 100 --scsi0 local-lvm:50,cache=writeback
# Включить/выключить диск
qm set 100 --scsi0 local-lvm:50,disable=1  # Отключить диск
qm set 100 --delete scsi0                  # Удалить диск полностью

Миграция дисков:

# Миграция диска между хранилищами
qm move_disk 100 scsi0 new-storage --delete
# Онлайн миграция диска
qm move_disk 100 scsi0 new-storage --online
# Копирование диска
dd if=/dev/pve/vm-100-disk-0 of=/mnt/backup/vm-100-disk-0.img bs=1M

Управление кэшированием дисков:

# Просмотр текущих настроек кэша
qm config 100 | grep -i cache
# Настройка кэширования для каждого диска
# none       - нет кэширования (самый безопасный, низкая производительность)
# writethrough - запись сразу на диск (безопасно, средняя производительность)
# writeback  - запись в кэш (высокая производительность, риск потери данных)
# unsafe     - как writeback, но без flush команд (только для тестов)
qm set 100 --scsi0 local-lvm:32,cache=writeback
qm set 100 --virtio1 local-zfs:64,cache=none
# Для базовых дисков (без важных данных)
qm set 100 --scsi2 local:20,cache=unsafe

3.5. Мониторинг и диагностика ВМ

Статистика использования ресурсов:

# Общая статистика ВМ
qm status 100                             # Статус ВМ
qm config 100 --current 1                 # Текущая конфигурация
# Детальная статистика через API
pvesh get /nodes/node1/qemu/100/status/current
# Использование CPU
top -p $(cat /var/run/qemu-server/100.pid)  # Процесс QEMU
# Использование памяти
cat /sys/fs/cgroup/memory/qemu.slice/machine-qemu\\x2d100\\x2dvm.scope/memory.usage_in_bytes
# Использование диска
qemu-img info /dev/pve/vm-100-disk-0     # Информация о диске

Производительность и метрики:

# RBD (для Ceph) статистика
rbd perf image stats -p rbd vm-100-disk-0
# ZFS статистика
zpool iostat -v
# Сетевая статистика
cat /proc/$(cat /var/run/qemu-server/100.pid)/net/dev

Логи ВМ:

# Основные логи ВМ
tail -f /var/log/pve/tasks/active        # Активные задачи
tail -f /var/log/pve/tasks/index         # История задач
# Логи QEMU
journalctl -u qemu-server -f              # Systemd логи QEMU
cat /var/log/qemu-server/100.log          # Лог конкретной ВМ
# Мониторинг в реальном времени
watch -n 1 'qm status 100'               # Обновление каждую секунду

3.6. Снимки состояния (snapshots)

Создание снимков:

# Создать снимок
qm snapshot 100 initial-state --description "Состояние после установки ОС"
# Снимок с памятью (live snapshot)
qm snapshot 100 before-update --vmstate 1 --description "Состояние перед обновлением"
# Автоматическое именование по дате
qm snapshot 100 $(date +%Y%m%d-%H%M%S)
# Снимок без памяти
qm snapshot 100 backup-snapshot

Управление снимками:

# Список снимков
qm listsnapshot 100
# Информация о снимке
qm snapshot 100 list
# Переименование снимка
qm snapshot 100 --snapname old-name --name new-name
# Удаление снимка
qm delsnapshot 100 snapshot-name
# Удаление всех снимков
qm delsnapshot 100 --force

Восстановление из снимков:

# Восстановление состояния
qm rollback 100 snapshot-name
# Восстановление с переименованием ВМ
qm rollback 100 snapshot-name --name "Восстановленная ВМ"
# Клонирование из снимка
qm clone 100 200 --snapshot snapshot-name --name "Клон из снимка"

Консолидация снимков:

# Проверка необходимости консолидации
qm status 100 | grep -i consolidation
# Принудительная консолидация
qm snapshot 100 --force
# Управление через storage
pvesm status local-lvm --content images

3.7. Консольный доступ к ВМ

VNC доступ:

# Настройка VNC
qm set 100 --vga std                     # Стандартный VGA
qm set 100 --vga qxl                     # QXL драйвер (лучше для SPICE)
qm set 100 --vga virtio                  # VirtIO-GPU
# Параметры VNC
qm set 100 --vnc 0.0.0.0:1               # Слушать на всех интерфейсах
qm set 100 --vnc 192.168.1.100:1         # Конкретный IP
qm set 100 --vnc socket                  # Только через socket
# Подключение к VNC через SSH туннель
ssh -L 5901:localhost:5901 root@proxmox-host
# Затем подключиться к localhost:5901 через VNC клиент

SPICE доступ:

# Включение SPICE
qm set 100 --spice enabled=1,password=secret,tls=0
# Расширенные настройки SPICE
qm set 100 --spice enabled=1,password=secret,tls=1,proxy=192.168.1.100

Серийная консоль:

# Включение серийной консоли
qm set 100 --serial0 socket
# Подключение к серийной консоли
qm terminal 100
# Альтернативный способ
socat - UNIX-CONNECT:/var/run/qemu-server/100.serial0
# Настройка для Linux гостевой ОС
# В гостевой ОС добавьте в /etc/default/grub:
# GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"
# Затем: update-grub

QEMU Monitor:

# Доступ к QEMU monitor
qm monitor 100
# Команды monitor:
#   info status      - статус ВМ
#   info balloon     - информация о памяти
#   info block       - информация о дисках
#   info network     - информация о сети
#   info pci         - информация о PCI устройствах
#   system_powerdown - мягкое выключение
#   system_reset     - жесткая перезагрузка
#   quit             - выход
# One-liner команды
echo "info status" | qm monitor 100
echo "system_powerdown" | socat - UNIX-CONNECT:/var/run/qemu-server/100.mon

3.8. Управление ISO образами

Загрузка ISO:

# Скачивание ISO в хранилище
cd /var/lib/vz/template/iso
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso
# Через pveam
pveam update
pveam available --section system
pveam download local ubuntu-22.04.3-live-server-amd64.iso

Монтирование ISO к ВМ:

# Монтирование ISO как CD-ROM
qm set 100 --ide2 local:iso/ubuntu-22.04.3-live-server-amd64.iso,media=cdrom
# Установка загрузки с CD-ROM
qm set 100 --boot order=ide2
# После установки, отмонтировать ISO
qm set 100 --delete ide2
qm set 100 --boot order=scsi0

Управление ISO хранилищем:

# Список доступных ISO
pveam list local | grep iso
# Удаление ISO
rm /var/lib/vz/template/iso/old-version.iso
# Создание загрузочного USB через ISO
dd if=ubuntu.iso of=/dev/sdX bs=4M status=progress

3.9. Бэкап и восстановление ВМ

Ручной бэкап:

# Создание бэкапа ВМ
vzdump 100 \
 --mode snapshot \
 --compress zstd \
 --storage backup-storage \
 --mailto admin@example.com \
 --quiet 0
# Бэкап с исключением дисков
vzdump 100 --exclude-path /mnt/data/
# Бэкап нескольких ВМ
vzdump 100,101,102 --mode stop
# Расписание бэкапов через cron
crontab -e
# Ежедневно в 2:00
0 2 * * * vzdump 100 --mode snapshot --storage backup --compress zstd

Восстановление из бэкапа:

# Список бэкапов
pvesh get /nodes/node1/storage/backup/content
# Восстановление ВМ
qmrestore /var/lib/vz/dump/vzdump-qemu-100.vma.zst 200 \
 --storage local-lvm \
 --force
# Восстановление с заменой существующей ВМ
qmrestore /path/to/backup.vma.zst 100 --force
# Восстановление только дисков
qmrestore /path/to/backup.vma.zst 100 --storage local-lvm --pool restore-pool

Экспорт/импорт ВМ:

# Экспорт ВМ в формат RAW
qemu-img convert -f raw -O qcow2 /dev/pve/vm-100-disk-0 /mnt/export/vm-100.qcow2
# Импорт диска в ВМ
qm importdisk 100 /mnt/import/disk.qcow2 local-lvm
qm set 100 --scsi0 local-lvm:vm-100-disk-0

3.10. Расширенные возможности

GPU Passthrough:

# Проверка поддержки IOMMU
dmesg | grep -i iommu
cat /proc/cmdline | grep iommu
# Включение IOMMU в ядре
# Добавить в /etc/default/grub:
# GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
# или для AMD:
# GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
# Поиск устройств для passthrough
lspci -nn | grep -i vga
# Добавление GPU к ВМ
qm set 100 --hostpci0 01:00.0,pcie=1,rombar=0
# Полный пример GPU passthrough
qm set 100 \
 --machine q35 \
 --bios ovmf \
 --hostpci0 01:00.0,pcie=1,x-vga=1 \
 --hostpci1 01:00.1 \
 --ostype win10

SR-IOV:

# Активация VF (Virtual Functions)
echo 4 > /sys/class/net/eth0/device/sriov_numvfs
# Проверка созданных VF
lspci | grep -i ethernet
# Назначение VF ВМ
qm set 100 --hostpci0 0000:01:10.0

QEMU Guest Agent:

# Включение guest agent
qm set 100 --agent 1
# Проверка статуса agent
qm guest exec 100 -- cat /etc/os-release
# Выполнение команд в гостевой ОС
qm guest exec 100 -- df -h
# Копирование файлов
qm guest exec 100 -- put /tmp/local-file /remote/path/file
qm guest exec 100 -- get /remote/path/file /tmp/local-file

Автоматизация через API/CLI:

# Скрипт для массового создания ВМ
#!/bin/bash
for i in {101..110}; do
 qm create $i \
   --name "vm-$i" \
   --memory 2048 \
   --cores 2 \
   --net0 virtio,bridge=vmbr0 \
   --scsi0 local-lvm:20
 echo "VM $i создана"
done
# Скрипт для массового бэкапа
#!/bin/bash
VMS="100 101 102 103"
for vm in $VMS; do
 vzdump $vm --mode snapshot --storage backup --compress zstd
done

Оптимизация производительности ВМ:

# Для Linux гостевых ОС
qm set 100 \
 --cpu host \
 --args "-cpu host,+ssse3,+sse4.1,+sse4.2,+avx,+avx2" \
 --machine q35 \
 --bios ovmf \
 --scsi0 local-zfs:50,discard=on,iothread=1 \
 --net0 virtio,bridge=vmbr0,queues=4 \
 --balloon 0 \
 --hugepages 1024
# Для Windows гостевых ОС
qm set 100 \
 --cpu host \
 --machine q35 \
 --bios ovmf \
 --scsi0 local-lvm:50,cache=writeback,discard=on \
 --net0 virtio,bridge=vmbr0 \
 --tablet 1 \
 --vga qxl \
 --args "-cpu host,kvm=off"

Управление через REST API:

# Получение списка ВМ через API
curl -k -X GET "https://proxmox:8006/api2/json/nodes/node1/qemu" \
 -H "Authorization: PVEAPIToken=root@pam!tokenid=secrettoken"
# Создание ВМ через API
curl -k -X POST "https://proxmox:8006/api2/json/nodes/node1/qemu" \
 -H "Authorization: PVEAPIToken=root@pam!tokenid=secrettoken" \
 -d "vmid=100&name=test-vm&memory=2048&cores=2"

Быстрые команды для ежедневного использования

# Проверка состояния всех ВМ
qm list
# Быстрый запуск/остановка
alias vmstart='qm start'
alias vmstop='qm stop'
alias vmrestart='qm reboot'
# Просмотр логов ВМ
alias vmlog='tail -f /var/log/qemu-server/'
# Мониторинг ресурсов ВМ
watch -n 2 'qm list; echo "---"; pvesh get /cluster/resources | grep -E "cpu|mem|storage"'
# Резервное копирование ВМ с почтовым уведомлением
vzdump 100 --mode snapshot --mailto admin@example.com --mailnotification always

Устранение неполадок ВМ

# ВМ не запускается
qm config 100                           # Проверить конфигурацию
dmesg | tail -50                        # Проверить ошибки ядра
journalctl -u qemu-server -n 50         # Логи QEMU службы
# Проблемы с диском
qemu-img check /dev/pve/vm-100-disk-0   # Проверить диск на ошибки
fsck /dev/pve/vm-100-disk-0             # Проверить файловую систему
# Проблемы с сетью
qm monitor 100                          # Войти в monitor
info network                            # Проверить сеть

6.1. Детальная настройка сетевых карт

Конфигурация нескольких сетевых интерфейсов:

# Пример /etc/network/interfaces для многосетевой конфигурации
# Публичная сеть
auto eth0
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
   address 94.130.12.34/28
   gateway 94.130.12.33
   bridge_ports eth0
   bridge_stp off
   bridge_fd 0
# Приватная сеть
auto eth1
iface eth1 inet manual
auto vmbr1
iface vmbr1 inet static
   address 10.0.0.1/24
   bridge_ports eth1
   bridge_stp off
   bridge_fd 0
# Сеть для миграции/репликации
auto eth2
iface eth2 inet static
   address 192.168.100.1/24
   mtu 9000                              # Jumbo frames

Настройка MTU (Jumbo Frames):

# Для физических интерфейсов
ip link set eth0 mtu 9000
# Для мостов
bridge link set dev eth0 mtu 9000
# В конфигурации
iface eth0 inet manual
   mtu 9000
iface vmbr0 inet static
   mtu 9000
   bridge_ports eth0

Настройка сетевых очередей (RSS, RPS, RFS):

# RSS (Receive Side Scaling)
ethtool -l eth0                          # Показать количество очередей
ethtool -L eth0 combined 8              # Установить 8 очередей
# RPS (Receive Packet Steering)
echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus
# RFS (Receive Flow Steering)
echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt

Примеры комплексных конфигураций

Конфигурация для высоконагруженной ВМ:

# Создание ВМ с оптимизированными параметрами
qm create 100 \
 --name "highload-vm" \
 --memory 16384 \
 --balloon 4096 \
 --hugepages 1024 \
 --cores 8 \
 --sockets 2 \
 --numa 1 \
 --cpu host \
 --args "-cpu host,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+aes" \
 --scsi0 local-zfs:100,discard=on,ssd=1,iothread=1 \
 --net0 virtio,bridge=vmbr0,queues=4 \
 --machine q35 \
 --bios ovmf \
 --efidisk0 local-lvm:4m \
 --agent 1 \
 --hotplug disk,network,usb

Конфигурация сети для кластера:

# /etc/network/interfaces для узла кластера
# Корпоративная сеть
auto eno1
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
   address 10.10.10.10/24
   gateway 10.10.10.1
   bridge_ports eno1
   bridge_stp off
   bridge_fd 0
# Сеть для репликации Ceph/миграции
auto eno2
iface eno2 inet manual
auto vmbr1
iface vmbr1 inet static
   address 192.168.100.10/24
   bridge_ports eno2
   mtu 9000
   bridge_stp off
   bridge_fd 0
   bridge_maxwait 0
# Bonding для отказоустойчивости (если есть 4 интерфейса)
auto bond0
iface bond0 inet manual
   bond-slaves eno3 eno4
   bond-miimon 100
   bond-mode 802.3ad
   bond-xmit-hash-policy layer3+4
   mtu 9000
auto vmbr2
iface vmbr2 inet static
   address 192.168.200.10/24
   bridge_ports bond0
   bridge_stp off
   bridge_fd 0

Мониторинг сетевых интерфейсов

# Мониторинг трафика
iftop -i eth0                          # Трафик в реальном времени
nethogs eth0                           # Трафик по процессам
bmon                                   # Монитор пропускной способности
# Статистика сетевых интерфейсов
cat /proc/net/dev                      # Базовая статистика
ip -s link show eth0                   # Подробная статистика
ethtool -S eth0                        # Статистика драйвера
# Мониторинг ошибок
watch -n 1 'ethtool eth0 | grep -A5 "Link"'  # Состояние ссылки
cat /sys/class/net/eth0/statistics/*_errors  # Ошибки

Управление QoS (Quality of Service)

# Установка tc (traffic control)
apt install iproute2
# Ограничение исходящей полосы пропускания
tc qdisc add dev eth0 root tbf rate 100mbit burst 32kbit latency 400ms
# Приоритизация трафика
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 500mbit ceil 1000mbit prio 1  # Высокий приоритет
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 300mbit ceil 1000mbit prio 2  # Средний приоритет
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 200mbit ceil 1000mbit prio 3  # Низкий приоритет

Это руководство предоставляет полный набор команд и методик для управления всеми аспектами Proxmox VE через консоль. Всегда тестируйте команды в тестовой среде перед применением в production, особенно при работе с критическими настройками сети и хранилищ.