Этот коммит содержится в:
Виктор
2026-05-06 17:55:35 +09:00
родитель 6de54e0423
Коммит 289add5e84
+122
Просмотреть файл
@@ -0,0 +1,122 @@
# Архитектура 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-синхронизация;
- базовая диагностика.