# Архитектура Virtuality Virtuality — это платформа виртуализации в стиле Proxmox, но с более компактной и контролируемой архитектурой. ## Цель Создать собственную систему управления виртуальными машинами на базе стабильных Linux-компонентов: - KVM; - QEMU; - libvirt; - Cockpit на раннем этапе; - собственная веб-панель на следующих этапах. ## Базовая схема ```text Веб-интерфейс ↓ Backend API ↓ Node services ↓ libvirt / QEMU / KVM ↓ Host OS / Storage / Network ``` ## Слои системы ### 1. Web UI Будущая пользовательская панель Virtuality. Задачи: - список виртуальных машин; - создание VM; - управление питанием; - консоль; - хранилища; - сеть; - бэкапы; - пользователи и роли. ### 2. Backend API Единая точка управления нодой. Задачи: - принимать команды от Web UI; - валидировать действия; - работать с libvirt; - вести журнал событий; - отдавать состояние VM, storage и сети. ### 3. Node services Системные сервисы Virtuality. Задачи: - диагностика ноды; - обновления; - резервное копирование; - мониторинг; - фоновые задачи. ### 4. libvirt / QEMU / KVM Нижний слой виртуализации. Задачи: - запуск виртуальных машин; - управление дисками; - управление сетевыми интерфейсами; - снапшоты; - консольный доступ. ### 5. Host OS Операционная система сервера. Целевые системы: - Debian 12; - Ubuntu Server 22.04; - Ubuntu Server 24.04. ## Пути ```text /opt/virtuality # код и конфигурация проекта /var/lib/virtuality # runtime-хранилище /var/lib/virtuality/iso # ISO-образы /var/lib/virtuality/images # диски VM /var/lib/virtuality/backups # резервные копии /var/log/virtuality # логи ``` ## Принципы - исходный код отдельно от runtime-данных; - диски VM и ISO не хранятся в Git; - конфиги должны быть прозрачными; - установщик должен быть повторяемым; - сетевые изменения делаются осторожно, чтобы не уронить SSH; - архитектура документируется до активной разработки. ## Этап v0.1 На этапе v0.1 создаётся фундамент: - установщик ноды; - установка KVM/QEMU/libvirt; - установка Cockpit; - storage pools; - структура проекта; - GitHub-синхронизация; - базовая диагностика.