Лев Корольков
Руководитель IT-департамента EFSOL Oblako
Время чтения: 12 мин

OpenStack

Платформа облачной инфраструктуры

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

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

При этом OpenStack устанавливается на инфраструктуре самой организации или провайдера. Компания получает высокий уровень контроля над оборудованием, архитектурой и размещением данных.

Что такое OpenStack простыми словами

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

OpenStack объединяет эти ресурсы в общую систему. Пользователь отправляет запрос на создание виртуального сервера, а платформа самостоятельно определяет подходящий физический хост, создает виртуальную машину, подключает к ней сеть и назначает необходимые ресурсы.

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

В результате ИТ-инфраструктура становится похожей на внутренний облачный сервис. Разработчик или подразделение компании может получить виртуальный сервер за несколько минут без покупки нового физического оборудования.

Для чего используется OpenStack

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

  • создание частного облака компании;
  • построение публичного облака провайдера;
  • управление виртуальными машинами;
  • автоматическое распределение вычислительных ресурсов;
  • создание виртуальных сетей;
  • предоставление блочных и объектных хранилищ;
  • развертывание тестовых сред;
  • создание инфраструктуры для разработчиков;
  • организация нескольких независимых проектов внутри одного облака;
  • автоматизация масштабирования ИТ-инфраструктуры.

Из каких компонентов состоит OpenStack

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

КомпонентНазначение
NovaУправление вычислительными ресурсами и виртуальными машинами
NeutronСоздание и управление виртуальными сетями
CinderПредоставление блочных дисков виртуальным машинам
SwiftОбъектное хранение данных
GlanceХранение и управление образами виртуальных машин
KeystoneАутентификация, пользователи, проекты и права доступа
HorizonВеб-интерфейс для управления облаком

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

Nova

Nova отвечает за вычислительную часть облака. Именно этот сервис участвует в создании, запуске, остановке и удалении виртуальных машин.

Когда пользователь запрашивает новый виртуальный сервер, Nova определяет, на каком физическом вычислительном узле его можно разместить. При этом учитываются доступные процессорные ресурсы, оперативная память и другие параметры.

Nova не является гипервизором сама по себе. Она управляет вычислительными узлами и взаимодействует с системами виртуализации, например KVM.

Neutron

Neutron отвечает за сетевую инфраструктуру OpenStack. Он позволяет создавать виртуальные сети, подсети, маршрутизаторы и сетевые подключения для виртуальных машин.

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

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

Cinder

Cinder предоставляет блочные хранилища. Для виртуальной машины такой ресурс выглядит как дополнительный диск.

Например, операционная система может находиться на основном виртуальном диске, а база данных — на отдельном томе Cinder. При необходимости этот диск можно подключать, отключать или переносить между виртуальными машинами в пределах поддерживаемых сценариев.

За Cinder могут стоять различные физические системы хранения. OpenStack предоставляет единый интерфейс, а конкретное оборудование и программные решения могут отличаться.

Swift

Swift предназначен для объектного хранения. В отличие от обычной файловой системы данные сохраняются как объекты и доступны через программные интерфейсы.

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

Использование Swift необязательно для любого облака OpenStack. Организация может применять и другие совместимые системы хранения.

Glance

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

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

Keystone

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

Ресурсы OpenStack могут разделяться по проектам. Например, отдел разработки, бухгалтерия и тестовая команда получают отдельные проекты и не видят виртуальные машины друг друга, если политики доступа не предусматривают иное.

Horizon

Horizon — веб-интерфейс OpenStack. Через него пользователь может управлять виртуальными машинами, сетями, образами и другими ресурсами через браузер.

При этом OpenStack активно используется и через API. Это особенно важно для автоматизации, когда виртуальные серверы создаются программно без действий администратора в графической панели.

Как создается виртуальная машина в OpenStack

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

После отправки запроса несколько компонентов OpenStack начинают взаимодействовать друг с другом.

  1. Keystone проверяет пользователя и его права.
  2. Nova получает запрос на создание виртуальной машины.
  3. Планировщик выбирает подходящий вычислительный узел.
  4. Glance предоставляет образ операционной системы.
  5. Neutron создает или подключает сетевой интерфейс.
  6. Cinder при необходимости предоставляет дополнительный диск.
  7. Гипервизор запускает виртуальную машину на выбранном физическом сервере.

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

OpenStack и виртуализация

OpenStack часто ошибочно называют гипервизором. На самом деле это облачная платформа, которая управляет виртуализированной инфраструктурой.

Гипервизор отвечает непосредственно за запуск виртуальных машин на физическом сервере. OpenStack находится уровнем выше и управляет большим количеством гипервизоров, серверов, сетей и хранилищ.

УровеньПример задачи
Физическое оборудованиеПроцессоры, память, накопители и сетевые карты
ГипервизорЗапуск виртуальных машин на конкретном сервере
OpenStackУправление облаком из множества серверов и ресурсов
ПользовательСоздание виртуального сервера через панель или API

OpenStack и KVM

KVM часто используется в качестве технологии виртуализации в инфраструктуре OpenStack. KVM запускает виртуальные машины на физических вычислительных узлах, а OpenStack управляет их созданием и распределением.

Таким образом, KVM и OpenStack не являются прямыми конкурентами. Они могут работать вместе и решают задачи на разных уровнях инфраструктуры.

OpenStack и Proxmox

OpenStack и Proxmox используются для управления виртуальной инфраструктурой, но ориентированы на несколько разные сценарии.

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

ПараметрOpenStackProxmox
Основной сценарийЧастные и публичные облакаСерверная и кластерная виртуализация
АрхитектураНабор распределенных сервисовИнтегрированная платформа управления
СамообслуживаниеОдна из основных возможностейВозможно, но не является центральной моделью
МасштабОриентирован на крупные инфраструктурыПодходит в том числе для небольших кластеров
Сложность внедренияОбычно вышеОбычно ниже

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

OpenStack и VMware

Решения VMware и OpenStack могут использоваться для построения виртуальной и облачной инфраструктуры. Однако OpenStack представляет собой открытую облачную платформу, которая может взаимодействовать с различными инфраструктурными компонентами.

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

OpenStack и публичное облако

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

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

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

Что такое частное облако OpenStack

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

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

При этом компания сохраняет контроль над физической архитектурой и может самостоятельно определять правила размещения данных, сетевую структуру и политики доступа.

Преимущества OpenStack

Контроль над инфраструктурой

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

Автоматизация

Большинство операций можно выполнять через API. Это позволяет автоматически создавать виртуальные машины, сети и диски в рамках процессов разработки и эксплуатации.

Самообслуживание пользователей

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

Масштабирование инфраструктуры

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

Открытая архитектура

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

Недостатки OpenStack

Главный недостаток — сложность. OpenStack представляет собой распределенную систему из множества компонентов, и ее эксплуатация требует квалифицированной команды.

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

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

Что такое контроллер OpenStack

В типовой архитектуре часть сервисов размещается на управляющих, или controller, узлах. Они отвечают за управление облаком, API, аутентификацию, базы данных и координацию компонентов.

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

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

Что такое Compute Node

Compute Node — физический вычислительный сервер, на котором запускаются виртуальные машины пользователей.

Он содержит процессоры, оперативную память и другие ресурсы, которые OpenStack распределяет между виртуальными экземплярами.

При увеличении потребности в вычислительной мощности компания может добавлять новые compute-узлы и тем самым расширять доступный пул ресурсов.

Что такое Instance в OpenStack

Instance — запущенный экземпляр виртуальной машины. Пользователь создает его на основе выбранного образа и конфигурации ресурсов.

Например, можно создать instance с двумя виртуальными процессорами, 8 ГБ оперативной памяти и диском определенного размера.

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

Что такое Flavor

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

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

Проекты и разделение ресурсов

OpenStack позволяет объединять ресурсы пользователей в проекты. Это удобно для разделения инфраструктуры между подразделениями, заказчиками или командами разработки.

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

Такой механизм помогает избежать ситуации, когда одна команда случайно использует весь доступный пул облака.

OpenStack и автоматизация разработки

API OpenStack позволяет интегрировать облако с системами автоматизации и процессами разработки.

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

Такой подход сокращает количество ручных операций и делает инфраструктуру более гибкой.

OpenStack для бизнеса

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

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

После внедрения облачной платформы подразделения могут самостоятельно создавать ресурсы в пределах выделенных квот. ИТ-команда управляет общим пулом инфраструктуры, политиками и доступностью.

OpenStack для 1С

Виртуальные машины OpenStack могут использоваться для серверов 1С, СУБД, терминальных серверов и вспомогательных сервисов.

Например, облачный провайдер может создать на базе OpenStack виртуальную инфраструктуру и предоставлять клиентам серверы для размещения 1С.

Однако производительность 1С зависит не от самого названия облачной платформы, а от характеристик физических процессоров, дисковой подсистемы, сети, коэффициента консолидации виртуальных машин и настроек СУБД.

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

Отказоустойчивость OpenStack

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

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

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

Резервное копирование

Наличие облачной платформы не отменяет резервное копирование. Виртуальная машина может быть удалена пользователем, база данных — повреждена приложением, а учетная запись — скомпрометирована.

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

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

Безопасность OpenStack

OpenStack позволяет разделять проекты, сети и права пользователей, но безопасность облака зависит от правильной настройки всей инфраструктуры.

Необходимо защищать административные интерфейсы, ограничивать доступ к API, обновлять компоненты, контролировать учетные записи и сегментировать сети.

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

Когда OpenStack подходит компании

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

  • компания управляет большим количеством физических серверов;
  • пользователям нужно самостоятельно создавать виртуальные ресурсы;
  • требуется API для автоматизации инфраструктуры;
  • необходимо разделить ресурсы между проектами или клиентами;
  • планируется частное облако;
  • организации нужен высокий контроль над физической инфраструктурой;
  • есть команда специалистов по Linux, сетям, хранилищам и виртуализации.

Когда OpenStack может быть избыточным

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

Для небольшой инфраструктуры проще использовать Proxmox, Hyper-V, готовое публичное облако или арендованные VPS.

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

Типичные ошибки при внедрении OpenStack

  1. Выбирать OpenStack для слишком маленькой инфраструктуры.
  2. Начинать внедрение без анализа требований пользователей.
  3. Недооценивать сложность сетевой архитектуры.
  4. Не планировать резервирование управляющих компонентов.
  5. Не учитывать производительность систем хранения.
  6. Не создавать отдельную систему резервного копирования.
  7. Не внедрять централизованный мониторинг.
  8. Не контролировать квоты пользователей и проектов.
  9. Не документировать архитектуру и зависимости сервисов.
  10. Рассчитывать, что открытое программное обеспечение означает отсутствие расходов на эксплуатацию.

Практический пример

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

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

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

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

Администраторы при этом контролируют общую инфраструктуру, а не выполняют каждую операцию вручную.

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

ТерминСвязь с OpenStack
Облачные вычисленияМодель предоставления ресурсов, которую реализует OpenStack
IaaSМодель предоставления вычислительной инфраструктуры
ВиртуализацияТехнологическая основа для запуска виртуальных серверов
KVMОдин из гипервизоров, используемых с OpenStack
NovaСервис управления вычислительными ресурсами
NeutronСервис виртуальных сетей
CinderСервис блочных хранилищ
SwiftСистема объектного хранения
GlanceСервис управления образами
KeystoneСервис идентификации и управления доступом
ProxmoxАльтернативная платформа управления виртуальной инфраструктурой
Дата-центрФизическая площадка, на которой может работать облако OpenStack

Краткий итог

OpenStack — открытая платформа для создания частных и публичных облаков. Она объединяет вычислительные серверы, сети и системы хранения в общую инфраструктуру и позволяет предоставлять виртуальные ресурсы пользователям по запросу.

OpenStack состоит из набора специализированных сервисов. Nova управляет вычислительными ресурсами, Neutron — сетями, Cinder — блочными дисками, Glance — образами, Keystone — доступом, а Horizon предоставляет веб-интерфейс.

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

Частые вопросы

6 вопросов
Что такое OpenStack?

OpenStack — открытая облачная платформа для управления вычислительными ресурсами, виртуальными машинами, сетями и хранилищами. На ее основе можно создавать частные и публичные облака.

OpenStack — это гипервизор?

Нет. OpenStack является облачной платформой управления. Для непосредственного запуска виртуальных машин он взаимодействует с гипервизорами, например KVM.

Чем OpenStack отличается от Proxmox?

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

Для чего нужен OpenStack бизнесу?

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

Можно ли запускать Windows в OpenStack?

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

Подходит ли OpenStack для небольшой компании?

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

Была ли статья полезна?
Документ обновляется командой EFSOL. Свяжитесь с нами, если нашли неточность.
Нужна консультация?

Поможем спроектировать, развернуть и сопроводить облачную или гибридную инфраструктуру под задачи вашего бизнеса.

Ответим в течение часа в рабочее время
Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.