Знакомство с OpenStack : архитектура, функции, взаимодействия

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

Джон Ротон, специалист по стратегиям в области облачных вычислений, независимый специалист

Author photoДжон Ротон (John Rhoton) — разработчик технологических стратегий, специализируется на консультировании глобальных корпоративных клиентов по вопросам публичных, частных и гибридных облачных решений. Он регулярно выступает на отраслевых мероприятиях по передовым технологиям, таким как мобильность, социальные сети и виртуализация. Д. Ротон является автором семи книг, включая Cloud Computing Explained (2009) и Cloud Computing Architected (2011).



16.05.2014

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

Первоначально проект OpenStack представлял собой совместную инициативу компании Rackspace Cloud и агентства NASA (National Aeronautics and Space Administration). В настоящее время это самый популярный в мире управляемый консорциумом стек программного обеспечения для решений типа "Инфраструктура как сервис" (см. раздел Ресурсы). С самого начала своего существования этот проект пользовался широкой поддержкой отрасли, а на сегодняшний день его поддерживают более 100 организаций, среди которых многие крупнейшие компании отрасли. В настоящее время основными спонсорами проекта являются следующие компании: IBM, AT&T, Canonical, HP, Nebula, Rackspace, Red Hat, SUSE.

Участие IBM

Многие читатели этих статей проявляют пристальный интерес к корпорации IBM, поэтому имеет смысл остановиться на значимости проекта OpenStack для IBM. IBM представила свою открытую облачную архитектуру в марте 2013 года и заявила, что все ее облачные предложения, начиная с продукта с IBM SmartCloud® Orchestrator, будут базироваться на OpenStack. До этого объявления IBM осуществляла активные инвестиции в интеграцию своих продуктов с платформой OpenStack, а также оказала существенное содействие сообществу OpenStack при приведении программного обеспечения OpenStack в соответствие с требованиями предприятий и поставщиков облачных услуг.

Бета-версия продукта SmartCloud Orchestrator

SmartCloud Orchestrator

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

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

Например, открытая облачная архитектура IBM опирается на стандарт TOSCA (Topology and Orchestration Specification for Cloud Applications) от организации OASIS. TOSCA – это открытый стандарт, развиваемый IBM, SAP, HP, Rackspace и многими другими участниками. Чтобы обеспечить максимальное влияние этого стандарта, многие из вышеперечисленных компаний совместно занимаются реализацией поддержки описаний шаблонов OASIS TOSCA в проекте OpenStack Heat.

Еще одна область участия IBM — "платиновая" спонсорская поддержка коллективного проекта организации Linux® Foundation под названием OpenDaylight, посвященного созданию открытого и прозрачного подхода к построению т. н. "программно определяемых сетей " (Software-Defined Networking, SDN). На сегодняшний день это крупнейший SDN-проект с открытым исходным кодом, пользующийся обширной поддержкой отрасли. Конечная цель этого проекта состоит в создании открытой SDN-платформы на основе отраслевых стандартов. Например, OpenFlow-контроллер, созданный участниками проекта OpenDaylight, планируется использовать в качестве плагина для модуля OpenStack Networking.

Облачные продукты IBM предлагают PaaS-платформу (Platform as a Service – платформа как сервис) с открытым исходным кодом, поверх которой разработчики смогут создавать облачные приложения на основе различных хостинговых сервисов, включая PostgreSQL, MySQL, Redis, Blob Storage, Elastic Caching, Sample Location Services, SMS Service, Simple Social Service, RabbitMQ и MongoDB.


История релизов

Простейший способ понять проект OpenStack — рассмотреть историю его развития.

Инициатива OpenStack была начата в 2010 году, когда компания Rackspace Cloud и организация NASA интегрировали код платформы Nebula от NASA с кодом платформы Cloud Files от Rackspace. Первые базовые модули носили названия Compute и Object Storage, однако чаще они упоминаются по названиям соответствующих проектов — Nova и Swift соответственно.

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

Для обозначения релизов OpenStack используется нотация YYYY.N, основанная на годе выхода релиза и на номере основной версии релиза в этом году. Например, первый крупный релиз 2011 года (Bexar) имел номер 2011.1, а следующий крупный релиз 2011 года (Cactus) получил номер 2011.2. Менее значительные релизы имеют расширенную точечную нотацию (например, 2011.3.1).

Разработчики часто называют релизы их кодовыми именами, которые присваиваются релизам в алфавитном порядке (см. табл. 1). Первый крупный релиз имел кодовое имя Austin, за ним последовали Bexar, Cactus и Diablo. Эти кодовые имена выбираются голосованием на совещаниях проектировщиков OpenStack; обычно имя соответствует какому-либо географическому объекту в районе проведения очередного совещания.

Таблица 1. Релизы OpenStack
Название релизаНомер релизаДата
Austin2010.12010-10-21
Bexar2011.12011-02-03
Cactus2011.22011-04-15
Diablo2011.32011-09-22
2011.3.12012-01-19
Essex2012.12012-04-05
2012.1.12012-06-22
2012.1.22012-08-10
2012.1.32012-10-12
Folsom2012.22012-09-27
2012.2.12012-11-29
2012.2.22012-12-13
2012.2.32013-01-31
2012.2.42013-04-11
Grizzly2013.12013-04-04
2013.1.12013-05-09
2013.1.22013-06-06
2013.1.32013-08-08
Havana2013-10-17

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

Как указывалось выше, в состав релиза Austin входили лишь два базовых проекта: OpenStack Compute (Nova) и OpenStack Object Storage (Swift). В релизе Bexar дополнительно появился проект Image Service (Glance), который во многих отношениях является "пересечением" между проектами Compute и Storage. Образы, созданные в рамках этого проекта, представляют собой шаблоны виртуальных машин, которые хранятся в OpenStack и могут быть быстро запущена по требованию экземпляров Compute.

В релизе Essex были добавлены еще два базовых проекта: проект OpenStack Identity (Keystone), сконцентрировавший в себе элементы управления пользователями, которым до этого занимался проект Nova, и проект OpenStack Dashboard (Horizon), призванный стандартизировать и упростить пользовательский интерфейс как для индивидуальных арендаторов, так и для администраторов OpenStack.

В релизе Folsom количество проектов увеличилось еще на два. Разработчики решили выделить сетевые компоненты (которые до этого также входили в проект Nova) в отдельный проект, первоначально названный Quantum, а позднее переименованный в Neutron. Одновременно с этим отдельная группа разработала компонент OpenStack Block Storage, который был выпущен под кодовым именем Cinder.


Модули

Релиз Grizzly платформы OpenStack состоит из семи базовых проектов:

  • Compute (Nova)
  • Networking (Neutron/Quantum)
  • Identity Management (Keystone)
  • Object Storage (Swift)
  • Block Storage (Cinder)
  • Image Service (Glance)
  • User Interface Dashboard (Horizon)

OpenStack Compute (Nova)

Модуль OpenStack Compute (Nova) управляет "фабрикой" облачных вычислений (это базовый компонент инфраструктурных сервисов). Модуль OpenStack Compute, написанный на языке Python, образует уровень абстрагирования для виртуализации ресурсов массовых серверов (таких как процессоры, память, сетевые адаптеры и жесткие диски) и поддерживает соответствующие функции для повышения коэффициента использования и для автоматизации.

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

OpenStack Networking (Neutron/Quantum)

Модуль Networking (Neutron), прежде носивший имя Quantum, обеспечивает управление локальными сетями с поддержкой виртуальных сетей (VLAN), протокола DHCP и протокола IP v6. Пользователи могут определять сети, подсети и маршрутизаторы с целью конфигурирования их внутренней топологии, а затем назначать этим сетям IP-адреса и виртуальные сети. Механизм плавающих IP-адресов позволяет пользователям назначать (и переназначать) виртуальным машинам фиксированные внешние IP-адреса.

OpenStack Identity Management (Keystone)

Модуль OpenStack Identity Management (Keystone) управляет каталогом пользователей, а также каталогом сервисов OpenStack, к которым эти пользователи могут обращаться. Его цель состоит в поддержании механизма централизованной аутентификации для всех компонентов OpenStack. Вместо непосредственной поддержки аутентификации модуль Keystone способен интегрироваться с различными другими сервисами каталогов, включая Pluggable Authentication Module, Lightweight Directory Access Protocol (LDAP), OAuth. С помощью соответствующих плагинов обеспечивается поддержка нескольких форм аутентификации — от простых средств входа с использованием логина/пароля до сложных многофакторных систем.

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

OpenStack Object Storage (Swift)

Модуль OpenStack Object Storage (Swift) основан на продукте Rackspace Cloud Files и представляет собой резервированную систему хранения, которая идеально подходит для горизонтального масштабирования ресурсов хранения. OpenStack гарантирует репликацию данных и их распределение между устройствами в своем пуле, благодаря чему пользователи могут использовать массовые жесткие диски и серверы вместо более дорогого оборудования. В случае отказа какого-либо компонента система OpenStack способна восполнить контент из других активных систем и перенести его на новые элементы кластера. Эта архитектура поддерживает горизонтальное масштабирование благодаря легкости расширения кластеров хранения дополнительными серверами по мере необходимости.

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

OpenStack Block Storage (Cinder)

Модуль OpenStack Block Storage (Cinder) управляет хранилищем блочного уровня, которое используют экземпляры Compute. Блочное хранилище хорошо подходит для сценариев со строгими требованиями к производительности (базы данных и файловые системы).

Совместно с модулем Cinder чаще всего используется хранилище на основе Linux-сервера, однако имеются плагины и для других платформ, включая Ceph, NetApp, Nexenta и SolidFire. Пользователи облачных ресурсов могут управлять своими ресурсами хранения с помощью инструментальной панели. Система предоставляет интерфейсы для создания блочных устройств, для присоединения их к серверам и для отсоединения их от серверов. Кроме того, поддерживается возможность создания резервных копий томов Cinder посредством механизма моментальных снимков.

OpenStack Image Service (Glance)

Модуль OpenStack Image Service (Glance) обеспечивает поддержку образов виртуальных машин, в частности, системных дисков, предназначенных для использования при запуске экземпляров виртуальных машин. Помимо сервисов обнаружения, регистрации и активации данный модуль поддерживает возможности создания моментальных снимков и резервных копий.

Glance-образы могут служить шаблонами для быстрого и согласованного развертывания новых серверов. В качестве серверного API применяется RESTful-интерфейс (Representational State Transfer), с помощью которого пользователи могут просматривать и выбирать на виртуальном диске образы, приписанные к расширяемому набору внутренних хранилищ (включая OpenStack Object Storage).

Пользователи могут предоставлять этому сервису частные и публичные образы в различных форматах, в том числе в следующих: VHD (Microsoft(® Hyper-V®), VDI (VirtualBox), VMDK (VMware), qcow2 (Qemu/Kernel-based Virtual Machine), Open Virtualization Format. Имеются функции для регистрации новых образов виртуальных дисков, для запроса информации о публично доступных образах дисков и для потоковой доставки образов виртуальных дисков.


Взаимозависимости

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

Рисунок 1. Архитектура OpenStack
Image showing the OpenStack architecture

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

Nova — это, вне всякого сомнения, центральный элемент OpenStack. Nova осуществляет оркестровку рабочих нагрузок. Compute-экземплярам обычно требуется та или иная разновидность персистентного хранилища, которое может быть либо блочным (Cinder), либо объектным (Swift). Кроме того, Nova требуется образ для запуска экземпляра. Glance обрабатывает этот запрос и в качестве опции может использовать Swift в качестве внутреннего хранилища.

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


Перспективный план

Следует помнить, что работа над OpenStack по-прежнему продолжается. Эта система может быть реализована уже в своей нынешней форме, однако со временем ее возможности будут существенно расширены. Например, в релиз Havana было включено два новых проекта, появления которых давно ждали многие специалисты: OpenStack Metering (Ceilometer) и OpenStack Orchestration (Heat).

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

Heat БЮ это основанный на шаблонах механизм оркестровки OpenStack. Он позволяет разработчикам создавать шаблоны развертывания приложений, которые осуществляют оркестровку составных облачных приложений посредством интерфейса RESTful API. Эти шаблоны могут включать в себя большинство типов ресурсов OpenStack (например, экземпляры Nova, диапазоны плавающих IP-адресов, тома Cinder, пользователи Keystone). Кроме того, имеются возможности для расширения функциональности, включая высокую готовность, автоматическое масштабирование и вложенные стеки.

Ресурсы

Научиться

Получить продукты и технологии

  • Опробуйте OpenStack лично.
  • Загрузите PostreSQL для своей среды.
  • Загрузите MySQL для своей среды.
  • Загрузите Redis.
  • Загрузите RabbitMQ.
  • Загрузите MongoDB.
  • Оцените продукты IBM наиболее удобным для вас способом. Загрузите ознакомительные версии программных продуктов или воспользуйтесь их онлайновыми пробными версиями.

Обсудить

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

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



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

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Open source
ArticleID=971528
ArticleTitle=Знакомство с OpenStack : архитектура, функции, взаимодействия
publish-date=05162014