Что такое OpenStack и зачем он нужен
Архитектура и основные компоненты OpenStack
Характеристика | Значение |
|---|---|
| Nova (Compute) | Управление вычислительными ресурсами: создание, планирование и управление жизненным циклом виртуальных машин. Поддерживает различные гипервизоры: KVM, Xen, VMware ESXi, Hyper-V |
| Neutron (Networking) | Управление сетевой инфраструктурой: создание виртуальных сетей, подсетей, маршрутизаторов, балансировщиков нагрузки, VPN, firewalls. Поддержка VLAN, VXLAN, GRE туннелей |
| Cinder (Block Storage) | Управление блочным хранилищем: создание и подключение постоянных дисков к ВМ. Поддержка различ ных backend: Ceph, LVM, NFS, iSCSI, специализированные СХД |
| Swift (Object Storage) | Распределенное объектное хранилище для неструктурированных данных: резервные копии, архивы, медиа-файлы. Обеспечивает репликацию и высокую доступность |
| Glance (Image Service) | Управление образами виртуальных машин: хранение, регистрация и получение образов дисков. Поддержка различных форматов: RAW, QCOW2, VDI, VMDK, AMI |
| Keystone (Identity) | Служба аутентификации и авторизации: управление пользователями, проектами, ролями, endpoint сервисов. Поддержка LDAP, Active Directory, SAML |
| Horizon (Dashboard) | Веб-интерфейс для управления OpenStack: создание ВМ, сетей, хранилищ, управление пользователями через браузер. Альтернатива работе с CLI и API |
| Heat (Orchestration) | Оркестрация инфраструктуры: автоматическое развертывание стеков ресурсов через шаблоны (Infrastructure as Code). Аналог AWS CloudFormation |
Установка и настройка OpenStack
Характеристика | Значение |
|---|---|
| Минимальные требования (DevStack тест) | 4 CPU cores (8+ рекомендуется), 8 GB RAM (16+ рекомендуется), 60 GB свободного места на диске, 1 сетевой интерфейс |
| Production требования (3-узловой кластер) | Controller: 8 CPU, 32 GB RAM, 500 GB SSD, Compute узлы: 16+ CPU, 64+ GB RAM, 1 TB, Storage узлы: 8 CPU, 32 GB RAM, 10+ TB HDD/SSD, 10 Gbit/s сеть |
| Операционная система | Ubuntu 22.04 LTS (рекомендуется), CentOS Stream 9 / RHEL 9, Debian 11+, Rocky Linux 9 |
| Гипервизор | KVM (рекомендуется, лучшая производительность), Xen, VMware ESXi (требует коммерческий драйвер), Hyper-V |
# Обновление системы
sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip
# Создание пользователя для DevStack
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
# Клонирование DevStack
cd ~
git clone https://opendev.org/openstack/devstack.git
cd devstack
# Создание конфигурации
cat > local.conf << EOF
[[local|localrc]]
# Пароли для всех сервисов
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
# IP адрес хоста (замените на ваш)
HOST_IP=192.168.1.100
# Компоненты для установки
enable_service n-cpu
enable_service placement-client
enable_service neutron
enable_service q-svc q-agt q-dhcp q-l3 q-meta
# Использовать Neutron вместо Nova-network
disable_service n-net
EOF
# Запуск установки (занимает 20-40 минут)
./stack.sh
# После установки будут выведены URL и credentials
# Horizon URL: http://192.168.1.100/dashboard
# Username: admin or demo
# Password: secret# Установка зависимостей
sudo apt update
sudo apt install -y python3-dev libffi-dev gcc libssl-dev python3-pip git
# Установка Ansible и Kolla-Ansible
sudo pip3 install -U pip
sudo pip3 install ansible
sudo pip3 install kolla-ansible
# Копирование конфигурационных файлов
sudo mkdir -p /etc/kolla
sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
sudo cp /usr/local/share/kolla-ansible/ansible/inventory/multinode .
# Редактирование inventory файла
# Указать IP адреса узлов кластера
vim multinode
# Генерация паролей
kolla-genpwd
# Редактирование globals.yml
vim /etc/kolla/globals.yml
# Установить:
# kolla_base_distro: "ubuntu"
# kolla_install_type: "source"
# network_interface: "eth0"
# neutron_external_interface: "eth1"
# kolla_internal_vip_address: "10.0.0.100"
# enable_cinder: "yes"
# enable_heat: "yes"
# Проверка подключения к узлам
ansible -i multinode all -m ping
# Bootstrap серверов
kolla-ansible -i multinode bootstrap-servers
# Проверка предварительных требований
kolla-ansible -i multinode prechecks
# Развертывание OpenStack (занимает 30-60 минут)
kolla-ansible -i multinode deploy
# Генерация admin credentials
kolla-ansible -i multinode post-deploy
source /etc/kolla/admin-openrc.sh
# Проверка установки
openstack service listВажно: DevStack только для тестирования
Работа с OpenStack: создание виртуальных машин и управление ресурсами
# Установка OpenStack CLI
pip3 install python-openstackclient
# Загрузка credentials (получен при установке)
source /etc/kolla/admin-openrc.sh
# или для DevStack:
source ~/devstack/openrc admin admin
# Просмотр доступных образов
openstack image list
# Просмотр доступных flavors (размеров ВМ)
openstack flavor list
# Просмотр сетей
openstack network list
# Создание security group с правилами
openstack security group create web-server
openstack security group rule create --proto tcp --dst-port 22 web-server
openstack security group rule create --proto tcp --dst-port 80 web-server
openstack security group rule create --proto tcp --dst-port 443 web-server
# Создание SSH ключа
ssh-keygen -t rsa -b 2048 -f ~/.ssh/openstack-key -N ""
openstack keypair create --public-key ~/.ssh/openstack-key.pub my-keypair
# Создание виртуальной машины
openstack server create \
--flavor m1.medium \
--image ubuntu-22.04 \
--network private-network \
--security-group web-server \
--key-name my-keypair \
web-server-01
# Проверка статуса создания
openstack server list
openstack server show web-server-01
# Назначение Floating IP
FLOATING_IP=$(openstack floating ip create public -f value -c floating_ip_address)
openstack server add floating ip web-server-01 $FLOATING_IP
echo "ВМ создана. SSH доступ: ssh ubuntu@$FLOATING_IP -i ~/.ssh/openstack-key"# Создание volume (блочного диска)
openstack volume create --size 100 --description "Data disk" data-volume-01
# Просмотр volumes
openstack volume list
# Подключение volume к ВМ
openstack server add volume web-server-01 data-volume-01
# Внутри ВМ: форматирование и монтирование
# ssh ubuntu@FLOATING_IP
# sudo mkfs.ext4 /dev/vdb
# sudo mkdir /data
# sudo mount /dev/vdb /data
# echo '/dev/vdb /data ext4 defaults 0 0' | sudo tee -a /etc/fstab
# Создание snapshot volume для бэкапа
openstack volume snapshot create --volume data-volume-01 data-snapshot-01
# Создание нового volume из snapshot
openstack volume create --snapshot data-snapshot-01 --size 100 data-volume-restored
# Отключение volume от ВМ
openstack server remove volume web-server-01 data-volume-01Автоматизация через Heat и Terraform
OpenStack vs VMware: сравнение платформ виртуализации
Сценарии выбора платформы
1. Выбирайте VMware vSphere
2. Выбирайте OpenStack
3. Гибридный подход
Преимущества и недостатки OpenStack
Преимущества и недостатки OpenStack
Преимущества
- ✅Открытый исходный код - полная прозрачность кода, возможность аудита безопасности, отсутствие лицензионных отчислений
- ✅Отсутствие vendor lock-in - свобода выбора оборудования, гипервизоров, storage backend, возможность миграции без привязки к вендору
- ✅Гибкость и кастомизация - возможность адаптировать платформу под специфические требования, интеграция с любыми системами через API
- ✅Масштабируемость - поддержка сотен compute-узлов и тысяч виртуальных машин, горизонтальное масштабирование компонентов
- ✅Активное сообщество - тысячи разработчиков и компаний вносят вклад, регулярные обновления и новые функции каждые 6 месяцев
- ✅API-first дизайн - все функции доступны через REST API, отличная интеграция с automation tools (Terraform, Ansible)
- ✅Поддержка multi-hypervisor - KVM, Xen, VMware ESXi, Hyper-V на выбор в зависимости от требований
- ✅Совместимость с AWS API - некоторые компоненты OpenStack совместимы с AWS API, упрощая миграцию workloads
- ✅Коммерческая поддержка доступна - Red Hat OpenStack Platform, Canonical OpenStack, Mirantis Cloud Platform для enterprise
- ✅Cloud-native архитектура - отлично подходит для микросервисов, контейнеров, современных приложений
Недостатки
- ❌Высокая сложность установки и настройки - требует глубоких знаний Linux, networking, storage, databases
- ❌Крутая кривая обучения - новым администраторам нужно несколько месяцев для освоения всех компонентов OpenStack
- ❌Большие требования к ресурсам - минимум 3 узла для production (controller, compute, storage), высокое потребление RAM/CPU на инфраструктуру
- ❌Требуется выделенная команда - нужны специалисты для разве ртывания, мониторинга, troubleshooting, обновлений
- ❌Нестабильность некоторых компонентов - community-версии могут содержать баги, требуется тщательное тестирование перед production
- ❌Фрагментация версий - разные дистрибутивы OpenStack (Red Hat, Canonical, Mirantis) имеют различия в конфигурации
- ❌Ограниченная интеграция с legacy системами - лучше работает с новыми cloud-native приложениями чем со старыми monolithic
- ❌Меньше enterprise-ready features из коробки - нет эквивалента vMotion, DRS, vSAN без дополнительной настройки
- ❌Документация может быть неполной - community документация иногда отстает от кода, особенно для новых функций
- ❌Трудности с обновлениями - мажорные обновления OpenStack требуют careful planning и могут вызвать проблемы
Заключение
FAQ
1Что такое OpenStack простыми словами?
OpenStack - это операционная система для облака. Это набор программных инструментов с открытым исходным кодом, которые позволяют создавать и управлять облачной инфраструктурой - виртуальными машинами, сетями, хранилищем. OpenStack позволяет организациям создавать частные облака (как AWS, но внутри компании) без привязки к конкретному вендору и без лицензионных отчислений.
2Сколько стоит OpenStack и есть ли скрытые расходы?
OpenStack сам по себе бесплатен (open source), но есть косвенные расходы: оборудование для серверов (от $20K для минимального кластера), зарплаты квалифицированных специалистов ($80K-$150K в год), опционально коммерческая поддержка ($10K-$100K в год в зависимости от масштаба). Суммарная стоимость владения за 3 года может быть ниже чем VMware для крупных развертываний благодаря отсутствию лицензий.
3OpenStack vs VMware - какую платформу выбрать?
VMware vSphere выбирайте если: нужна быстрая установка, команда знакома с VMware, бюджет позволяет купить лицензии, требуется максимальная стабильность для enterprise приложений. OpenStack выбирайте если: есть команда с опытом Linux/DevOps, нужна гибкость и отсутствие vendor lock-in, планируется масштабирование на сотни узлов, строится cloud-native инфраструктура. Для многих организаций оптимален гибридный подход.
4Насколько сложно установить и настроить OpenStack?
Установка OpenStack требует среднего-высокого уровня экспертизы. Для тестирования можно использовать DevStack (установка за 30-60 минут одним скриптом). Для production используйте Kolla-Ansible или коммерческие дистрибутивы - установка занимает 1-2 недели с правильной командой. Требуются зн ания: Linux администрирование, networking (VLAN, routing, firewalls), storage (Ceph, LVM, iSCSI), automation (Ansible, Terraform).
5Какие компании используют OpenStack в production?
OpenStack используют тысячи организаций: AT&T (крупнейшее развертывание, миллионы CPU cores), Bloomberg, Walmart, PayPal, eBay, China Mobile, Deutsche Telekom, CERN, NASA. Многие облачные провайдеры строят публичные облака на OpenStack. В России OpenStack используют МТС, МегаФон, Яндекс, Mail.ru и многие государственные организации.
6Можно ли запускать Windows виртуальные машины на OpenStack?
Да, OpenStack полностью поддерживает Windows виртуальные машины. Используйте KVM с virtio драйверами для оптимальной производительности. Загрузите Windows Cloud образ или создайте свой через Packer. Для production Windows workloads рекомендуется использовать Hyper-V как гипервизор или VMware ESXi (с коммерческим драйвером для Nova). Производительность Windows ВМ на OpenStack сопоставима с VMware при правильной настройке.
7Какие требования к оборудованию для OpenStack?
Минимум для production: 3 узла (1 controller: 8 CPU, 32 GB RAM, 500 GB SSD; 2 compute: по 16 CPU, 64 GB RAM, 1 TB; 3 storage узла для Ceph: по 8 CPU, 32 GB RAM, 10+ TB HDD). Сеть: 10 Gbit/s для производительности. Для тестирования достаточно 1 сервера: 8 CPU, 16 GB RAM, 100 GB диск. OpenStack работает на обычном x86-64 оборудовании любых производителей.
8Как OpenStack обеспечивает отказоустойчивость и высокую доступность?
OpenStack обеспечивает HA через несколько механизмов: кластеризация control plane (3+ controller узлов с Pacemaker/Corosync), репликация баз данных (Galera cluster для MySQL), message queue clustering (RabbitMQ cluster), load balancing для API endpoints (HAProxy). Для compute узлов используется evacuation при отказе хоста. Для storage - Ceph с репликацией данных (3 копии). Полная HA конфигурация требует минимум 6-9 узлов.
9Можно ли мигрировать с VMware на OpenStack?
Да, миграция возможна но требует планирования. Два подхода: 1) Конвертация ВМ через VMware vCenter Converter или qemu-img (конвертация VMDK в QCOW2), импорт в Glance, настройка сети и security groups. 2) Постепенная миграция: новые workloads развертываются на OpenStack, старые остаются на VMware, со временем полный переход. Миграция legacy приложений сложнее чем cloud-native. Планируйте 6-12 месяцев для крупной миграции.
10Какая поддержка доступна для OpenStack?
Несколько вариантов поддержки: 1) Community поддержка - бесплатно через форумы, IRC, mailing lists, очень активное сообщество. 2) Коммерческая поддержка: Red Hat OpenStack Platform (enterprise SLA, 24/7 support), Canonical OpenStack (Ubuntu-based, поддержка включена в Ubuntu Advantage), Mirantis Cloud Platform, SUSE OpenStack Cloud. Стоимость от $10K до $100K+ в год в зависимости от масштаба и SLA.
