# Развёртывание и настройка Proxmox VE ## Консолидация СКАДА, ЛЭРС, лифты, «Меркурий» | Параметр | Значение | |----------|----------| | Версия | 1.5 | | Дата | 09.07.2026 | | Связанный документ | [Техническое задание](TZ-proxmox-konsolidaciya.md) | --- ## Содержание 1. [Предварительные требования](#1-предварительные-требования) 2. [Фаза 0 — Подготовка](#2-фаза-0--подготовка) 3. [Фаза 1 — Установка Proxmox VE](#3-фаза-1--установка-proxmox-ve) - [3.1. Настройка MegaRAID (BIOS контроллера)](#31-настройка-megaraid-bios-контроллера) - [3.2. Выбор схемы разбивки дисков](#32-выбор-схемы-разбивки-дисков) - [3.3. Схема «A» — RAID1 + RAID10 (раздельно)](#33-схема-a--raid1--raid10-раздельно) - [3.4. Схема «B» — один RAID10 на всё (рекомендуется)](#34-схема-b--один-raid10-на-всё-рекомендуется) - [3.5. Установка Proxmox VE](#35-установка-proxmox-ve) - [3.6. Мониторинг RAID](#36-мониторинг-raid) 4. [Фаза 2 — Настройка IOMMU и VFIO (Вариант А)](#4-фаза-2--настройка-iommu-и-vfio-вариант-а) 5. [Фаза 3 — Создание виртуальных машин](#5-фаза-3--создание-виртуальных-машин) 6. [Фаза 4 — Установка Windows 10](#6-фаза-4--установка-windows-10) 7. [Фаза 5 — GPU и USB Passthrough (Вариант А)](#7-фаза-5--gpu-и-usb-passthrough-вариант-а) 8. [Фаза 6 — Настройка RDP (Вариант Б)](#8-фаза-6--настройка-rdp-вариант-б) 9. [Фаза 7 — Миграция программ](#9-фаза-7--миграция-программ) - [9.2. Восстановление из Veeam Agent](#92-восстановление-из-veeam-agent) 10. [Фаза 8 — Резервное копирование](#10-фаза-8--резервное-копирование) 11. [Фаза 9 — Тестирование и ввод в эксплуатацию](#11-фаза-9--тестирование-и-ввод-в-эксплуатацию) 12. [Устранение неполадок](#12-устранение-неполадок) 13. [Справочник конфигураций ВМ](#13-справочник-конфигураций-вм) --- ## 1. Предварительные требования ### 1.1. Состав виртуальных машин | VM ID | Имя | Назначение | IP (пример) | vCPU | RAM | Диск | |-------|-----|-----------|-------------|------|-----|------| | 101 | vm-scada | СКАДА + «Меркурий» | 192.168.10.11 | 6 | 20 ГБ | 200 ГБ | | 102 | vm-lers | ЛЭРС Учёт | 192.168.10.12 | 4 | 16 ГБ | 120 ГБ | | 103 | vm-lifts | Управление лифтами | 192.168.10.13 | 4 | 16 ГБ | 120 ГБ | ### 1.2. Необходимые образы и файлы - ISO Proxmox VE 8.x — [proxmox.com/downloads](https://www.proxmox.com/en/downloads) - ISO Windows 10 - VirtIO drivers — [fedoraproject.org/wiki/Windows_Virtio_Drivers](https://fedoraproject.org/wiki/Windows_Virtio_Drivers) - Полные бэкапы текущих ПК (образы + БД + конфигурации) ### 1.3. Сетевая схема (пример) | Узел | IP | VLAN | Назначение | |------|-----|------|-----------| | Proxmox host | 192.168.10.10 | 10 | Управление | | VM-101 | 192.168.10.11 | 10 | СКАДА + «Меркурий» | | VM-102 | 192.168.10.12 | 10 | ЛЭРС | | VM-103 | 192.168.10.13 | 10 | Лифты | | MOXA (до замены) | 192.168.10.20 | 10 | Конвертер RS-485 | | RDP-клиент | 192.168.10.50 | 10 | Рабочее место (Вариант Б) | --- ## 2. Фаза 0 — Подготовка ### 2.1. Инвентаризация Зафиксировать для каждого текущего ПК: - [ ] Версия Windows 10 (build) - [ ] Версии СКАДА, ЛЭРС, лифтов, «Меркурия» - [ ] Размеры баз данных - [ ] IP-адреса, маски, шлюзы, DNS - [ ] COM-порты и скорости (если используются) - [ ] Подключение MOXA (IP, порт, виртуальный COM) - [ ] Vendor:Product ID USB-ключа «Меркурия» Узнать ID USB-ключа на Linux-хосте (после установки Proxmox): ```bash lsusb # Пример вывода: Bus 001 Device 005: ID 0529:0001 Aladdin HASP HL 3.25 ``` ### 2.2. Резервное копирование исходных систем На каждом из трёх ПК: 1. Создать образ диска (Macrium Reflect / Clonezilla). 2. Экспортировать базы данных СКАДА и ЛЭРС штатными средствами ПО. 3. Сохранить конфигурации лифтовой программы и «Меркурия». 4. Скопировать бэкапы на внешний носитель и NAS. ### 2.3. Проверка IOMMU (только Вариант А, после сборки железа) В BIOS включить VT-d/IOMMU, установить Proxmox, выполнить: ```bash dmesg | grep -e DMAR -e IOMMU -e AMD-Vi ``` Скрипт проверки IOMMU groups: ```bash #!/bin/bash # save as: /root/check-iommu.sh for g in /sys/kernel/iommu_groups/*; do echo "Group $(basename $g):" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done done ``` ```bash chmod +x /root/check-iommu.sh /root/check-iommu.sh | tee /root/iommu-groups.txt ``` **Критерий готовности:** каждая GPU находится в отдельной IOMMU group (допустимо только с HDMI-audio той же карты). --- ## 3. Фаза 1 — Установка Proxmox VE > Рекомендуемый путь — **аппаратный RAID** на Broadcom/LSI MegaRAID с BBU/CacheVault, **ext4 + LVM-thin**. Подробности по выбору контроллера — в [ТЗ, раздел 3.1](TZ-proxmox-konsolidaciya.md#31-подсистема-хранения-общая-для-обоих-вариантов). ### 3.1. Настройка MegaRAID (BIOS контроллера) Перед установкой Proxmox войдите в утилиту конфигурирования контроллера (**Ctrl+R** при загрузке, или **UEFI MegaRAID Configuration Utility**). #### Обязательные параметры Virtual Drive (VD) Для **каждого** созданного виртуального диска (RAID1 и RAID10) выставьте: | Параметр | Значение | Зачем | |----------|----------|-------| | **Write Policy** | **Write Back with BBU** (или **Write Back**, если CacheVault исправен) | Write Through снижает скорость записи в десятки раз — критично для БД СКАДА/ЛЭРС | | **Read Policy** | **Adaptive Read Ahead** | Контроллер предугадывает чтение логов и баз данных | | **Disk Cache Policy** | **Enabled** (или по рекомендации вендора SSD) | | | **I/O Policy** | Direct (по умолчанию) | | | **Access Policy** | Read/Write | | > **Важно.** Write Back **допустим только** при исправном **BBU** или **CacheVault (CVPM02/CVPM05)**. Проверьте статус: `Optimal`, заряд кэша — `OK`. Без защиты кэша используйте Write Through (но производительность будет низкой). #### Проверка CacheVault / BBU В утилите MegaRAID или после установки ОС: ```bash # После установки Proxmox (пакет storcli) apt install storcli storcli64 /c0 show | grep -i "cache\|bbu\|vault" storcli64 /c0/cv show ``` Ожидаемый статус CacheVault: **Optimal**. --- ### 3.2. Выбор схемы разбивки дисков Перед созданием массивов в MegaRAID выберите одну из двух схем. #### Сравнение схем | Критерий | **Схема A:** RAID1 + RAID10 | **Схема B:** один RAID10 на всё | |----------|----------------------------|----------------------------------| | Сложность | Выше (2 VD, 2 хранилища Proxmox, 2 диска на ВМ) | **Ниже** (1 VD, `local-lvm`, один диск на ВМ) | | Минимум дисков | 6 (2+4) + spare | **6** (4+2 spare) | | IOPS для БД | Максимум (отдельный RAID10) | Хороший (общий RAID10) | | Изоляция нагрузки | БД не конкурируют с ОС/ВМ за диски | Общая очередь I/O | | Ёмкость при 8×960 ГБ | ~0,9 + ~1,9 = **~2,8 ТБ** | **~1,9 ТБ** (4 диска в массиве) | | Hot Spare при 8 дисках | 2 spare | **4 spare** (избыточно, но допустимо) | | Когда выбирать | Тяжёлые БД, доказанная высокая запись | **По умолчанию** для данного проекта | #### Рекомендация для СКАДА / ЛЭРС / «Меркурия» > **Схема B (4 диска RAID10 + Hot Spare)** — рекомендуемый вариант по умолчанию. Текущая нагрузка (3 ПК на i5-7400 / 8 ГБ) умеренная. Один RAID10 из 4 SSD с write-back кэшем MegaRAID **достаточен** для Proxmox, дисков Windows и баз данных одновременно. Схема проще в установке, миграции и сопровождении. **Схему A** выбирайте, если: - базы СКАДА/ЛЭРС уже сейчас активно упираются в диск; - планируется сильный рост архивов; - нужна жёсткая изоляция: сбой/нагрузка на БД не должны затрагивать загрузку Windows. #### Сводная таблица по количеству дисков | Всего дисков | Схема B (рекомендуется) | Схема A (раздельно) | |-------------|------------------------|---------------------| | **6** | 4 → RAID10 (всё) + 2 Hot Spare | 2 → RAID1 + 4 → RAID10, spare нет* | | **8** | 4 → RAID10 (всё) + 4 Hot Spare | 2 → RAID1 + 4 → RAID10 + 2 Hot Spare | | **4** | 4 → RAID10 (всё), без spare | — | | **2** | — | 2 → RAID1 (всё), без spare | \*При 6 дисках и схеме A spare не остаётся — допустимо для бюджетной конфигурации, но лучше 8 дисков. --- ### 3.3. Схема «A» — RAID1 + RAID10 (раздельно) Proxmox и системные диски ВМ — на **RAID1**. Базы данных и рабочие файлы — на **отдельном RAID10**. ``` Диски 1, 2 → RAID 1 → VD0 → Proxmox + диски Windows (система) Диски 3–6 → RAID 10 → VD1 → Базы СКАДА, ЛЭРС, «Меркурий», рабочие файлы Диски 7, 8 → Global Hot Spare ``` | VD | RAID | Диски | Назначение в Proxmox | Примерный объём* | |----|------|-------|---------------------|-----------------| | VD0 | RAID1 | 1, 2 | Установка Proxmox, `local-lvm` — `scsi0` ВМ (Windows) | ~960 ГБ | | VD1 | RAID10 | 3–6 | Хранилище `data-db` — `scsi1` ВМ (БД и данные) | ~1,9 ТБ | | — | Hot Spare | 7, 8 | Автозамена | — | #### Создание в MegaRAID BIOS 1. **VD0:** диски 1, 2 → RAID **1** → политики из п. 3.1. 2. **VD1:** диски 3, 4, 5, 6 → RAID **10** → политики из п. 3.1. 3. **Hot Spare:** диски 7, 8 → **Make Global Hot Spare**. #### StorCLI ```bash storcli64 /c0 add vd r1 drives=0:0,0:1 writepolicy=wb readpolicy=ra storcli64 /c0 add vd r10 drives=0:2,0:3,0:4,0:5 writepolicy=wb readpolicy=ra storcli64 /c0/e0/s6 add spares storcli64 /c0/e0/s7 add spares ``` #### Установка Proxmox (схема A) 1. Установить Proxmox на **VD0 (RAID1)** → ext4 → LVM-thin (`local-lvm`). 2. **VD1 не форматировать** при установке. 3. После установки — подключить VD1 как хранилище `data-db` (п. 3.5, шаг «Схема A»). #### Размещение дисков ВМ (схема A) | ВМ | scsi0 (`local-lvm`, RAID1) | scsi1 (`data-db`, RAID10) | |----|---------------------------|--------------------------| | VM-101 | Windows 10 + программы, 80–100 ГБ | БД СКАДА + «Меркурий», 100+ ГБ | | VM-102 | Windows 10 + ЛЭРС, 60–80 ГБ | БД ЛЭРС, 60+ ГБ | | VM-103 | Windows 10 + лифты, 60–80 ГБ | БД (если есть), по необходимости | ```bash # Пример VM-101 qm set 101 --scsi0 local-lvm:100,iothread=1,discard=on,ssd=1 qm set 101 --scsi1 data-db:100,iothread=1,discard=on,ssd=1 ``` В Windows: перенести каталоги баз данных на диск D: (`scsi1`). --- ### 3.4. Схема «B» — один RAID10 на всё (рекомендуется) Все данные — Proxmox, диски ВМ, базы, рабочие файлы — на **одном RAID10**. Оставшиеся диски — **Global Hot Spare**. ``` Диски 1–4 → RAID 10 → VD0 → Proxmox + все диски ВМ + все БД Диски 5–8 → Global Hot Spare (при 8 дисках; при 6 — диски 5–6) ``` | Всего дисков | RAID10 | Hot Spare | Полезный объём* | |-------------|--------|-----------|----------------| | 6 | 4 диска | 2 | ~1,9 ТБ | | 8 | 4 диска | 4 | ~1,9 ТБ | \*При 4× 960 ГБ SSD. Для 4× 1,92 ТБ → ~3,8 ТБ. > **Почему не все 8 дисков в RAID10?** RAID10 из 8 дисков дал бы ~3,8 ТБ, но для данного проекта избыточен. 4 диска в RAID10 + 4 spare дают **быструю автозамену** при отказе (два spare на один массив) без усложнения. Если нужен объём, а не spare — можно 6 или 8 дисков в RAID10 (см. ниже). #### Создание в MegaRAID BIOS (6 дисков) 1. **VD0:** диски 1, 2, 3, 4 → RAID **10** → политики из п. 3.1. 2. **Hot Spare:** диски 5, 6 → **Make Global Hot Spare**. #### Создание в MegaRAID BIOS (8 дисков) 1. **VD0:** диски 1, 2, 3, 4 → RAID **10**. 2. **Hot Spare:** диски 5, 6, 7, 8 → **Make Global Hot Spare**. #### StorCLI ```bash # RAID10 — 4 диска storcli64 /c0 add vd r10 drives=0:0,0:1,0:2,0:3 writepolicy=wb readpolicy=ra # Hot Spare (6 дисков: 2 spare; 8 дисков: 4 spare) storcli64 /c0/e0/s4 add spares storcli64 /c0/e0/s5 add spares # при 8 дисках дополнительно: storcli64 /c0/e0/s6 add spares storcli64 /c0/e0/s7 add spares ``` #### Установка Proxmox (схема B) 1. Установить Proxmox на **VD0 (RAID10)** → **ext4** → LVM-thin (`local-lvm`). 2. Все диски ВМ создавать на `local-lvm` — **один диск на ВМ**, без разделения. 3. Базы данных хранить на том же диске Windows (или вынести в отдельный каталог на `C:` / `D:` внутри одного виртуального диска). ```bash # Пример VM-101 — один диск на всё qm set 101 --scsi0 local-lvm:200,iothread=1,discard=on,ssd=1 ``` #### Вариант: 6–8 дисков целиком в RAID10 (максимум объёма, без spare) Если hot spare не нужен, а важен объём: | Дисков | RAID10 | Полезный объём (4×960 база) | |--------|--------|------------------------------| | 6 | 6 дисков (3 пары) | ~2,8 ТБ | | 8 | 8 дисков (4 пары) | ~3,8 ТБ | ```bash # 8 дисков в одном RAID10 (без spare) storcli64 /c0 add vd r10 drives=0:0,0:1,0:2,0:3,0:4,0:5,0:6,0:7 writepolicy=wb readpolicy=ra ``` > Без hot spare при отказе диска массив уходит в **Degraded** до ручной замены. Для диспетчерской рекомендуется хотя бы **2 Global Hot Spare**. --- ### 3.5. Установка Proxmox VE #### Предварительно: создание VD в MegaRAID Перед установкой Proxmox создайте виртуальный диск (VD) в BIOS/UEFI контроллера **MegaRAID**, **PERC** или **HPE Smart Array** (см. §3.2–3.4). Политики Write Back и Read Ahead — в §3.1. #### Установка на аппаратный RAID (профиль Server Room, Вариант Б) 1. Загрузиться с ISO Proxmox VE 8.x. 2. В инсталляторе выбрать созданный **VD** (MegaRAID / PERC / HPE Smart Array). 3. **Filesystem:** **ext4** (или **xfs** — допустимая альтернатива). 4. **Storage:** **LVM-thin** — Proxmox автоматически создаст `local-lvm` для дисков ВМ. 5. **Не выбирать ZFS** при аппаратном RAID. 6. Задать hostname `pve-scada`, IP `192.168.10.10/24`, gateway, DNS. 7. Завершить установку, перезагрузить. #### Установка на ZFS mirror (профиль Dispatch Tower, Вариант А) Если tower-сборка **без MegaRAID** (2× NVMe в AHCI): 1. Загрузиться с ISO Proxmox VE 8.x. 2. Target disk: **ZFS (RAID1)** — выбрать 2 NVMe. 3. Задать hostname, IP, gateway, DNS. 4. Завершить установку. > ZFS — только для tower без аппаратного RAID. На Dell PERC / HPE Smart Array / MegaRAID — **ext4 + LVM-thin**. #### Дополнительно для схемы разбивки A: подключение VD1 (RAID10) под БД Выполнить **после** установки Proxmox, если выбрана схема A: ```bash # VD1 обычно /dev/sdb lsblk storcli64 /c0/vall show parted /dev/sdb mklabel gpt parted /dev/sdb mkpart primary ext4 0% 100% mkfs.ext4 -L pve-data-db /dev/sdb1 mkdir -p /mnt/pve/data-db echo 'LABEL=pve-data-db /mnt/pve/data-db ext4 defaults,noatime 0 2' >> /etc/fstab mount -a pvesm add dir data-db --path /mnt/pve/data-db --content images,backup --maxfiles 0 ``` Для схемы B этот шаг **не выполняется**. #### Первичная настройка хоста ```bash # Обновление системы apt update && apt full-upgrade -y # Часовой пояс (пример: Москва) timedatectl set-timezone Europe/Moscow # Проверка версии pveversion -v # Проверка RAID storcli64 /c0/vall show storcli64 /c0/eall/sall show ``` #### Загрузка ISO в хранилище Через веб-интерфейс: **Datacenter → pve-scada → local → ISO Images → Upload** Загрузить: - `Win10_22H2_ru.iso` - `virtio-win-0.1.xxxx.iso` #### Настройка хранилища для бэкапов (NAS) **Datacenter → Storage → Add → NFS/CIFS** — указать путь к NAS для vzdump. #### Проверка I/O (опционально) ```bash # Схема B — тест на local-lvm fio --name=pve-test --directory=/var/lib/vz --rw=randwrite --bs=4k \ --numjobs=4 --iodepth=32 --size=1G --runtime=30 --time_based # Схема A — сравнить RAID1 и RAID10 fio --name=db-test --directory=/mnt/pve/data-db --rw=randwrite --bs=4k \ --numjobs=4 --iodepth=32 --size=1G --runtime=30 --time_based ``` --- ### 3.6. Мониторинг RAID > Применимо для **аппаратного RAID** (MegaRAID / PERC / HPE Smart Array). Для ZFS mirror на tower — `zpool status`, `zpool scrub`. #### Установка утилит управления **Broadcom / LSI MegaRAID (Supermicro, большинство сборок):** ```bash # StorCLI — скачать с сайта Broadcom, установить .deb # https://www.broadcom.com/support/download-search dpkg -i storcli_*.deb # Проверка storcli64 show ``` **Dell PERC (H755, H730p, H750):** ```bash # perccli — скачать с dell.com/support perccli64 /c0 show perccli64 /c0/vall show perccli64 /c0/cv show ``` **HPE Smart Array (P816i, P408i, P822):** ```bash # ssacli — HPE Smart Storage Administrator CLI # https://www.hpe.com/support — ssacli для ProLiant Gen10 ssacli ctrl all show detail ssacli ctrl slot=0 show config ssacli ctrl slot=0 pd all show ssacli ctrl slot=0 array all show ``` **Broadcom MegaRAID / xFusion (9460, 9560):** ```bash # StorCLI — Broadcom и rebadged xFusion dpkg -i storcli_*.deb storcli64 /c0 show storcli64 /c0/cv show ``` **Устаревшие контроллеры:** ```bash apt install megaclisas-status # MegaCLI, LSI 9271 и старше ``` #### Ежедневная проверка состояния ```bash # Общий статус контроллера storcli64 /c0 show # Виртуальные диски (массивы) storcli64 /c0/vall show # Физические диски storcli64 /c0/eall/sall show # CacheVault / BBU storcli64 /c0/cv show storcli64 /c0/bbu show ``` **Ожидаемые значения:** | Параметр | Норма | |----------|-------| | Controller Status | Optimal | | VD State | Optimal | | PD State | Online | | CacheVault / BBU | Optimal, Charged | | Write Policy | WriteBack (WB) | #### События, требующие реакции | Событие | Действие | |---------|----------| | **Degraded** | Проверить hot spare / rebuild; не выключать сервер | | **Rebuild in progress** | Снизить нагрузку; дождаться завершения | | **Predictive Failure** | Заменить диск; hot spare подхватит автоматически | | **CacheVault Failed / BBU Failed** | **Срочно:** Write Policy → Write Through; заменить CVPM/BBU | | **Foreign Config** | Импортировать или очистить конфигурацию в MegaRAID BIOS | #### Оповещения (рекомендуется настроить) - degraded array; - predictive failure диска; - CacheVault / BBU charge low или failed; - rebuild completed / failed. **Варианты реализации:** 1. **Cron + email** — скрипт проверки `storcli64 /c0 show` и парсинг статуса. 2. **Zabbix / Prometheus** — SNMP или script check для MegaRAID. 3. **iDRAC / iLO** (Dell/HPE) — встроенные алерты по дискам и RAID. Пример cron-скрипта (`/etc/cron.daily/raid-check`): ```bash #!/bin/bash STATUS=$(storcli64 /c0 show | grep -i "Status") if echo "$STATUS" | grep -ivq "Optimal"; then echo "RAID ALERT on $(hostname): $STATUS" | mail -s "RAID degraded" admin@example.com fi ``` #### Dell PERC — эквивалентные команды ```bash perccli64 /c0 show perccli64 /c0/vall show perccli64 /c0/eall/sall show perccli64 /c0/cv show ``` --- ## 4. Фаза 2 — Настройка IOMMU и VFIO (Вариант А) > Для **Варианта Б (RDP)** этот раздел можно пропустить, достаточно базовой установки Proxmox. ### 4.1. BIOS | Параметр | Значение | |----------|----------| | Intel VT-x / AMD SVM | ON | | Intel VT-d / AMD IOMMU | ON | | Boot Mode | UEFI | | CSM / Legacy | OFF | | Above 4G Decoding | ON | | Resizable BAR | OFF (NVIDIA) | | Primary Display | iGPU | ### 4.2. GRUB ```bash nano /etc/default/grub ``` Для Intel: ``` GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt" ``` Для AMD: ``` GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt" ``` Применить: ```bash update-grub ``` ### 4.3. Модули ядра ```bash cat >> /etc/modules << 'EOF' vfio vfio_iommu_type1 vfio_pci EOF ``` ### 4.4. Blacklist GPU-драйверов на хосте ```bash cat > /etc/modprobe.d/blacklist-gpu.conf << 'EOF' blacklist nouveau blacklist nvidia blacklist nvidiafb blacklist radeon blacklist amdgpu EOF ``` ### 4.5. Привязка GPU к vfio-pci Узнать PCI ID видеокарт: ```bash lspci -nn | grep -i vga # Пример AMD RX 550: 1002:699f # Пример NVIDIA GT 1030: 10de:1d01 ``` ```bash nano /etc/modprobe.d/vfio.conf ``` ``` options vfio-pci ids=1002:699f,1002:699f,1002:699f softdep radeon pre: vfio-pci softdep amdgpu pre: vfio-pci softdep nouveau pre: vfio-pci softdep nvidia pre: vfio-pci options vfio-pci disable_vga=1 ``` > Замените `ids=` на реальные ID ваших трёх GPU. ```bash update-initramfs -u -k all reboot ``` ### 4.6. Проверка после перезагрузки ```bash dmesg | grep -i vfio lspci -k | grep -A3 -i vga # Должно быть: Kernel driver in use: vfio-pci ``` ### 4.7. AMD reset-bug (при необходимости) Если GPU не перезапускается после shutdown ВМ: ```bash apt install git dkms build-essential -y git clone https://github.com/gnif/vendor-reset.git cd vendor-reset echo "vendor-reset" >> /etc/modules dkms install . modprobe vendor-reset ``` --- ## 5. Фаза 3 — Создание виртуальных машин > При схеме **A** (RAID1+RAID10): `scsi0` — система на `local-lvm`, `scsi1` — БД на `data-db`. > При схеме **B** (один RAID10): только `scsi0` на `local-lvm` — один диск на всё. ### 5.1. Создание через CLI (пример VM-101) ```bash # Создание VM qm create 101 --name vm-scada --memory 20480 --cores 6 --sockets 1 \ --cpu host --machine q35 --bios ovmf --ostype win10 \ --scsihw virtio-scsi-single --agent enabled=1 \ --net0 virtio,bridge=vmbr0,firewall=1 # EFI disk qm set 101 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0 # Системный диск (RAID1 / local-lvm) qm set 101 --scsi0 local-lvm:100,iothread=1,discard=on,ssd=1 # Диск баз данных (RAID10 / data-db) — если настроен п. 3.4 qm set 101 --scsi1 data-db:100,iothread=1,discard=on,ssd=1 # CD-ROM с Windows qm set 101 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom # VirtIO drivers (второй CD) qm set 101 --ide0 local:iso/virtio-win-0.1.xxxx.iso,media=cdrom # USB 3.0 controller qm set 101 --usb0 xhci=1 # Autostart qm set 101 --onboot 1 # Boot order qm set 101 --boot order=ide2\;scsi0 ``` Аналогично для VM-102 и VM-103: ```bash qm create 102 --name vm-lers --memory 16384 --cores 4 --sockets 1 \ --cpu host --machine q35 --bios ovmf --ostype win10 \ --scsihw virtio-scsi-single --agent enabled=1 \ --net0 virtio,bridge=vmbr0,firewall=1 qm set 102 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0 qm set 102 --scsi0 local-lvm:80,iothread=1,discard=on,ssd=1 qm set 102 --scsi1 data-db:60,iothread=1,discard=on,ssd=1 qm set 102 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom qm set 102 --ide0 local:iso/virtio-win-0.1.xxxx.iso,media=cdrom qm set 102 --usb0 xhci=1 --onboot 1 qm set 102 --boot order=ide2\;scsi0 qm create 103 --name vm-lifts --memory 16384 --cores 4 --sockets 1 \ --cpu host --machine q35 --bios ovmf --ostype win10 \ --scsihw virtio-scsi-single --agent enabled=1 \ --net0 virtio,bridge=vmbr0,firewall=1 qm set 103 --efidisk0 local-lvm:1,efitype=4m,pre-enrolled-keys=0 qm set 103 --scsi0 local-lvm:80,iothread=1,discard=on,ssd=1 qm set 103 --ide2 local:iso/Win10_22H2_ru.iso,media=cdrom qm set 103 --ide0 local:iso/virtio-win-0.1.xxxx.iso,media=cdrom qm set 103 --usb0 xhci=1 --onboot 1 qm set 103 --boot order=ide2\;scsi0 ``` > VM-103: диск `data-db` добавлять только если база данных лифтовой системы хранится локально на диске ВМ. ### 5.2. Создание через веб-интерфейс Для каждой ВМ (**Create VM**): | Вкладка | Параметр | Значение | |---------|----------|----------| | General | VM ID | 101 / 102 / 103 | | General | Name | vm-scada / vm-lers / vm-lifts | | OS | ISO | Windows 10 | | System | Machine | q35 | | System | BIOS | OVMF (UEFI) | | System | Qemu Agent | ✓ | | Disks | scsi0 | `local-lvm`, VirtIO SCSI, SSD, Discard — система Windows | | Disks | scsi1 | `data-db`, VirtIO SCSI, SSD — базы данных (если настроен RAID10) | | CPU | Type | host | | CPU | Cores | по таблице | | Memory | Memory | по таблице | | Network | Model | VirtIO | | Network | Bridge | vmbr0 | | Confirm | Start after created | ✗ | --- ## 6. Фаза 4 — Установка Windows 10 ### 6.1. Установка ОС 1. Запустить ВМ, открыть Console. 2. При установке Windows на экране выбора диска нажать **Load driver**. 3. Указать драйвер VirtIO SCSI с CD `virtio-win` (папка `vioscsi/w10/amd64`). 4. Установить Windows 10. 5. После первой загрузки установить с CD `virtio-win`: - `viofs` (опционально) - `vioserial` - `Balloon` - `qxldod` (если используется виртуальный дисплей) - `NetKVM` (сеть VirtIO) ### 6.2. Установка QEMU Guest Agent С CD `virtio-win`, папка `guest-agent`, запустить `qemu-ga-x86_64.msi`. Проверка на хосте Proxmox: ```bash qm agent 101 ping # Expected: no error ``` ### 6.3. Базовая настройка Windows На каждой ВМ: ```powershell # Имя компьютера (пример для VM-101) Rename-Computer -NewName "VM-SCADA" -Restart # Статический IP (пример) New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.10.11 -PrefixLength 24 -DefaultGateway 192.168.10.1 Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 192.168.10.1 # Отключить спящий режим powercfg /change standby-timeout-ac 0 powercfg /change hibernate-timeout-ac 0 # Отложить автоматические перезагрузки (через gpedit.msc или настройки Update) ``` ### 6.4. Windows Update Рекомендуется: - активные часы: 08:00–20:00; - отложить feature updates на 365 дней; - отложить quality updates на 30 дней; - запретить автоматическую перезагрузку в рабочее время. --- ## 7. Фаза 5 — GPU и USB Passthrough (Вариант А) ### 7.1. Определение PCI-адресов GPU ```bash lspci | grep -i vga # Пример: # 01:00.0 VGA compatible controller: AMD Radeon RX 550 # 03:00.0 VGA compatible controller: AMD Radeon RX 550 # 04:00.0 VGA compatible controller: AMD Radeon RX 550 ``` ### 7.2. Проброс GPU **Через CLI:** ```bash # VM-101 — GPU на 01:00 qm set 101 --hostpci0 01:00,pcie=1,x-vga=1,rombar=1 # VM-102 — GPU на 03:00 qm set 102 --hostpci0 03:00,pcie=1,x-vga=1,rombar=1 # VM-103 — GPU на 04:00 qm set 103 --hostpci0 04:00,pcie=1,x-vga=1,rombar=1 ``` **Через веб-интерфейс (Hardware → Add → PCI Device):** | Параметр | Значение | |----------|----------| | Device | Выбрать GPU | | All Functions | ✓ | | ROM-Bar | ✓ | | PCI-Express | ✓ | | Primary GPU | ✓ | | Display | none (убрать виртуальный VGA) | Для NVIDIA добавить флаг CPU: ```bash qm set 101 --cpu host,hidden=1,flags=+pcid ``` ### 7.3. Проброс USB-ключа «Меркурия» (VM-101) **По Vendor/Device ID (рекомендуется):** ```bash # Узнать ID lsusb | grep -i hasp # Пример: 0529:0001 qm set 101 --usb1 host=0529:0001,usb3=1 ``` **Passthrough USB-контроллера (если ключ нестабилен):** ```bash # Найти USB controller в IOMMU group lspci | grep -i usb # Пробросить контроллер целиком qm set 101 --hostpci1 00:14.0,pcie=1 ``` > Не подключать USB-ключ через некачественный USB-hub. ### 7.4. Проброс клавиатуры и мыши **Вариант 1 — отдельные USB-устройства (простой):** Через GUI: **Hardware → Add → USB Device → Use USB Vendor/Device ID**. **Вариант 2 — passthrough USB-контроллера (надёжный):** К каждой ВМ привязать отдельный физический USB-контроллер (встроенный или PCIe): ```bash # VM-101 — USB controller at 00:14.0 qm set 101 --hostpci2 0b:00.0,pcie=1 # VM-102 — USB controller at 0c:00.0 (PCIe USB card) qm set 102 --hostpci1 0c:00.0,pcie=1 # VM-103 — USB controller at 0d:00.0 (PCIe USB card) qm set 103 --hostpci1 0d:00.0,pcie=1 ``` ### 7.5. Установка драйверов GPU в Windows 1. Запустить VM-101 с passthrough GPU. 2. Изображение установки/рабочего стола должно появиться на **физическом мониторе**, подключённом к GPU-1. 3. Установить драйвер AMD/NVIDIA. 4. Повторить для VM-102 и VM-103. ### 7.6. NVIDIA Code 43 — устранение Если в диспетчере устройств **Code 43**: 1. Убедиться: `ostype win10`, `cpu host,hidden=1`, `machine q35`, `bios ovmf`. 2. Дамп VBIOS: ```bash # На хосте, когда GPU не занят VM echo 1 > /sys/bus/pci/devices/0000:01:00.0/reset cat /sys/bus/pci/devices/0000:01:00.0/rom > /tmp/gt1030.rom ``` 3. Пропатчить ROM ([nvidia-kvm-patcher](https://github.com/sk1080/nvidia-kvm-patcher)). 4. Указать ROM в конфиге: ```bash qm set 101 --hostpci0 01:00,pcie=1,x-vga=1,rombar=1,romfile=local:snippets/gt1030.rom ``` ### 7.7. Проверка passthrough ```bash # Перезагрузка хоста reboot # После загрузки — все ВМ должны стартовать автоматически qm list # Проверить USB qm config 101 | grep usb qm config 101 | grep hostpci ``` **Чек-лист:** - [ ] VM-101: картинка на мониторе 1, ключ «Меркурия» виден в Windows - [ ] VM-102: картинка на мониторе 2 - [ ] VM-103: картинка на мониторе 3 - [ ] Каждая КМ управляет только своей ВМ - [ ] Reboot хоста → все ВМ поднимаются, passthrough сохраняется --- ## 8. Фаза 6 — Настройка RDP (Вариант Б) ### 8.1. Настройка Windows на каждой ВМ ```powershell # Включить Remote Desktop Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0 Enable-NetFirewallRule -DisplayGroup "Remote Desktop" # Разрешить NLA (рекомендуется) Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "UserAuthentication" -Value 1 ``` Или: **Параметры → Система → Удалённый рабочий стол → Включить**. ### 8.2. Создание учётных записей | ВМ | Пользователь | Назначение | |----|-------------|-----------| | VM-101 | operator_scada | СКАДА + «Меркурий» | | VM-102 | operator_lers | ЛЭРС | | VM-103 | operator_lifts | Лифты | Добавить пользователей в группу **Remote Desktop Users**. ### 8.3. USB-ключ на сервере (VM-101) ```bash qm set 101 --usb1 host=0529:0001,usb3=1 ``` MOXA подключается по сети — настроить виртуальный COM в Windows VM-101 (IP MOXA: `192.168.10.20`). ### 8.4. Настройка клиентского ПК На ПК в комнате диспетчеров создать три `.rdp`-файла: **scada.rdp:** ``` full address:s:192.168.10.11 username:s:operator_scada screen mode id:i:2 use multimon:i:1 desktopwidth:i:1920 desktopheight:i:1080 session bpp:i:32 compression:i:1 networkautodetect:i:1 ``` **lers.rdp** — `192.168.10.12`, **lifts.rdp** — `192.168.10.13`. Запуск: ```powershell # Монитор 1 mstsc.exe "C:\RDP\scada.rdp" /f # Монитор 2 и 3 — запустить аналогично, перетащить окна на нужные мониторы ``` ### 8.5. Автозапуск RDP-сессий (опционально) ```powershell # Поместить ярлыки в shell:startup Copy-Item "C:\RDP\*.rdp" "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\" ``` ### 8.6. Проверка сети ```powershell # С клиентского ПК Test-NetConnection 192.168.10.11 -Port 3389 Test-NetConnection 192.168.10.12 -Port 3389 Test-NetConnection 192.168.10.13 -Port 3389 # Задержка ping 192.168.10.11 # Должно быть < 5 ms ``` --- ## 9. Фаза 7 — Миграция программ ### 9.1. Метод P2V (перенос образа) ```bash # На исходном ПК — Clonezilla → файл образа → скопировать на Proxmox # Конвертация и импорт (пример) qm importdisk 101 /path/to/scada-disk.img local-zfs --format qcow2 qm set 101 --scsi0 local-zfs:vm-101-disk-0 ``` ### 9.2. Восстановление из Veeam Agent > **Veeam Agent** создаёт бэкап **физической** Windows. Готового диска для импорта в Proxmox нет — восстановление выполняется через **Veeam Recovery Media** в новую ВМ. #### Когда использовать | Подход | Когда | |--------|-------| | **Veeam Agent → bare metal restore в ВМ** | Нужно быстро поднять «как было», есть рабочие `.vbk` | | **Чистая установка + restore БД** (§9.3) | **Предпочтительно** для стабильной работы на VirtIO | Перед миграцией всех систем — **обязательно** протестировать restore **одной** ВМ (например, ЛЭРС). #### Что понадобится - Рабочие цепочки бэкапов Veeam Agent (`.vbk` / `.vib`) на NAS или внешнем носителе. - ISO **Veeam Recovery Media** (создаётся в консоли Veeam Agent на исходном ПК или отдельной машине). - Доступ Proxmox к репозиторию бэкапов по **сети** (SMB/NFS) или копия на `local` ISO/storage. - Лицензия с **Recovery to dissimilar hardware** / **Universal Restore** (если есть) — упрощает первую загрузку. #### Подготовка ВМ в Proxmox Создать пустую ВМ под восстанавливаемую систему (пример — VM-102, ЛЭРС): | Параметр | Значение | Зачем | |----------|----------|-------| | Machine | q35 | Совместимость с Win10 | | BIOS | **OVMF (UEFI)** | Если исходный Win10 установлен в UEFI (обычно) | | Disk | SATA или SCSI, **≥ размера исходного диска** | Место под restore | | Disk bus (первая попытка) | **SATA** | Меньше проблем с драйверами при restore | | Network | VirtIO или E1000 | E1000 — если сеть нужна уже в Recovery Media | | CD-ROM | Veeam Recovery Media ISO | Загрузка для restore | ```bash # Пример: подготовка VM-102 под restore (диск 120 ГБ, SATA) qm set 102 --scsi0 local-lvm:120,cache=writeback,discard=on,ssd=1 qm set 102 --scsihw virtio-scsi-single # При BSOD после restore — временно переключить на SATA: # qm set 102 --scsi0 none # qm set 102 --sata0 local-lvm:120,ssd=1 ``` #### Пошаговое восстановление 1. Загрузить ISO **Veeam Recovery Media** в CD-ROM ВМ, boot order: CD → disk. 2. Запустить ВМ, войти в мастер восстановления Veeam. 3. Указать расположение бэкапа (путь к `.vbk` на NAS/SMB). 4. Выбрать **Entire computer restore** / восстановление всего компьютера. 5. Целевой диск — виртуальный диск ВМ (единственный). 6. Включить **Recovery to dissimilar hardware** / **Universal Restore** (если доступно). 7. Дождаться завершения restore, отключить ISO Recovery Media. 8. Boot order: disk first → перезагрузить ВМ. #### После первой загрузки Windows 1. Если загрузка успешна — установить **QEMU Guest Agent** и **VirtIO drivers** с `virtio-win.iso`: - NetKVM (сеть) - vioscsi (если переключите диск на VirtIO SCSI) 2. При необходимости сменить контроллер диска на **VirtIO SCSI** (после установки `vioscsi`). 3. Задать статический IP (если сбился после restore). 4. **Windows Update** — отложить автоперезагрузку (см. §6.3). 5. Проверить службы СКАДА / ЛЭРС / лифтов / «Меркурия». #### Специфика для VM-101 (СКАДА + «Меркурий») После restore дополнительно: ```bash # USB-ключ «Меркурия» — passthrough в Proxmox lsusb | grep -i "0529\|guardant\|hasp\|rutoken" qm set 101 --usb1 host=XXXX:YYYY,usb3=1 ``` - Проверить, что «Меркурий» видит ключ и COM/MOXA. - **Вариант А:** настроить GPU/USB passthrough (§7). - **Вариант Б:** включить RDP (§8). #### Типичные проблемы и решения | Симптом | Причина | Решение | |---------|---------|---------| | **No bootable device** | Legacy vs UEFI | ВМ → **OVMF**; или SeaBIOS, если исходник был MBR/Legacy | | **INACCESSIBLE_BOOT_DEVICE** (BSOD) | Нет драйвера VirtIO/SATA | Restore на **SATA**; Universal Restore; или загрузка с Recovery Media → repair | | Сеть не работает | Другой NIC | E1000 в ВМ для restore; после загрузки — VirtIO NetKVM | | Windows просит активацию | Смена «железа» | Повторная активация (Retail/Volume) | | «Меркурий» не видит ключ | USB не проброшен | `qm set` USB passthrough; не использовать hub | | MOXA не отвечает | IP/COM сбились | Проверить IP ВМ и настройки NPort (§9.5) | | Очень долгий restore | Бэkaп по сети | Restore с локальной копии `.vbk` на Proxmox/NAS рядом | #### Чек-лист после restore - [ ] Windows загружается без BSOD - [ ] Сеть, IP, доступ к контроллерам - [ ] Приложение (СКАДА/ЛЭРС/лифты) запускается - [ ] База данных на месте, отчёты/архивы работают - [ ] USB-ключ «Меркурия» (VM-101) — если применимо - [ ] Guest Agent установлен, `qm agent NNN ping` — OK - [ ] Старый физический ПК **не отключать** до окончания параллельных тестов (§11) #### Сравнение с другими методами | Метод | Скорость | Стабильность на Proxmox | |-------|----------|-------------------------| | Veeam Agent restore | Быстро | Средняя (зависит от драйверов) | | Clonezilla P2V (§9.1) | Средне | Средняя | | Чистая установка + БД (§9.3) | Дольше | **Высокая** | --- ### 9.3. Метод чистой установки + restore (рекомендуется) 1. Установить Windows 10 на ВМ. 2. Установить СКАДА / ЛЭРС / лифты / «Меркурий» с дистрибутивов. 3. Восстановить базы данных из бэкапов. 4. Перенести конфигурационные файлы проектов. ### 9.4. Порядок миграции | Шаг | Система | VM | Проверка | |-----|---------|-----|----------| | 1 | «Меркурий» + USB-ключ | 101 | Ключ определяется, опрос через MOXA | | 2 | СКАДА | 101 | Архив, тренды, алармы | | 3 | ЛЭРС | 102 | Отчёты, база данных | | 4 | Лифты | 103 | Связь с контроллерами, команды | ### 9.5. Настройка MOXA (до замены) На VM-101: 1. Установить драйвер виртуального COM MOXA NPort. 2. Настроить подключение к IP `192.168.10.20`, порт по документации MOXA. 3. В «Меркурии» указать виртуальный COM-порт. 4. Проверить опрос счётчиков. --- ## 10. Фаза 8 — Reservное копирование ### 10.1. vzdump через веб-интерфейс **Datacenter → Backup → Add:** | Параметр | Значение | |----------|----------| | Node | pve-scada | | Storage | NAS / local (с достаточным объёмом) | | Schedule | Daily 02:00 | | Selection mode | Include selected VMs | | VMs | 101, 102, 103 | | Mode | Snapshot | | Compression | zstd | | Retention | Keep last 7 | ### 10.2. vzdump через CLI ```bash # Ручной бэкап vzdump 101 102 103 --mode snapshot --compress zstd --storage nas-backup # Проверка ls -lh /mnt/pve/nas-backup/dump/ ``` ### 10.3. Restore из бэкапа ```bash # Список бэкапов pvesm list nas-backup # Восстановление (пример) qmrestore /mnt/pve/nas-backup/dump/vzdump-qemu-101-*.zst 101 --force ``` ### 10.4. Бэкапы баз данных Дополнительно к vzdump — штатные средства резервного копирования СКАДА и ЛЭРС по расписанию на NAS. --- ## 11. Фаза 9 — Тестирование и ввод в эксплуатацию ### 11.1. Тестовый чек-лист | № | Тест | Ожидаемый результат | ✓ | |---|------|----------------------|---| | 1 | СКАДА: сбор архива 24 ч | Данные поступают | | | 2 | СКАДА: открытие трендов | Без ошибок | | | 3 | «Меркурий»: опрос счётчиков | Все точки отвечают | | | 4 | ЛЭРС: формирование отчёта | Корректные данные | | | 5 | Лифты: команда / статус | Контроллер отвечает | | | 6 | Reboot VM-102 | VM-101 и VM-103 работают | | | 7 | Reboot хоста Proxmox | Все 3 VM autostart ≤10 мин | | | 8 | Restore VM-101 из vzdump | Система работоспособна | | | 9 | Отключение UPS (тест) | Корректное shutdown | | ### 11.2. Параллельная эксплуатация - Срок: **7–14 дней**. - Старые ПК остаются включёнными, но не используются оператором. - При проблемах — откат на старые машины. ### 11.3. Ввод в эксплуатацию 1. Отключить старые ПК (хранить 2 недели). 2. Передать документацию оператору и администратору. 3. Зафиксировать дату ввода в журнале. --- ## 12. Устранение неполадок ### 12.0. MegaRAID — degraded / rebuild ```bash storcli64 /c0 show storcli64 /c0/vall show storcli64 /c0/eall/sall show ``` | Состояние | Действие | |-----------|----------| | **Degraded** | Проверить, сработал ли Global Hot Spare; дождаться rebuild | | **Rebuild in progress** | Не выключать сервер; нагрузка на массив будет выше | | **BBU/CacheVault Failed** | Немедленно переключить Write Policy на Write Through до замены модуля | | **Predictive Failure** | Заменить диск; hot spare подхватит автоматически | ### 12.1. GPU passthrough — VM не стартует ```bash # Проверить лог qm start 101 2>&1 | tee /tmp/vm101-start.log journalctl -u pve-guest@101 --no-pager -n 50 ``` Возможные причины: - GPU занята хостом → проверить `lspci -k`, должен быть `vfio-pci`. - IOMMU group содержит лишние устройства → ACS override (крайний случай). - Нет UEFI ROM → использовать SeaBIOS или пропатченный ROM. ### 12.2. NVIDIA Code 43 - `cpu: host,hidden=1` - `ostype: win10` - Пропатченный VBIOS ROM - `x-vga=1`, Display = none ### 12.3. USB-ключ не определяется ```bash # На хосте — виден ли ключ lsusb | grep -i "0529\|guardant\|hasp\|rutoken" # Проверить конфиг VM qm config 101 | grep usb # Попробовать passthrough USB-контроллера вместо устройства ``` ### 12.4. HASP — высокая нагрузка CPU При USB 2.0 passthrough с HASP dongle: - Обновить VirtIO net driver до последней версии. - Passthrough USB-контроллера целиком. - Альтернатива: VirtualHere (USB over IP). ### 12.5. RDP — чёрный экран / обрыв - Проверить firewall на VM и между VLAN. - Отключить Bitmap Cache в RDP-клиенте. - Проверить `qm agent NNN ping`. ### 12.6. AMD GPU reset-bug После shutdown VM GPU не отдаётся: ```bash modprobe vendor-reset # или reboot хоста ``` --- ## 13. Справочник конфигураций ВМ ### 13.1. Пример `/etc/pve/qemu-server/101.conf` (Вариант А) ``` agent: 1 bios: ovmf boot: order=scsi0 cores: 6 cpu: host efidisk0: local-zfs:vm-101-disk-0,efitype=4m,pre-enrolled-keys=0,size=1M hostpci0: 01:00,pcie=1,x-vga=1,rombar=1 machine: q35 memory: 20480 name: vm-scada net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0,firewall=1 onboot: 1 ostype: win10 scsi0: local-zfs:vm-101-disk-1,iothread=1,size=200G,ssd=1 scsihw: virtio-scsi-single smbios1: uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx usb0: xhci=1 usb1: host=0529:0001,usb3=1 vga: none ``` ### 13.2. Таблица passthrough (заполнить при внедрении) | Ресурс | PCI / USB ID | VM | Монитор / назначение | |--------|-------------|-----|---------------------| | GPU-1 | 01:00.0 | 101 | Монитор 1 | | GPU-2 | 03:00.0 | 102 | Монитор 2 | | GPU-3 | 04:00.0 | 103 | Монитор 3 | | USB-ключ «Меркурия» | 0529:0001 | 101 | Лицензия | | USB-контроллер КМ-1 | 0b:00.0 | 101 | Клавиатура/мышь 1 | | USB-контроллер КМ-2 | 0c:00.0 | 102 | Клавиатура/мышь 2 | | USB-контроллер КМ-3 | 0d:00.0 | 103 | Клавиатура/мышь 3 | ### 13.3. Полезные команды ```bash # Статус всех VM qm list # Конфиг VM qm config 101 # Консоль VM (VNC, если нет GPU passthrough) qm terminal 101 # Перезапуск VM qm reboot 101 # Shutdown VM qm shutdown 101 --timeout 120 # Guest agent: IP адрес VM qm guest cmd 101 network-get-interfaces # Snapshot перед изменениями qm snapshot 101 before-passthrough # Откат snapshot qm rollback 101 before-passthrough ``` --- ## Связанные документы - [Техническое задание](TZ-proxmox-konsolidaciya.md) - [Proxmox PCI Passthrough Wiki](https://pve.proxmox.com/wiki/PCI_Passthrough) - [Proxmox USB Passthrough](https://pve.proxmox.com/wiki/USB_Physical_Port_Mapping) - [IOMMU Groups Database](https://iommu.info/)