Cloud

OpenStack

Открытая платформа для построения собственного облака: набор сервисов, превращающих парк серверов в IaaS с API и самообслуживанием.

Что такое OpenStack

OpenStack — открытая платформа для построения облаков. Набор взаимосвязанных сервисов, которые превращают парк физических серверов в полноценный IaaS: с API, самообслуживанием, квотами, виртуальными сетями и учётом потребления.

Проще говоря, OpenStack — это то, из чего делают собственный аналог публичного облака в своём ЦОД. Пользователь получает привычный опыт — создать сервер вызовом API, — а железо остаётся вашим.

Проект начался в 2010 году как совместная разработка NASA и Rackspace, сейчас развивается сообществом под управлением OpenInfra Foundation. Лицензия Apache 2.0, код открыт. На OpenStack построена значительная часть российских публичных облаков и корпоративных частных облаков.

Из чего состоит

OpenStack модульный: сервисы ставятся по необходимости, у каждого своё API.

Сервис Отвечает за Аналогия из публичного облака
Keystone Аутентификацию, проекты, токены IAM
Nova Запуск и управление ВМCompute, инстансы
Neutron Виртуальные сети, роутеры, floating IP VPC
Cinder Блочные диски Тома, подключаемые к серверу
Swift Объектное хранилищеS3-подобное хранилище
Glance Образы ОС для запуска ВМ Образы инстансов
Horizon Веб-панель управления Консоль облака
Ironic Управление bare metal как облачным ресурсом Выделенные серверы по API
Heat Оркестрацию по шаблонам IaC
Magnum Кластеры KubernetesManaged K8s

Минимальное рабочее облако — Keystone, Nova, Neutron, Glance. Остальное добавляется по мере надобности.

Под Nova работает обычный гипервизор, почти всегда KVM. OpenStack его не заменяет, а управляет им: сам по себе он не виртуализирует ничего, это слой управления поверх Linux, KVM и сетевого стека.

Как это выглядит в работе

# То же самое, что «создать инстанс» в панели публичного облака
openstack server create --flavor gpu.a100.1 --image ubuntu-22.04-cuda \
  --network internal-net --key-name my-ssh-key \
  --user-data cloud-init.yaml training-node-01

openstack console log show training-node-01

--user-data передаётся в cloud-init: свежая машина сама поставит SSH-ключи, пакеты и драйверы.

OpenStack, Proxmox и VMware

OpenStack ProxmoxVMware
Задача Облако с API и мультитенантностью Виртуализация небольшого парка Корпоративная виртуализация
Порог входа Высокий Низкий Средний
МультитенантностьПроекты, квоты, изоляция сетей Ограниченная Есть
Лицензия Apache 2.0 Open source, подписка на поддержку Проприетарная
Оправдан при Десятках-сотнях узлов и внешних потребителях Единицах-десятках узлов Готовности платить за экосистему

Честная оценка: OpenStack сложен. Он окупается там, где нужны именно облачные свойства — самообслуживание, изоляция клиентов, учёт потребления, API. Для десятка виртуалок внутри отдела Proxmox даст тот же результат за долю усилий, а OpenStack принесёт штат эксплуатации.

GPU в OpenStack

Ускорители пробрасываются в ВМ через GPU passthrough: карта закрепляется за инстансом целиком по PCI-адресу, гость видит её как физическое устройство и работает со штатным драйвером NVIDIA без потерь производительности. Второй вариант — MIG на A100 или H100: карта делится на аппаратно изолированные части, каждая выдаётся отдельному инстансу, и одна дорогая карта обслуживает несколько небольших задач инференса вместо простоя на 10% загрузки.

Связанные термины

  • IaaS — модель, которую реализует OpenStack
  • Гипервизор — то, чем OpenStack управляет
  • VPC — сетевая изоляция, за неё отвечает Neutron
  • Proxmox — более простая альтернатива для малых инсталляций
  • Типы облаков — OpenStack как основа частного облака
  • cloud-init — первичная настройка создаваемых инстансов

Готовы запустить GPU-задачу?

Запустить GPU-сервер