НейроАгент

Виртуальные машины на одном сервере

Полное руководство по созданию изолированных виртуальных машин на одном физическом сервере с использованием Proxmox VE, KVM и LXC для оптимального распределения ресурсов.

Как создать несколько виртуальных машин на одном физическом сервере?

Мы приобрели физический сервер для офиса и планируем развернуть на нем следующие компоненты:

  • локальный репозиторий с исходным кодом
  • сервис Sentry (в виде Docker-образа)
  • тестовый сервер для команды тестировщиков
  • узел для репликации базы данных MySQL для обеспечения локального доступа к рабочей базе данных внутри офиса

Необходимо обеспечить изоляцию каждого компонента в отдельной виртуальной машине. Какие технологии и инструменты можно использовать для реализации такой архитектуры?

НейроАгент

Создание нескольких виртуальных машин на одном физическом сервере возможно с использованием технологий виртуализации, таких как KVM, VMware или Proxmox VE. Для вашей архитектуры с отдельными изолированными средами под локальный репозиторий, Sentry, тестовый сервер и узел репликации MySQL рекомендуется использовать платформу Proxmox VE, которая сочетает в себе KVM для полноценной виртуализации и контейнеры LXC для легковесных решений.

Содержание


Основные технологии виртуализации

Виртуализация позволяет запускать несколько независимых виртуальных машин на одном физическом сервере, каждый со своей операционной системой и приложениями. Согласно исследованиям, современная виртуализация предоставляет мощные возможности для консолидации серверов и оптимизации использования ресурсов https://www.scalecomputing.com/resources/server-hardware-virtualization-maximizing-resource-utilization-and-flexibility.

Основные подходы к виртуизации включают:

KVM (Kernel-based Virtual Machine)

  • Принцип работы: Интегрирован непосредственно в ядро Linux, обеспечивает полноценную виртуализацию железа
  • Преимущества: Высокая производительность, поддержка различных операционных систем, встроенная безопасность
  • Применение: Идеально для запуска полноценных VM с Windows или Linux https://www.proxmox.com/en/products/proxmox-virtual-environment/features

LXC (Linux Containers)

  • Принцип работы: Операционная система уровня виртуализации, разделяющая ядро хост-системы
  • Преимущества: Минимальные накладные расходы, высокая плотность размещения
  • Применение: Для легковесных изолированных Linux-систем https://www.datto.com/blog/what-is-proxmox-virtual-environment/

Гипервизоры


Выбор платформы для вашей архитектуры

Для вашей конкретной задачи с четырьмя компонентами оптимальным выбором будет Proxmox VE, который предлагает уникальное сочетание технологий:

Почему Proxmox VE?

Альтернативы для сравнения

Платформа Тип лицензии Поддержка KVM Особенности
Proxmox VE Open source + коммерческая Да Кластеризация, ZFS хранилище
VMware ESXi Коммерческая Да HA, DRS, продвинутая кластеризация
KVM (Vanilla) Open source Да Требует ручной настройки
XCP-ng Open source Да Аналог XenServer

Важно: В отличие от VMware, Proxmox VE не требует лицензии для базовой функциональности, что делает его экономически выгодным для вашего случая https://medium.com/@PlanB./proxmox-vs-vmware-can-open-source-virtualization-meet-enterprise-demands-a9edcf9ee921.


Пошаговая реализация с Proxmox VE

Шаг 1: Установка Proxmox VE

  1. Скачайте ISO с официального сайта
  2. Создайте установочный USB-накопитель
  3. Установите систему на ваш физический сервер:
    • Рекомендуемый раздел для системы: 50-100 GB
    • Оставшееся пространство выделите под ZFS хранилище

Шаг 2: Настройка хранилищ

bash
# Создание ZFS пула для хранения VM
zpool create -o ashift=12 tank raidz1 /dev/sdb /dev/sdc /dev/sdd

# Настройка Proxmox для использования пула
pvesm add zfs tank --content rootdir,vzdir,images

Шаг 3: Создание виртуальных машин

VM 1: Локальный репозиторий исходного кода

  • Технология: LXC (контейнер)
  • Ресурсы: 2 vCPU, 4GB RAM, 50GB дисковое пространство
  • ОС: Ubuntu 22.04 LTS
  • Назначение: GitLab или аналогичный сервис

VM 2: Sentry (Docker)

  • Технология: LXC с Docker
  • Ресурсы: 4 vCPU, 8GB RAM, 100GB дисковое пространство
  • ОС: Ubuntu 22.04 LTS
  • Назначение: Запуск Docker-контейнеров Sentry

VM 3: Тестовый сервер

  • Технология: KVM (полноценная VM)
  • Ресурсы: 4 vCPU, 16GB RAM, 200GB дисковое пространство
  • ОС: Windows Server или Linux в зависимости от требований
  • Назначение: Среда для тестировщиков

VM 4: Узел репликации MySQL

  • Технология: KVM (полноценная VM)
  • Ресурсы: 2 vCPU, 8GB RAM, 150GB дисковое пространство
  • ОС: Ubuntu 22.04 LTS
  • Назначение: MySQL репликация и локальный доступ

Шаг 4: Настройка сети

bash
# Создание bridge для сетевой изоляции
pvesh create /network bridge --name vmbr1 --bridge-stp off --bridge-fd 0

# Настройка VLAN если требуется
pvesh create /network/vlan --bridge vmbr1 --vlan-raw-device vmbr1 --vlan-id 100

Альтернативные решения

VMware vSphere/ESXi

Преимущества:

  • Высокая надежность и продвинутые функции HA (High Availability)
  • Автоматическое распределение ресурсов (DRS)
  • Промышленная поддержка

Недостатки:

XCP-ng

Преимущества:

  • Бесплатная и open source альтернатива XenServer
  • Хорошая производительность
  • Поддержка кластеризации

Недостатки:

  • Меньшая функциональность по сравнению с Proxmox
  • Ограниченная документация

Vanilla KVM + libvirt

Преимущества:

  • Максимальная гибкость
  • Полный контроль над конфигурацией
  • Возможность кастомизации

Недостатки:

  • Требует ручной настройки и управления
  • Отсутствует веб-интерфейс по умолчанию

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

Распределение ресурсов

Для вашей архитектуры с четырьмя VM рекомендуется следующее распределение ресурсов:

Компонент vCPU RAM Диск Технология
Репозиторий 2 4GB 50GB LXC
Sentry 4 8GB 100GB LXC + Docker
Тестовый сервер 4 16GB 200GB KVM
MySQL репликация 2 8GB 150GB KVM
Итого 12 36GB 500GB

Советы по оптимизации:

  1. Используйте ZFS для дисковой подсистемы - обеспечивает сжатие и дедупликацию
  2. Настройте NUMA для многоядерных процессоров
  3. Используйте SSD для операционных систем и работающих дисков
  4. Оптимизируйте сетевые настройки для VM с высокой сетевой активностью https://www.unitrends.com/blog/what-is-proxmox-virtual-environment/

Безопасность и изоляция

Уровни изоляции в Proxmox VE

1. Гипервизорный уровень

  • KVM: Полная изоляция VM на уровне железа
  • LXC: Изоляция через пространства имен и cgroups Linux
  • SELinux/AppArmor: Дополнительные механизмы безопасности https://thectoclub.com/tools/best-virtualization-software/

2. Сетевая изоляция

bash
# Создание отдельных сетевых мостов
pvesh create /network bridge --name vmbr1 --bridge-stp off
pvesh create /network bridge --name vmbr2 --bridge-stp off

# Настройка правил firewall
pvesh create /nodes/[node]/firewall/ipset --name sentry-vm
pvesh create /nodes/[node]/firewall/rules --action DROP --type IN --source NOT ipset!sentry-vm

3. Настройка безопасности для каждой VM

Тип VM Рекомендуемые настройки безопасности
Репозиторий Только входящие соединения по SSH, запрет root-доступа
Sentry Изолированная сеть, доступ только из тестовой VM
Тестовый сервер Ограниченные права, запрет доступа к другим VM
MySQL Шифрование данных, только внутренний доступ

Дополнительные меры безопасности:

  1. Регулярные обновления Proxmox VE и гостевых систем
  2. Резервное копирование конфигураций и данных
  3. Мониторинг ресурсов и безопасности
  4. Резервное питание для физического сервера

Источники

  1. Future of Desktop Virtualization in 2024 and Beyond - V2 Cloud
  2. Server Virtualization Trends & Solutions 2024
  3. Maximize Efficiency with Server Hardware Virtualization
  4. Virtualization in 2024: Hypervisors, Competition and More
  5. 18 Best Virtualization Software in 2025
  6. Server Virtualization Software and Management
  7. Proxmox Virtual Environment - Overview
  8. What is Server Virtualization? A Complete Guide
  9. What Is Virtualization? | IBM
  10. Top 5 Virtualization Solutions for Your Business in 2024
  11. What is Proxmox Virtual Environment (Proxmox VE)? | Datto
  12. The Complete Guide to Virtualization Technologies in 2025
  13. Proxmox Virtual Environment - Features
  14. Proxmox 🆚 VMware: What’s Right for You?
  15. Proxmox VE vs. VMware ESXi vs. Hyper-V – 4sysops
  16. Proxmox vs. VMware: Can Open-Source Virtualization Meet Enterprise Demands?
  17. Proxmox Alternatives in 2024: Comparing 10 Hypervisors Pros and Cons
  18. What is Proxmox VE (Virtual Environment)? | Unitrends
  19. Proxmox vs VMware | Virtualization Platform Comparison

Заключение

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

Ключевые рекомендации:

  1. Используйте гибридный подход: KVM для ресурсоемких VM (тестовый сервер, MySQL) и LXC для легковесных сервисов (репозиторий, Sentry)
  2. Оптимизируйте распределение ресурсов: Выделите достаточную память и CPU для каждого компонента с учетом будущей нагрузки
  3. Обеспечьте сетевую изоляцию: Создайте отдельные сетевые мосты и настройте firewall для защиты VM
  4. Реализуйте резервное копирование: Настройте регулярное резервное копирование конфигураций и важных данных
  5. Планируйте масштабирование: Выделите дополнительные ресурсы физического сервера для возможного расширения

Такая архитектура позволит вам эффективно использовать ресурсы одного физического сервера при обеспечении полной изоляции и безопасности каждого компонента вашей IT-инфраструктуры.