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 | Кластеры Kubernetes | Managed 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 | Proxmox | VMware | |
|---|---|---|---|
| Задача | Облако с 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-сервер