ЭрикссонСофт

+7 (953) 284-42-23

ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ

«ЭРИКССОНСОФТ»

Эксплуатационная документация программного продукта

«Cloud Execution Environment CEE»

Правообладатель программы:

ООО «ЭрикссонСофт», ИНН 9718246399

Брянская обл., 2026

Оглавление

Введение

Настоящая эксплуатационная документация подготовлена для обеспечения эффективной и безопасной эксплуатации экземпляра программного обеспечения CEE (Cloud Execution Environment), предоставленного для проведения экспертной оценки.

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

В рамках экспертной оценки представленный экземпляр ПО демонстрирует:

Полнофункциональную реализацию CEE в соответствии со стандартами 3GPP

Современные интерфейсы управления и мониторинга

Готовность к промышленной эксплуатации в телекоммуникационных сетях

Документация построена по принципу "от простого к сложному" — от базовых проверок работоспособности до продвинутых процедур диагностики и восстановления. Все команды и процедуры проверены на тестовом стенде и готовы к применению.

Особое внимание уделено безопасности — все чувствительные данные (пароли, ключи доступа) в документации заменены на шаблоны, фактические значения предоставляются отдельно уполномоченным лицам.

Документ является динамическим — по мере накопления эксплуатационного опыта и выхода обновлений ПО он будет дополняться и актуализироваться.

1. Общие сведения о системе

CEE Hypervisor Manager (Cloud Execution Environment) представляет собой распределенную платформу для управления виртуализацией, предназначенную для развертывания и эксплуатации виртуальных машин в корпоративных средах и центрах обработки данных.

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

Документация описывает эксплуатацию системы в следующей типовой конфигурации:

Управляющие узлы (контроллеры)

Количество: 3 узла

Режим работы: активный/резервный (active/standby)

Распределение: один активный контроллер, два в горячем резерве

Функции: координация, балансировка, API-доступ, веб-интерфейс

Вычислительные узлы (compute nodes)

Количество: 3 узла

Гипервизор: KVM с управлением через libvirt

Хранилище: локальное на каждом узле

Сеть: общая сеть для миграции ВМ и доступа к образам

Данная конфигурация обеспечивает отказоустойчивость уровня управления и возможность балансировки нагрузки между вычислительными ресурсами.

Базовое ПО

Операционная система: Ubuntu Server 22.04 LTS / 24.04 LTS

Среда выполнения: Python 3.12 или выше

Гипервизор: KVM + QEMU

Управление виртуализацией: libvirt (6.0 или выше)

Компоненты CEE

Менеджер виртуальных машин (основное приложение)

Модуль управления образами

Модуль мониторинга состояния

API-шлюз для взаимодействия с клиентами

Контроллер (минимальные)

Процессор: 4 ядра x86_64

Оперативная память: 8 ГБ

Дисковое пространство: 50 ГБ

Сетевые интерфейсы: 1 Gbps

Контроллер (рекомендованные)

Процессор: 8 ядер x86_64

Оперативная память: 16 ГБ

Дисковое пространство: 100 ГБ (SSD)

Сетевые интерфейсы: 10 Gbps

Вычислительный узел (минимальные)

Процессор: 8 ядер x86_64 (с поддержкой аппаратной виртуализации)

Оперативная память: 32 ГБ

Дисковое пространство: 500 ГБ

Сетевые интерфейсы: 1 Gbps

Вычислительный узел (рекомендованные)

Процессор: 16+ ядер x86_64 (с поддержкой аппаратной виртуализации)

Оперативная память: 64+ ГБ

Дисковое пространство: 2+ ТБ (NVMe/SSD)

Сетевые интерфейсы: 10+ Gbps

Сеть

Назначение

Участники

Management Network

Управление кластером, API-доступ

Контроллеры, администраторы

Storage Network

Передача образов и снапшотов

Все узлы

VM Network

Трафик виртуальных машин

Вычислительные узлы

Migration Network

Живая миграция ВМ

Вычислительные узлы

1.4.2. IP-адресация (пример)

Management Network: 192.168.10.0/24
  Контроллер-1: 192.168.10.10
  Контроллер-2: 192.168.10.11
  Контроллер-3: 192.168.10.12
  Virtual IP (контроллеров): 192.168.10.100
 
Storage Network: 10.0.0.0/24
  cmp-01: 10.0.0.1
  cmp-02: 10.0.0.2
  cmp-03: 10.0.0.3
 
VM Network: 172.16.0.0/12 (динамическая выдача адресов ВМ)
 
Migration Network: 192.168.20.0/24
  cmp-01: 192.168.20.1
  cmp-02: 192.168.20.2
  cmp-03: 192.168.20.3

Администратор инфраструктуры

Управление вычислительными узлами

Настройка сети и хранилищ

Мониторинг работоспособности системы

Управление образами и шаблонами

Оператор виртуальных машин

Создание и удаление ВМ

Запуск и остановка ВМ

Управление снимками состояния

Миграция ВМ между узлами

Наблюдатель (мониторинг)

Просмотр состояния системы

Просмотр логов

Получение уведомлений о событиях

Контроллеры

Обработка API-запросов

Балансировка ВМ по вычислительным узлам

Координация миграции

Хранение метаданных о состоянии системы

Вычислительные узлы

Запуск и остановка ВМ

Выполнение команд гипервизора

Локальное хранение образов

Предоставление метрик использования ресурсов

Mock-режим (эмуляция)

Не требует реального гипервизора

Используется для тестирования и разработки

Все операции имитируются в памяти

Данные не сохраняются между перезапусками

KVM-режим (production)

Использует реальный гипервизор KVM

Требует установленного libvirt и настроенной виртуализации

Все операции выполняются с реальными ВМ

Состояние сохраняется в гипервизоре

Режим контроллера (controller)

Управляющая роль

Принимает запросы от клиентов

Координирует работу вычислительных узлов

Не выполняет ВМ на себе

Режим вычислительного узла (compute)

Исполнительная роль

Запускает виртуальные машины

Подчиняется командам контроллеров

Может работать независимо в аварийном режиме

Все API-запросы должны аутентифицироваться с использованием JWT-токенов

Разграничение доступа на основе ролей (RBAC)

Аудит всех действий с ВМ и конфигурацией

Шифрование трафика между компонентами (TLS)

Изоляция виртуальных машин друг от друга

Изоляция трафика управления от трафика ВМ

Разделение сетей по функциональному назначению

Ограничение доступа к API управления по IP-адресам

Разработчики используют систему для быстрого развертывания тестовых сред. Благодаря mock-режиму, тестирование может проводиться без выделения реальных аппаратных ресурсов.

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

Система может использоваться в учебных целях для демонстрации принципов работы виртуализации и управления облачной инфраструктурой.

2. Эксплуатация экземпляра ПО

CEE Hypervisor Manager представляет собой распределенную систему управления виртуализацией, состоящую из трех контроллеров (управляющих узлов) и трех вычислительных узлов (compute nodes). Каждый компонент системы может функционировать независимо, обеспечивая отказоустойчивость и балансировку нагрузки.

Приложение предоставляет REST API и веб-интерфейс для управления виртуальными машинами и поддерживает два режима работы: с реальным гипервизором KVM через libvirt на вычислительных узлах и с эмуляцией (mock-режим) для тестирования.

Контроллеры (Controller Nodes)
Три управляющих узла обеспечивают:

Координацию работы вычислительных узлов

Балансировку нагрузки при создании ВМ

Отказоустойчивость при выходе из строя отдельных контроллеров

Единую точку доступа для API и веб-интерфейса

Вычислительные узлы (Compute Nodes)
Три узла, на которых непосредственно выполняются виртуальные машины:

Запуск гипервизора KVM

Исполнение команд от контроллеров

Локальное хранение образов ВМ

Мониторинг состояния ВМ

Клиент (браузер/API-клиент)
       │
       ▼
┌─────────────────────────────────────┐
│  Контроллер-1  │  Контроллер-2  │  Контроллер-3  │
│  (Active)      │  (Standby)     │  (Standby)      │
└─────────────────────────────────────┘
       │               │               │
       └───────────────┼───────────────┘
                       │
       ┌───────────────┼───────────────┐
       ▼               ▼               ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Compute-1   │ │ Compute-2   │ │ Compute-3   │
│ KVM/libvirt │ │ KVM/libvirt │ │ KVM/libvirt │
└─────────────┘ └─────────────┘ └─────────────┘

Каждый экземпляр приложения поддерживает следующие параметры командной строки:

--driver - драйвер виртуализации (mock или kvm)
--uri - URI подключения к libvirt (для драйвера kvm)
--port - порт для запуска HTTP-сервера
--mode - режим работы (controller или compute)
--controllers - список адресов контроллеров (для compute-узлов)
--node-id - уникальный идентификатор узла

Параметры также могут быть заданы через переменные окружения:

  • CEE_DRIVER
  • CEE_URI
  • CEE_PORT
  • CEE_MODE
  • CEE_CONTROLLERS
  • CEE_NODE_ID

Контроллер-1 (основной)

bash

python main.py --mode controller --node-id ctrl-01 --port 8000 --driver mock

Контроллер-2 (резервный)

bash

python main.py --mode controller --node-id ctrl-02 --port 8001 --driver mock

Контроллер-3 (резервный)

bash

python main.py --mode controller --node-id ctrl-03 --port 8002 --driver mock

Вычислительный узел 1

bash

python main.py --mode compute --node-id cmp-01 \
  --driver kvm --uri qemu:///system \
  --controllers http://192.168.1.10:8000,http://192.168.1.11:8001,http://192.168.1.12:8002

Вычислительный узел 2

bash

python main.py --mode compute --node-id cmp-02 \
  --driver kvm --uri qemu:///system \
  --controllers http://192.168.1.10:8000,http://192.168.1.11:8001,http://192.168.1.12:8002

Вычислительный узел 3

bash

python main.py --mode compute --node-id cmp-03 \
  --driver kvm --uri qemu:///system \
  --controllers http://192.168.1.10:8000,http://192.168.1.11:8001,http://192.168.1.12:8002

Пример unit-файла для контроллера (/etc/systemd/system/cee-controller.service)

[Unit]
Description=CEE Hypervisor Controller
After=network.target
 
[Service]
Type=simple
User=cee
Group=cee
Environment="CEE_MODE=controller"
Environment="CEE_NODE_ID=ctrl-01"
Environment="CEE_PORT=8000"
Environment="CEE_DRIVER=mock"
ExecStart=/usr/local/bin/python /opt/cee/main.py
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target

Пример unit-файла для вычислительного узла (/etc/systemd/system/cee-compute.service)

[Unit]
Description=CEE Hypervisor Compute Node
After=network.target libvirtd.service
Requires=libvirtd.service
 
[Service]
Type=simple
User=cee
Group=cee
Environment="CEE_MODE=compute"
Environment="CEE_NODE_ID=cmp-01"
Environment="CEE_DRIVER=kvm"
Environment="CEE_URI=qemu:///system"
Environment="CEE_CONTROLLERS=http://192.168.1.10:8000,http://192.168.1.11:8001,http://192.168.1.12:8002"
ExecStart=/usr/local/bin/python /opt/cee/main.py
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target

2.4. API endpoints

Получение списка ВМ

GET /api/v1/vms

Ответ содержит список всех виртуальных машин с указанием вычислительного узла, на котором они запущены.

Создание ВМ

POST /api/v1/vms
Content-Type: application/json
 
{
    "name": "vm-01",
    "vcpus": 4,
    "memory": 8192,
    "image": "/var/lib/libvirt/images/ubuntu.qcow2",
    "os_type": "linux",
    "storage_gb": 50,
    "autostart": true,
    "preferred_node": "cmp-02"
}

Параметр preferred_node указывает предпочтительный вычислительный узел для размещения ВМ. Если не указан, контроллер выбирает узел автоматически на основе текущей нагрузки.

Удаление ВМ

DELETE /api/v1/vms/{vm_id}

Запуск ВМ

POST /api/v1/vms/{vm_id}/start

Остановка ВМ

POST /api/v1/vms/{vm_id}/stop

Миграция ВМ

POST /api/v1/vms/{vm_id}/migrate
Content-Type: application/json
 
{
    "target_node": "cmp-03"
}

Получение списка образов

GET /api/images

Возвращает список доступных образов на всех вычислительных узлах.

Загрузка образа

POST /api/upload-image
Content-Type: multipart/form-data
 
image: [файл]

Образ загружается на все вычислительные узлы или на указанный узел.

Удаление образа

DELETE /api/images/{filename}

Клонирование образа

POST /api/clone-image
Content-Type: application/json
 
{
    "source": "ubuntu-base.qcow2",
    "target": "ubuntu-clone.qcow2"
}

Статус системы

GET /api/status

Возвращает состояние всех компонентов системы, включая:

Статус каждого контроллера

Статус каждого вычислительного узла

Текущую нагрузку на узлах

Количество запущенных ВМ

Статус вычислительных узлов

GET /api/nodes

Информация о конкретном узле

GET /api/nodes/{node_id}

При выходе из строя основного контроллера:

Резервные контроллеры обнаруживают потерю связи через механизм heartbeat

Один из резервных контроллеров автоматически становится основным

Вычислительные узлы переключаются на новый основной контроллер

Все операции с ВМ продолжаются без прерывания

При выходе из строя вычислительного узла:

Контроллеры обнаруживают потерю связи с узлом

Все ВМ, работавшие на отказавшем узле, помечаются как "аварийные"

Система пытается перезапустить ВМ на доступных узлах (при наличии общих образов)

Администратор получает уведомление о необходимости ручного вмешательства

При создании новых ВМ контроллер автоматически выбирает вычислительный узел на основе:

Текущей загрузки CPU на узлах

Доступной памяти

Свободного дискового пространства

Наличия требуемого образа

[global]
log_level = INFO
log_file = /var/log/cee/cee.log
 
[database]
host = localhost
port = 5432
name = cee
user = cee
password = secure_password
 
[controllers]
nodes = ctrl-01,ctrl-02,ctrl-03
vip = 192.168.1.100
port = 8000
 
[compute]
nodes = cmp-01,cmp-02,cmp-03
storage_path = /var/lib/libvirt/images
default_vcpus = 2
default_memory_mb = 4096
default_disk_gb = 20
 
[monitoring]
heartbeat_interval = 5
failure_threshold = 3
metrics_enabled = true

2.6.2. Файл учетных данных /etc/cee/credentials.conf

[libvirt]
uri = qemu:///system
auth_type = sasl
username = cee
password = secure_password
 
[api]
jwt_secret = your-256-bit-secret
token_expiry_hours = 24

bash

<em># </em><em>Логи</em><em> </em><em>контроллера</em>
journalctl -u cee-controller -f
 
<em># </em><em>Логи</em><em> </em><em>вычислительного</em><em> </em><em>узла</em>
journalctl -u cee-compute -f
 
<em># Логи всех компонентов</em>
tail -f /var/log/cee/*.log

bash

<em># Статус всех сервисов</em>
systemctl status "cee-*"
 
<em># Проверка через </em><em>API</em>
curl <a href="http://192.168.1.100:8000/api/status">http://192.168.1.100:8000/api/status</a> | jq .
 
<em># Проверка вычислительных узлов</em>
curl <a href="http://192.168.1.100:8000/api/nodes">http://192.168.1.100:8000/api/nodes</a> | jq .

bash

<em># На текущем основном контроллере</em>
systemctl stop cee-controller
 
<em># На резервном контроллере (автоматическое переключение)</em>
<em># или принудительное переключение через API</em>
curl -X POST <a href="http://192.168.1.11:8001/api/admin/failover">http://192.168.1.11:8001/api/admin/failover</a>

bash

<em># На новом узле</em>
scp user@controller:/etc/cee/cee.conf /etc/cee/
scp user@controller:/etc/cee/credentials.conf /etc/cee/
 
systemctl enable --now cee-compute
 
<em># </em><em>На</em><em> </em><em>контроллере</em><em> (</em><em>регистрация</em><em> </em><em>узла</em><em>)</em>
curl -X POST <a href="http://192.168.1.100:8000/api/admin/register-node">http://192.168.1.100:8000/api/admin/register-node</a> \
  -H "Content-Type: application/json" \
  -d '{"node_id": "cmp-04", "address": "192.168.1.14"}'

bash

#!/bin/bash
<em># /usr/local/bin/backup-cee-config.sh</em>
 
BACKUP_DIR="/backup/cee/config"
DATE=$(date +%Y%m%d)
 
mkdir -p $BACKUP_DIR
 
<em># Сохранение конфигурации</em>
tar -czf $BACKUP_DIR/cee-config-$DATE.tar.gz /etc/cee/
 
<em># Сохранение информации о ВМ</em>
curl <a href="http://192.168.1.100:8000/api/v1/vms">http://192.168.1.100:8000/api/v1/vms</a> > $BACKUP_DIR/vms-$DATE.json
 
<em># </em><em>Сохранение</em><em> </em><em>метрик</em>
curl <a href="http://192.168.1.100:8000/api/status">http://192.168.1.100:8000/api/status</a> > $BACKUP_DIR/status-$DATE.json

bash

#!/bin/bash
<em># /usr/local/bin/backup-cee-images.sh</em>
 
BACKUP_DIR="/backup/cee/images"
DATE=$(date +%Y%m%d)
 
for node in cmp-01 cmp-02 cmp-03; do
  rsync -avz $node:/var/lib/libvirt/images/ $BACKUP_DIR/$node/$DATE/
done

bash

#!/bin/bash
<em># /usr/local/bin/restore-cee.sh</em>
 
BACKUP_DATE=$1
BACKUP_DIR="/backup/cee"
 
<em># </em><em>Восстановление</em><em> </em><em>конфигурации</em>
tar -xzf $BACKUP_DIR/config/cee-config-$BACKUP_DATE.tar.gz -C /
 
<em># </em><em>Перезапуск</em><em> </em><em>сервисов</em>
systemctl restart cee-controller
systemctl restart cee-compute

3. Управление конфигурацией

3.1. Файлы конфигурации

3.1.1. Основной конфигурационный файл

Система использует единый конфигурационный файл в формате INI, расположенный по пути /etc/cee/cee.conf. При отсутствии файла используются значения по умолчанию или переменные окружения.

Пример полного конфигурационного файла:

[global]
node_id = ctrl-01
mode = controller
log_level = INFO
log_file = /var/log/cee/cee.log
pid_file = /var/run/cee/cee.pid
 
[api]
host = 0.0.0.0
port = 8000
workers = 4
ssl_enabled = false
ssl_cert = /etc/cee/ssl/cert.pem
ssl_key = /etc/cee/ssl/key.pem
cors_origins = *
 
[database]
type = sqlite
path = /var/lib/cee/cee.db
# для PostgreSQL:
# type = postgresql
# host = localhost
# port = 5432
# name = cee
# user = cee
# password = secure_password
 
[controllers]
enabled = true
nodes = ctrl-01,ctrl-02,ctrl-03
virtual_ip = 192.168.10.100
heartbeat_interval = 5
election_timeout = 30
 
[compute]
enabled = true
nodes = cmp-01,cmp-02,cmp-03
storage_path = /var/lib/libvirt/images
iso_path = /var/lib/libvirt/images/iso
default_vcpus = 2
default_memory_mb = 4096
default_disk_gb = 20
auto_balance = true
 
[libvirt]
uri = qemu:///system
auth_type = sasl
username = cee
secret_uuid = 12345678-1234-1234-1234-123456789012
connection_timeout = 30
max_connections = 10
 
[networks]
management = 192.168.10.0/24
storage = 10.0.0.0/24
migration = 192.168.20.0/24
vm_network = 172.16.0.0/12
vm_bridge = virbr0
 
[monitoring]
enabled = true
metrics_port = 9100
heartbeat_check = true
failure_threshold = 3
recovery_attempts = 5
alert_webhook = <a href="https://alerts.example.com/webhook">https://alerts.example.com/webhook</a>
 
[security]
jwt_secret = your-256-bit-secret-key-change-in-production
token_expiry_hours = 24
rbac_enabled = true
audit_log = /var/log/cee/audit.log
session_timeout = 3600
 
[storage]
shared_storage = false
nfs_server = 
nfs_path = 
image_cache_size_gb = 100
snapshot_retention_days = 7
backup_enabled = true
backup_path = /backup/cee

3.1.2. Файл учетных данных

Чувствительные данные хранятся в отдельном файле /etc/cee/credentials.conf с ограниченным доступом (права 600).

[libvirt]
password = secure_libvirt_password
 
[api]
jwt_secret = your-256-bit-secret-key
admin_password = $2b$12$hashed_admin_password
 
[database]
password = database_password
 
[external]
grafana_api_key = eyJrIjoi...
prometheus_password = prom_pass

3.1.3. Переменные окружения

Все параметры конфигурации могут быть переопределены через переменные окружения с префиксом CEE_:

CEE_NODE_ID=cmp-01
CEE_MODE=compute
CEE_PORT=8000
CEE_DRIVER=kvm
CEE_URI=qemu:///system
CEE_CONTROLLERS=http://192.168.10.10:8000,http://192.168.10.11:8000
CEE_LOG_LEVEL=DEBUG
CEE_STORAGE_PATH=/mnt/cee-images

3.2. Управление конфигурацией контроллеров

3.2.1. Конфигурация активного контроллера

На активном контроллере (ctrl-01) настраиваются параметры кластера и виртуальный IP-адрес для обеспечения единой точки доступа.

[controllers]
enabled = true
nodes = ctrl-01,ctrl-02,ctrl-03
virtual_ip = 192.168.10.100
heartbeat_interval = 5
election_timeout = 30

Настройка виртуального IP через keepalived:

# /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ceecluster
    }
    virtual_ipaddress {
        192.168.10.100/24 dev eth0
    }
}

3.2.2. Конфигурация резервных контроллеров

На резервных контроллерах (ctrl-02, ctrl-03) настройки аналогичны, за исключением приоритета в keepalived:

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90  # на втором контроллере
    priority 80  # на третьем контроллере
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ceecluster
    }
    virtual_ipaddress {
        192.168.10.100/24 dev eth0
    }
}

3.3. Управление конфигурацией вычислительных узлов

3.3.1. Базовая конфигурация compute-узла

На каждом вычислительном узле настраивается подключение к контроллерам и параметры локального хранилища.

[compute]
enabled = true
nodes = cmp-01,cmp-02,cmp-03
storage_path = /var/lib/libvirt/images
iso_path = /var/lib/libvirt/images/iso
default_vcpus = 2
default_memory_mb = 4096
auto_balance = true
 
[controllers]
enabled = false  # узел не является контроллером
controller_list = http://192.168.10.100:8000,http://192.168.10.10:8000,http://192.168.10.11:8000
failover_priority = primary,secondary,tertiary

3.3.2. Настройка libvirt

Проверка и настройка libvirt:

# Проверка статуса
systemctl status libvirtd
 
# Настройка удаленного доступа (при необходимости)
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default
 
# Настройка аутентификации
sudo nano /etc/libvirt/libvirtd.conf

Рекомендуемые параметры libvirtd.conf:

listen_tls = 0
listen_tcp = 1
auth_tcp = "sasl"
tcp_port = "16509"
listen_addr = "0.0.0.0"

3.3.3. Настройка хранилища

Создание директорий для образов:

sudo mkdir -p /var/lib/libvirt/images
sudo mkdir -p /var/lib/libvirt/images/iso
sudo chown -R root:libvirt /var/lib/libvirt/images
sudo chmod 775 /var/lib/libvirt/images

Настройка пулов хранения в libvirt:

# Создание пула для образов
sudo virsh pool-define-as images dir --target /var/lib/libvirt/images
sudo virsh pool-build images
sudo virsh pool-start images
sudo virsh pool-autostart images
 
# Создание пула для ISO
sudo virsh pool-define-as iso dir --target /var/lib/libvirt/images/iso
sudo virsh pool-build iso
sudo virsh pool-start iso
sudo virsh pool-autostart iso

3.4. Управление через переменные окружения

3.4.1. Системные переменные

Для удобства автоматизации все параметры могут быть заданы через переменные окружения. Система читает их при запуске и использует с наивысшим приоритетом.

# Базовые параметры
export CEE_MODE=compute
export CEE_NODE_ID=cmp-01
export CEE_PORT=8000
export CEE_DRIVER=kvm
export CEE_URI=qemu:///system
 
# Параметры кластера
export CEE_CONTROLLERS=http://192.168.10.100:8000
export CEE_HEARTBEAT_INTERVAL=5
export CEE_FAILURE_THRESHOLD=3
 
# Параметры хранилища
export CEE_STORAGE_PATH=/mnt/cee-large-storage
export CEE_IMAGE_CACHE_SIZE_GB=200

3.4.2. Файл окружения для systemd

Для сервисов, управляемых через systemd, рекомендуется использовать файл окружения:

# /etc/cee/cee.env
CEE_MODE=compute
CEE_NODE_ID=cmp-01
CEE_PORT=8000
CEE_DRIVER=kvm
CEE_URI=qemu:///system
CEE_CONTROLLERS=http://192.168.10.100:8000
CEE_STORAGE_PATH=/var/lib/libvirt/images
CEE_LOG_LEVEL=INFO

Подключение в unit-файле:

[Service]
EnvironmentFile=/etc/cee/cee.env
ExecStart=/usr/local/bin/python /opt/cee/main.py

3.5. Динамическое изменение конфигурации

3.5.1. API для управления конфигурацией

Система предоставляет API для просмотра и изменения конфигурации на лету (требует прав администратора).

Просмотр текущей конфигурации:

curl -X GET <a href="http://192.168.10.100:8000/api/admin/config">http://192.168.10.100:8000/api/admin/config</a>

Изменение параметра:

curl -X POST <a href="http://192.168.10.100:8000/api/admin/config">http://192.168.10.100:8000/api/admin/config</a> \
  -H "Content-Type: application/json" \
  -d '{"key": "monitoring.failure_threshold", "value": 5}'

Перезагрузка конфигурации без остановки сервиса:

curl -X POST <a href="http://192.168.10.100:8000/api/admin/config/reload">http://192.168.10.100:8000/api/admin/config/reload</a>

3.5.2. Применение изменений

Изменения конфигурации применяются следующим образом:

Критические параметры (порт, режим работы) требуют перезапуска сервиса

Некритические параметры (логирование, пороги мониторинга) применяются без перезапуска

Параметры безопасности требуют подтверждения и логируются в аудит

3.6. Проверка конфигурации

3.6.1. Валидация перед запуском

Система выполняет автоматическую проверку конфигурации при запуске:

# Ручная проверка конфигурации
python main.py --validate-config --config /etc/cee/cee.conf

3.6.2. Диагностика

Проверка доступности libvirt:

python main.py --check-libvirt --uri qemu:///system

Проверка подключения к контроллерам (на compute-узле):

python main.py --check-controllers

Проверка прав доступа к хранилищу:

python main.py --check-storage --path /var/lib/libvirt/images

3.7. Примеры конфигураций для различных сценариев

3.7.1. Разработка и тестирование (на одной машине)

[global]
node_id = dev-01
mode = controller
log_level = DEBUG
 
[api]
port = 8000
 
[database]
type = sqlite
path = ./cee-dev.db
 
[compute]
enabled = true
storage_path = ./images
default_vcpus = 2
default_memory_mb = 2048
 
[libvirt]
uri = qemu:///session  # для пользовательского режима
 
[monitoring]
enabled = false

3.7.2. Продуктивная среда (полный кластер)

[global]
node_id = ctrl-01
mode = controller
log_level = INFO
log_file = /var/log/cee/cee.log
 
[api]
port = 8000
workers = 8
ssl_enabled = true
 
[database]
type = postgresql
host = postgres-01
port = 5432
name = cee_prod
user = cee_app
 
[controllers]
nodes = ctrl-01,ctrl-02,ctrl-03
virtual_ip = 192.168.10.100
 
[compute]
nodes = cmp-01,cmp-02,cmp-03
storage_path = /var/lib/libvirt/images
auto_balance = true
 
[monitoring]
enabled = true
metrics_port = 9100
alert_webhook = <a href="https://alerts.company.com/cee">https://alerts.company.com/cee</a>
 
[security]
rbac_enabled = true
audit_log = /var/log/cee/audit.log

3.7.3. Изолированный compute-узел

[global]
node_id = cmp-standalone
mode = compute
log_level = INFO
 
[compute]
enabled = true
storage_path = /data/cee/images
iso_path = /data/cee/iso
default_vcpus = 4
default_memory_mb = 8192
 
[controllers]
enabled = false
controller_list = <a href="http://192.168.10.100:8000">http://192.168.10.100:8000</a>
 
[libvirt]
uri = qemu:///system
 
[storage]
shared_storage = true
nfs_server = 192.168.10.200
nfs_path = /exports/cee-images

Отдел продаж

+7 (953) 284-42-23

sales@ericssonsoftware.ru

Мы в соц.сетях

Информация

Адрес

242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33

Информация

Отдел продаж

+7 (953) 284-42-23

sales@ericssonsoftware.ru

Адрес

242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33