Облачные вычисления и хранение данных с помощью OpenStack

О преимуществах использования OpenStack ― платформы облачных вычислений IaaS с открытым исходным кодом

Облачные платформы типа "инфраструктура как сервис" (IaaS) весьма разнообразны, и в их числе есть хорошо известные решения, такие как Nebula и Eucalyptus. Но относительно молодой проект в этой области демонстрирует значительный рост не только по числу пользователей, но и по количеству поддерживающих компаний. Эта статья знакомит читателя с платформой OpenStack и дает ответ на вопрос, действительно ли она заслуживает звания "облачной операционной системы с открытым исходным кодом".

M. Тим Джонс, инженер-консультант, Emulex Corp.

М. Тим ДжонсМ. Тим Джонс - архитектор встроенного ПО и, кроме того, автор книг Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming (выдержавшей на данный момент второе издание), AI Application Programming (второе издание) и BSD Sockets Programming from a Multilanguage Perspective. Он имеет обширный опыт разработки ПО в самых разных предметных областях - от ядер специальных ОС для геосинхронных космических аппаратов до архитектур встраиваемых систем и сетевых протоколов. Тим - инженер-консультант Emulex Corp., Лонгмонт, Колорадо.



20.03.2013

Идея, стоящая за облачными вычислениями и общедоступной службой "инфраструктура как сервис" (IaaS), безусловно, не нова. Amazon Elastic Compute Cloud (Amazon EC2) в этом году исполнится шесть лет. Новым можно назвать то, что на IaaS стали смотреть как на средство частных облачных вычислений для решения задач корпоративных вычислений с конфиденциальными данными. Частные облачные вычисления ― это идея IaaS в применении к частной инфраструктуре. Хотя они и не приносят таких экономических выгод, как общедоступное облако (оплата услуг по факту их использования), но основные принципы облачных вычислений позволяют создать масштабируемую и упругую инфраструктуру внутри корпоративного центра обработки данных.

Мы начнем с краткого введения в IaaS и соответствующую архитектуру, а затем рассмотрим ведущее решение с открытым исходным кодом: OpenStack.

IaaS и облачные архитектуры

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

Реализация архитектуры IaaS (см. рисунок 1) следует этой модели с добавлением других элементов, таких как измерение (для учета использования в целях выставления счетов). Физическая инфраструктура изолирована от приложения и пользователя уровнем виртуализации, который реализуется посредством целого ряда технологий, включая гипервизоры (для виртуализации платформы), виртуальные сети и системы хранения данных.

Рисунок 1. Общее представление IaaS
Общее представление IaaS

НАСА отказалось от OpenStack?

В мае 2012 года Национальное агентство по аэронавтике и исследованию космического пространства США (НАСА) прекратило свое участие в проекте OpenStack, который оно разрабатывало вместе с Rackspace. НАСА не отказалось от OpenStack, но стало пользователем, а не разработчиком. Разработчиков и сторонников OpenStack становится все больше (начиная с таких компаний, как AT&T, IBM, Dell, Cisco, Yahoo! и Red Hat), поэтому вместо того чтобы конкурировать с коммерческими разработчиками, НАСА решило стать потребителем OpenStack. Агентство объявило также о прекращении разработки проекта Nebula.

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

Более ранее решение IaaS с открытым исходным кодом, Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems), было разработано в рамках исследовательского проекта в Калифорнийском университете в Санта-Барбаре. К другим решениям относятся OpenNebula (набор инструментов для облачных вычислений с открытым исходным кодом) и Nimbus (еще один набор инструментов с открытым исходным кодом для IaaS-облаков). OpenStack объединил части платформы НАСА Nebula и проекта Rackspace Cloud Files (облачная система хранения данных).


OpenStack – новый участник рынка облачных вычислений

OpenStack ― относительно новый проект IaaS, его первая версия вышла в конце 2010 года. Несмотря на кажущуюся незрелость и с учетом того, что ему менее двух лет, OpenStack ― один из наиболее популярных наборов облачного ПО. Однако это не одно решение: OpenStack представляет собой растущий набор пакетов ПО с открытым исходным кодом (включая ядро и разрастающиеся проекты), которые в совокупности образуют мощный и зрелый стек IaaS.

Как показано на рисунке 2, OpenStack состоит из основных технологий (их больше, чем показано здесь, но это самые главные). Слева изображена панель Horizon, которая предоставляет собой пользовательский интерфейс для управления услугами OpenStack как для пользователей, так и для администраторов. Nova ― это масштабируемая вычислительная платформа, которая обеспечивает подготовку большого числа серверов и виртуальных машин и управление ими (независимо от гипервизора). Swift представляет собой широко масштабируемую объектную систему хранения данных с внутренней избыточностью. Системы Quantum и Melange, изображенные в нижней части рисунка, осуществляют сетевую связь в виде услуг. Наконец, проект Glance представляет собой хранилище образов виртуальных дисков (образы как услуги).

Рисунок 2. Основные и дополнительные компоненты решения OpenStack
Основные и дополнительные компоненты решения OpenStack

Как показано на рисунке 2, OpenStack представляет собой набор проектов, которые в совокупности составляют полное решение IaaS. Таблица 1 иллюстрирует назначение этих проектов.

Таблица 1. Проекты и компоненты OpenStack
ПроектКомпонентОписание
HorizonПанель управленияПанели управления пользователя и администратора
NovaВычислительные/блочные устройстваВиртуальные серверы и тома
GlanceСлужба образов системОбразы дисков виртуальных машин
SwiftХранение как услугаОбъектно-ориентированная система хранения данных
Quantum/MelangeСетиБезопасные виртуальные сети

В число других важных компонентов входит Keystone, служба управления доступом, критически важная для частных облаков предприятия (для управления доступом к серверам, образам в Glance и объектно-ориентированному хранилищу Swift).


Архитектура OpenStack

Архитектуру OpenStack составляют три основных проекта с открытым исходным кодом (как показано на рисунке 2): Nova (вычислительные ресурсы), Swift (объектно-ориентированное хранилище) и Glance (репозиторий ВМ). Nova, или OpenStack Compute, обеспечивает управление экземплярами ВМ в сети серверов. Его интерфейсы прикладного программирования (API) обеспечивают организацию вычислений с использованием такого подхода, чтобы не зависеть не только от физического оборудования, но и от гипервизоров. Nova предоставляет не только API OpenStack для управления, но и Amazon EC2-совместимый API для тех, кто знаком с этим интерфейсом. Nova поддерживает проприетарные гипервизоры для организаций, которые их используют, но еще важнее то, что он поддерживает такие гипервизоры, как Xen и Kernel Virtual Machine (KVM), а также технологию виртуализацию операционных систем, такую как Linux ® Containers. В целях разработки можно также использовать решения для эмуляции, такие как QEMU.

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

Glance, или OpenStack Image Service, обеспечивает хранение образов виртуальных дисков, которые может использовать Nova (с возможностью хранения в Swift). В дополнение к обнаружению и доставке образов дисков через простой интерфейс Representational State Transfer (REST), Glance предоставляет API для их регистрации. Glance в основном не зависит от формата образов виртуальных дисков, поддерживая большое число стандартов, включая VDI (VirtualBox), VHD (Microsoft® Hyper-V®), QCOW2 (QEMU/KVM), VMDK/OVF (VMware) и raw-формат. Glance предоставляет также контрольные суммы образа диска для контроля целостности, управления версиями (и другими метаданными), а также для проверки виртуальных дисков и регистрации событий в целях аудита/отладки.

Основные проекты OpenStack (Nova, Swift и Glance) написаны на языке Python и доступны по лицензии Apache.


Демонстрация OpenStack

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

Каждый, кто прочел мои предыдущие статьи, знает, что я предпочитаю использовать образы виртуальных машин для упрощения работы с программным обеспечением на основе Linux. Виртуальные машины позволяют легко создавать новый экземпляр, чтобы попробовать или продемонстрировать то или иное программного обеспечение. ВМ-это автономный экземпляр Linux (иногда называемый виртуальным устройством), на который можно установить все необходимое ПО и настроить его. В этом случае ПО предварительной подготовки значительно упрощает работу, позволяя экспериментировать с программным обеспечением, которое иначе было бы трудно установить, или на это потребовалось бы много времени. В разделе Ресурсы можно выбрать варианты установки, подходящие для тех или иных требований к оборудованию и операционной системе.

Для этой демонстрации я решил взять последнюю версию Ubuntu (12.04) и версию OpenStack Essex. Версия Essex доступна в формате ISO и устанавливается с помощью процедуры uksysadmin (см. раздел Ресурсы). После установки с нуля OpenStack Essex на Ubuntu Precise панель управления OpenStack должна быть доступна через внешний браузер. На рисунке 3 показана вкладка System Panel Images с гостевым образом ВМ в двух форматах контейнера.

Рисунок 3. Панель управления OpenStack с доступными гостевыми образами
Панель управления OpenStack с доступными гостевыми образами

Образ используется для создания демонстрационного экземпляра, который запущен, как показано на рисунке 4. Теперь этот экземпляр доступен для использования.

Рисунок 4. Экземпляры систем на панели управления OpenStack
Экземпляры систем на панели управления OpenStack

Когда образ работает в OpenStack, к нему можно обращаться по IP-адресу (172.16.1.1) посредством простого сеанса Secure Shell (SSH) (см. листинг 1, команды пользователя выделены жирным шрифтом).

Листинг 1. Обращение к экземпляру OpenStack через SSH
$ ssh -i Downloads/demo.pem ubuntu@172.16.1.1
The authenticity of host '172.16.1.1 (172.16.1.1)' can't be established.
RSA key fingerprint is df:0e:d0:32:f8:6d:74:49:ea:60:99:82:f1:07:5d:3b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.1' (RSA) to the list of known hosts.
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-virtual x86_64)

 * Документация:  https://help.ubuntu.com/

 System information disabled due to load higher than 1.0

0 packages can be updated.
0 updates are security updates.

Get cloud support with Ubuntu Advantage Cloud Guest
  http://www.ubuntu.com/business/services/cloud

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@demo1:~$ 
ubuntu@demo1:~$ hostname
demo1
ubuntu@demo1:~$ ps
  PID TTY          TIME CMD
  835 pts/0    00:00:06 bash
  948 pts/0    00:00:00 ps
ubuntu@demo1:~$

Когда работают все эти уровни, может быть трудно представить себе, что происходит. Рисунок 5 иллюстрирует весь стек и, будем надеяться, поможет читателю разобраться. В этой демонстрации базовую платформу обеспечивает компьютер Mac под управлением Mac OS X. На Mac OS X работает VirtualBox, предоставляя платформу для исполнения OpenStack (работает на Ubuntu Linux). Обратите внимание, что VirtualBox ― это гипервизор типа 2. В пределах слоя OpenStack Linux гипервизор QEMU используется как гостевой, что идеально с точки зрения аппаратуры, но не обеспечивает производительности, необходимой в реальных производственных установках.

Рисунок 5. Демонстрация стека OpenStack на типовом оборудовании
Демонстрация стека OpenStack на типовом оборудовании

Без поддержки вложенной виртуализации (эффективно работающий гипервизор поверх другого гипервизора) я полагаюсь на QEMU в качестве гостевого гипервизора, работающего в OpenStack. Это позволяет запускать гостевую виртуальную машину на гостевом гипервизоре, работающем поверх гипервизора типа 2. Хотя такая установка может оказаться медлительной, она полностью демонстрирует стек IaaS, работающий на типовой компьютерной системе. Отметим, что некоторые современные процессоры AMD обеспечивают эффективную поддержку вложенной виртуализации.

Хотя QEMU не идеален с точки зрения производительности, он во многом совместим с KVM (Linux в качестве гипервизора), и поэтому можно легко переходить с одного из этих гипервизоров на другой (помимо совместимости образов ВМ). Это делает QEMU идеальным в том плане, что его можно выполнять на оборудовании, не поддерживающем виртуализацию. Обратите внимание, что моя платформа в этом примере способна к виртуализации, но так как я работаю на VirtualBox (который сам является гипервизором), отсутствие вложенной виртуализации вынуждает меня использовать гостевой гипервизор, который не полагается на расширения виртуализации. В любом случае я использую libvirt для управления виртуальными машинами (пуск, останов, мониторинг и т.д.), поэтому переход на KVM поверх поддерживающего виртуализацию оборудования выливается всего лишь в редактирование пары строк в файле конфигурации OpenStack.


Другие способы использования OpenStack

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

Многие компании предлагают средства упрощения установки и эксплуатации облака OpenStack на частном корпоративном кластере. Например, компания Piston Cloud Computing предлагает Piston Enterprise OS, операционную систему частного облака, основанную на OpenStack. Mirantis предоставляет предприятиям профессиональные услуги по созданию инфраструктуры OpenStack.


Дальнейшие планы в отношении OpenStack

OpenStack продолжает приобретать все новую функциональность, поднимая планку определения IaaS-решения. Существует много других проектов под эгидой OpenStack, как и тех, что еще находятся в стадии инкубационного развития. Проект Keystone предоставляет службу управления учетными записями, которая объединяет аутентификацию для всех компонентов OpenStack и интеграцию с существующими системами аутентификации. Существуют также проекты сообщества по выравниванию нагрузки как услугам (Atlas-LB); система установки и обслуживания облака (Crowbar); масштабируемая реляционная база данных с возможностью поддержки облака (RedDwarf); API на основе REST для организации облака (Heat); а также инструмент управления облаком, охватывающий мониторинг, биллинг и многое другое (Clanavi). В стадии разработки находятся многие другие проекты как в рамках проекта OpenStack, так и за его пределами, и этот список растет с каждым днем по мере того, как OpenStack набирает популярность.

OpenStack не лишен конкурентов: продолжают развиваться старые проекты и появляются новые. Например, CloudStack (впервые выпущен в 2009 году) имеет несколько производственных установок, но ему не хватает того уровня поддержки сообщества open source, каким пользуется OpenStack.


Заключение

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

С момента первого выпуска в конце 2010 года (Остин) проект OpenStack выпустил еще четыре версии, последнюю ― в апреле 2012 года (Essex). С каждым выпуском OpenStack продолжает приобретать новую и улучшенную функциональность, поднимая планку для других IaaS-решений. Не удивительно, что теперь, под эгидой Apache, OpenStack превратился в стандарт облачного ПО.

Ресурсы

  • Оригинал статьи: Cloud computing and storage with OpenStack.
  • Официальный Web-сайт OpenStack ― уникальный источник информации по семейству проектов OpenStack, содержащий новости о проектах сообщества, документацию и прочие материалы, относящиеся к OpenStack.
  • Cloud Computing и Linux (М. Тим Джонс, developerWorks, февраль 2009 г.): введение в облачные вычисления и их отдельные области (IaaS, платформа как услуги, программное обеспечение как услуги) с акцентом на Linux-версии.
  • Анатомия облака с открытым кодом (М. Тим Джонс, developerWorks, март 2010 г.): введение в анатомию облачных вычислений с точки зрения ПО с открытым исходным кодом. Статья знакомит с архитектурой узла, архитектурой кластера и технологиями open source, которые позволяют все это реализовать.
  • Анатомия облачной инфраструктуры хранения данных (М. Тим Джонс, developerWorks, ноябрь 2010 г.): исследование внутреннего устройства облачной инфраструктуры хранения данных, включая общую архитектуру, управление, производительность, масштабируемость и доступность. Статья также исследует модели облачных систем хранения, от частной до общедоступной и гибридной.
  • OpenStack ― это не один проект, а зонтик, развернутый над несколькими проектами, которые в совокупности реализуют масштабируемое и надежное облако. В число основных проектов под эгидой OpenStack входят Nova , Swift и Glance . Два проекта в настоящее время находятся в инкубаторе (скоро станут основными проектами): Keystone и Horizon. Наконец существует несколько проектов сообщества, которые расширяют или дополняют функциональность OpenStack: Quantum, Melange, Atlas-LB, Crowbar, Heat и Clanavi.
  • Процесс установки OpenStack: полная инструкция по установке OpenStack для производственных целей.
  • Существует несколько вариантов использования OpenStack в контексте ВМ (для различных выпусков OpenStack, включая самые последние). Познакомьтесь с DevStack (от Rackspace Cloud Builders), материалом из вики OpenStack Выполнение OpenStack Compute (Nova) в виртуальной среде и видеодемонстрацией процесса установки OpenStack Essex на Ubuntu 12.04 под VirtualBox из блога System Administration and Architecture (я использовал этот пример для своей демонстрации).
  • Если нужна профессиональная помощь по частному облаку OpenStack, то несколько компаний предоставляют такую поддержку. Две таких компании: Piston Cloud Computing и Mirantis.
  • CloudStack: стек, конкурирующий с OpenStack. Имеет несколько производственных установок.

Комментарии

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=Облачные вычисления
ArticleID=862007
ArticleTitle=Облачные вычисления и хранение данных с помощью OpenStack
publish-date=03202013