Примечание: Это функция раннего доступа (EA), которая предоставляется только для ограниченного выпуска. Для получения дополнительной информации свяжитесь с представителем Cato Networks или отправьте письмо на ea@catonetworks.com.
Обзор
Эта статья описывает, как развернуть KVM vSocket на хосте, управляемом с помощью Proxmox Virtual Environment (Proxmox VE). Proxmox VE использует QEMU/KVM, поэтому модель развертывания vSocket такая же, как у стандартного Linux KVM (libvirt/QEMU) хоста: vSocket распространяется в виде образа QCOW2 и подготавливается с помощью cloud-init. Различие заключается в уровне управления — вы создаете и управляете виртуальной машиной из веб-интерфейса Proxmox, а не с использованием virt-install или virsh.
Для общих требований к KVM vSocket, настройки user-data в cloud-init и процесса создания сайта в Приложении Управления Cato (CMA) см. Настройка сайта KVM vSocket.
Это основные этапы развертывания KVM vSocket на Proxmox VE:
- Создайте сайт vSocket в CMA и скопируйте серийный номер (S/N).
- Скачайте образ QCOW2 и создайте начальный ISO файл cloud-init.
- Загрузите изображение QCOW2 и ISO на память Proxmox.
- Создайте виртуальную машину в веб-интерфейсе Proxmox с UEFI прошивкой и устройствами virtio.
- Добавьте последовательный порт и дополнительные сетевые интерфейсы к виртуальной машине.
- Запустите виртуальную машину и убедитесь, что vSocket подключается к CMA.
Подготовка к предоставлению KVM vSocket в Proxmox VE
Это предварительные условия для подготовки к созданию KVM vSocket и подключению его к облаку Cato:
- Хост Proxmox VE с поддержкой KVM (аппаратная виртуализация) и поддержкой UEFI (OVMF) для гостей.
- Процессор хоста Proxmox имеет архитектуру Haswell или более новую.
- Образ QCOW2 для KVM vSocket, загруженный из репозитория Cato Networks.
- ISO-образ cloud-init, предварительно сгенерированный с серийным номером сайта (см. Создание ISO-образа cloud-init).
- Инструмент для генерации начального ISO (например,
mkisofsилиgenisoimage). - Подключение к Интернету и служба публичного DNS для интерфейса WAN1 на vSocket.
- Мосты Proxmox (например,
vmbr0), которые подключают WAN, LAN и опциональные интерфейсы управления к соответствующим сетям. - Подключите до 4 сетевых интерфейсов (NIC) к vSocket. Подключение более 4 NIC может привести к проблемам для vSocket.
Примечание: Аппаратный пропуск интерфейсов NIC (PCI passthrough) и SR-IOV не поддерживаются.
Рекомендованные настройки виртуальной машины
| Установлено | Рекомендуемое значение |
|---|---|
| Тип машины | q35 |
| BIOS / Прошивка | OVMF (UEFI), без EFI-диска |
| Тип процессора | хост (архитектура класса Haswell или более новый процессор) |
| vCPU | 2 или больше |
| Память | 4096 МБ или больше |
| Основной диск | Импортированный образ QCOW2, шина VirtIO Block (тонкий выделенный диск на 8 ГБ) |
| Медиа-файл cloud-init | Начальный ISO, подключенный как CD-ROM диск |
| Модель NIC | VirtIO (паравиртуализированный) |
| Количество NIC | 2 до 4 интерфейсов |
Лучшие практики развертывания KVM vSocket на Proxmox VE
- Развертывайте vSocket прямо из образа QCOW2 от Cato, чтобы избежать проблем с совместимостью оборудования и гарантировать правильное применение всех необходимых настроек оборудования.
- Храните нетронутую копию оригинального образа QCOW2 и импортируйте чистую копию для каждой виртуальной машины vSocket. Начальный ISO cloud-init запускается только при первой загрузке. Если конфигурация не была применена правильно, обычно быстрее пересоздать виртуальную машину из чистого образа, чем исправлять частично инициализированную виртуальную машину.
- Перед первой загрузкой создайте снимок Proxmox виртуальной машины, чтобы можно было вернуться к начальному состоянию, если начальная конфигурация неверна.
- Создайте уникальный начальный ISO с серийным номером соответствующего сайта для каждой виртуальной машины vSocket (включая каждого участника пары HA).
- Используйте virtio как для сетевых, так и для дисковых устройств — никаких эмуляций NIC не требуется.
- Не запускайте виртуальную машину до тех пор, пока она не будет полностью настроена. Начальный ISO cloud-init читается только при первой загрузке.
Создание сайта KVM vSocket
В CMA создайте новый сайт с типом подключения vSocket KVM и затем скопируйте серийный номер (S/N) из Настройки сайта > Сокет. Необходимо ввести этот серийный номер (включая дефисы) в файл user-data cloud-init.
Для полной процедуры см. Конфигурирование сайта KVM vSocket.
Развертывание vSocket VM на Proxmox VE
Шаг 1 – Подготовьте сети Proxmox
Убедитесь, что у хоста Proxmox есть мост Linux для каждого интерфейса, который вы подключаете к vSocket:
- WAN1 – Мост с выходом в Интернет и доступом к публичной службе DNS (например,
vmbr0). Это обязательный интерфейс. - LAN1 – Мост для LAN сегмента за vSocket. Это обязательный интерфейс.
- MGMT (опционально) – Мост для доступа к управлению vSocket.
- WAN2 (опционально) – Мост для второй WAN линии.
Вы можете использовать тег VLAN на сетевом устройстве для разделения LAN сегментов, которые используют один и тот же мост.
Для HA развертывания интерфейсы LAN обоих vSocket должны находиться в одной и той же область широковещательной передачи (один и тот же мост и VLAN).
Шаг 2 – Создание начального ISO cloud-init
KVM vSocket загружается с помощью cloud-init, используя образ начального ISO NoCloud. Создайте каталог с одним файлом:
TMPDIR=$(mktemp -d) touch $TMPDIR/user-data
Заполните user-data конфигурацией сайта. Файл использует простой формат TOML (ключ = значение), и комментарии поддерживаются. Серийный номер обязателен; настройки сети для каждого интерфейса опциональны (по умолчанию интерфейсы используют DHCP).
# Обязательно: серийный номер от сайта CMA (Настройки сайта > Сокет) serial = "XXXX-XXXX-XXXX-XXXX"
# Опционально настройки сети для каждого интерфейса.
# Повторите блок [[network]] для каждого интерфейса; имя должно быть уникальным
# и соответствовать реальному интерфейсу (WAN1, WAN2, LAN1, ...).
[[network]]
name = "WAN1" # обязательно
addressing_type = "Static" # "Static" или "DHCP"
address = "192.168.50.201" # обязательно, если Static
netmask = "255.255.255.0" # обязательно, если Static
default_gw = "192.168.50.1" # обязательно, если Static
primary_dns = "192.168.50.1" # обязательно, если Static
secondary_dns = "8.8.4.4" # опционально
# DHCP это по умолчанию, поэтому этот блок необязательный/перебор.
[[network]]
name = "WAN2"
addressing_type = "DHCP"
Упакуйте файл в ISO файл начального diska с меткой cidata:
pushd $TMPDIR mkisofs -output seed.iso -volid cidata -joliet -rock user-data popd
Назовите ISO так, чтобы можно было идентифицировать виртуальную машину vSocket, использующую его (например, seed-<site-name>.iso), чтобы можно было выбрать правильное ISO при создании виртуальной машины.
Шаг 3 – Загрузите файлы в память Proxmox
- Загрузите начальный ISO в хранилище ISO образов узла, который размещает виртуальную машину (например, в раздел местное хранилище, в разделе ISO образы).
- Загрузите образ vSocket QCOW2 в раздел Импорт хранилища на том же узле. Хранилище должно иметь включенный тип содержимого Импорт.
Используйте чистую копию образа QCOW2 для каждой виртуальной машины vSocket.
Место для скриншота – загрузка начального ISO в память Proxmox.
Место для скриншота – загрузка или импорт образа QCOW2.
Шаг 4 – Создание виртуальной машины
В веб-интерфейсе Proxmox нажмите Создать виртуальную машину и настройте вкладки мастера следующим образом.
Чтобы создать виртуальную машину vSocket:
-
На вкладке Основные выберите Узел, затем введите ID виртуальной машины и Имя для виртуальной машины vSocket. Оставьте флажок Добавить в HA незаполненным (см. Развертывание высокой доступности (HA)).
-
На вкладке ОС:
- Выберите Использовать образ CD/DVD (iso).
- Для Хранилище и ISO образ выберите созданное начальное ISO для этого vSocket.
- Для Гостевая ОС оставьте значения по умолчанию (Тип: Linux, Версия: 6.x - 2.6 Ядро).
Место для скриншота – выбор начального ISO cloud-init на вкладке ОС.
-
На вкладке Система:
- Для BIOS выберите OVMF (UEFI).
- Очистите флажок Добавить EFI-диск. Изображение vSocket не требует EFI-диска.
- Для Машина выберите q35.
- Оставьте Контроллер SCSI по умолчанию (VirtIO SCSI single).
Место для скриншота – выбор микропрограммы UEFI и очистка поля Добавить EFI-диск.
-
На вкладке Диски:
- Удалите диск по умолчанию (virtio0).
- Нажмите Импорт, затем выберите образ QCOW2 vSocket в Выбрать изображение.
- Для Шина/Устройство, выберите VirtIO Block и выберите Целевое хранилище для диска.
Место для скриншота – удаление диска по умолчанию.
Место для скриншота – импорт образа QCOW2 как диска виртуальной машины.
-
На вкладке ЦП настройте минимум 2 Ядра и выберите хост для Тип.
Место для скриншота – ядра ЦП и тип процессора хоста.
-
На вкладке Память введите минимум 4096 МБ.
-
На вкладке Сеть настройте первое сетевое устройство (net0). Этот интерфейс является интерфейсом WAN1 для vSocket:
- Для Мост выберите мост с подключением к Интернету.
- Для Модель выберите VirtIO (paravirtualized).
- При необходимости снимите флажок Брандмауэр.
-
На вкладке Подтверждение убедитесь, что Запуск после создания не выбран, затем нажмите Завершить.
Важно! Не запускайте виртуальную машину, пока она не будет полностью настроена. ISO файл начального cloud-init читается только при первой загрузке.
Шаг 5 – Добавление последовательного порта и оставшихся интерфейсов
После создания виртуальной машины добавьте оставшееся оборудование из раздела Оборудование виртуальной машины.
Чтобы завершить конфигурацию оборудования виртуальной машины:
- Нажмите Добавить > Последовательный порт и добавьте последовательный порт 0 (
serial0). Последовательный порт используется для доступа к консоли vSocket. - Нажмите Добавить > Сетевое устройство и добавьте интерфейс LAN1:
- Для Мост выберите LAN-мост.
- Для Модель выберите VirtIO (paravirtualized).
- При необходимости введите VLAN Tag для разделения LAN сегментов, которые используют один и тот же мост.
- Повторите предыдущий шаг для каждого дополнительного интерфейса (управление или WAN2), максимально до 4 интерфейсов.
Сетевые устройства сопоставляются с интерфейсами vSocket в соответствии с их порядком: net0 - это WAN1, net1 - это LAN1, а остальные устройства — это опциональные интерфейсы.
Место для скриншота – добавление последовательного порта.
Место для скриншота – добавление дополнительного сетевого устройства.
Место для скриншота – завершенный список оборудования для vSocket VM.
Шаг 6 – (Рекомендовано) Сделайте снимок
Перед первой загрузкой в разделе Снимки виртуальной машины нажмите Сделать снимок и создайте снимок начального состояния (например, ничего не трогалось). Если конфигурация при первой загрузке неверна, вы можете вернуться к этому снимку вместо того, чтобы пересоздавать виртуальную машину.
Место для скриншота – создание снимка начального состояния виртуальной машины.
Шаг 7 – Запуск виртуальной машины
Запустите виртуальную машину. При первой загрузке vSocket считывает конфигурацию из начального ISO и начинает регистрироваться в облаке Cato.
Подключение vSocket к CMA
CMA автоматически обнаруживает vSocket и использует серийный номер (из cloud-init user-data), чтобы подключить его к сайту. Для регистрации интерфейсу WAN1 необходимо иметь подключение к Интернету и доступ к публичному DNS, чтобы достичь облака Cato и CMA.
- Если WAN1 получает динамический IP-адрес через DHCP, vSocket автоматически начинает регистрацию в облаке Cato.
- Если DHCP недоступен, настройте статический IP-адрес для WAN1 в
cloud-inituser-data(см. Шаг 2). - По умолчанию интерфейс WAN2 отключен, и vSocket использует только WAN1 для регистрации.
Чтобы следить за процессом загрузки и регистрации, используйте раздел Консоль виртуальной машины в веб-интерфейсе Proxmox. vSocket отправляет свой вывод загрузки на последовательную консоль, поэтому, чтобы увидеть этот вывод, установите Аппаратное обеспечение > Дисплей > Графическая карта на Последовательный терминал 0.
Развертывание высокой доступности (HA)
HA функционирует как пара физической HA, используя VRRP между двумя KVM vSocket. HA отдельно от функции HA кластера Proxmox (опция Добавить в HA), которая перезапускает ВМ на другом узле и не используется для HA vSocket.
- Разверните два ВМ vSocket, каждую с отдельной копией QCOW2 образа и отдельным загрузочным ISO (каждая с серийным номером основного или вторичного сокета).
- LAN-интерфейсы обоих ВМ должны находиться в том же домене вещания (той же мостовой сети и VLAN тег), чтобы VRRP мог функционировать. Если ВМ находятся на разных узлах Proxmox, LAN мосты должны быть подключены к тому же сегменту уровня 2.
- Добавьте вторичный сокет на сайт в CMA. Два члена формируют HA пару, обмениваются состоянием здоровья и переходят в отказоустойчивый режим согласно дизайну HA продукта.
- Состояние здоровья и статус HA видны в CMA.
Развертывание дополнительных ВМ vSocket
Чтобы запустить более одного ВМ vSocket на одном хосте или кластере Proxmox:
- Импортировать чистую копию QCOW2 образа для каждого ВМ.
- Создайте новый загрузочный ISO с серийным номером соответствующего сайта.
- Используйте уникальное имя ВМ и ID ВМ.
- Используйте отдельные LAN мосты или VLAN теги, где требуется изоляция.
Изменение конфигурации ВМ vSocket
Вы можете изменить некоторые настройки ВМ, если новая конфигурация использует поддерживаемые значения. Перезапустите ВМ vSocket, чтобы изменения вступили в силу.
Следующие настройки ВМ могут быть изменены:
- CPU
- Память
- Сетевое оборудование, например добавление или удаление сетевого интерфейса
Устранение неполадок
VM загружается, но vSocket не регистрируется
- Проверьте, прикреплен ли seed ISO в виде CD-ROM.
- Убедитесь, что ISO содержит файл
user-data. - Проверьте, соответствует ли значение
serialсерийному номеру сайта в CMA. - Убедитесь, что WAN1 имеет доступ в Интернет и к общедоступному DNS-сервису.
- Проверьте, подключено ли первое сетевое устройство (net0) к предполагаемому мосту WAN.
Изменения в конфигурации cloud-init игнорируются
Загрузка vSocket выполняется только при первой загрузке. Если вы измените user-data после инициализации VM, изменения не применяются к существующему загрузочному диску. Откатите к снимку начального состояния или воссоздайте VM с чистой копией образа QCOW2 и новым seed ISO.
Консольный вывод отсутствует
- Проверьте, добавлен ли последовательный порт (
serial0) в VM. - Для просмотра последовательного вывода в консоли web UI установите Hardware > Display > Graphic card на Serial terminal 0.
Сеть работает не так, как ожидалось
- Проверьте мост, к которому подключено каждое сетевое устройство.
- Проверьте порядок сетевых устройств в конфигурации VM (net0 это WAN1, net1 это LAN1).
- Проверьте, используют ли секции
[[network]]в файлеuser-dataDHCP или статические настройки.
Связанные статьи
- Конфигурация KVM сайта для vSocket