Научная статья на тему 'Сравнение нескольких платформ облачных вычислений'

Сравнение нескольких платформ облачных вычислений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2988
371
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ / ВИРТУАЛИЗАЦИЯ / ИНФРАСТРУКТУРА КАК СЕРВИС (LAAS) / ПЛАТФОРМА КАК СЕРВИС (PAAS) И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КАК СЕРВИС (SAAS) / INFRASTRUCTURE AS A SERVICE (IAAS) / PLATFORM AS A SERVICE (PAAS) / SOFTWARE AS A SERVICE (SAAS) / CLOUD COMPUTING / VIRTUALIZATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Богданов Александр Владимирович, Е Мьинт Найнг

Облачные вычисления стали естественным завершением работы, связанной с разработкой параллельных вычислений, распределенных вычислений и грид-вычислений. Это была однаиз самых горячих тем исследования. В настоящее время ведущие корпорации участвуют в развитии облачных вычислений и предлагают многие их платформы. Создалась благоприятная ситуация для изучения и приложения облачных вычислений. Для начинающих пользователей все еще очень трудно сделать разумный выбор среди большого количества приложений. Какие различия существуют для разных платформ облачных вычислений и какие характеристики и преимущества есть у каждой? Чтобы ответить на эти вопросы, в статье подробно проанализированы и обсуждены проблемы, характеристики, архитектура и приложения нескольких популярных платформ облачных вычислений. При их сравнении пользователи могут лучше понять различные облачные подходы и более разумно выбрать то, что необходимо. Приведены результаты тестирования Eucalyptus и Opennebula на гетерогенной платформе факультета прикладной математики–процессов управления СПбГУ, анализируются их особенности и достоинства для университетских проектов дата-центров.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Богданов Александр Владимирович, Е Мьинт Найнг

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

A comparison of several cloud computing platforms

Cloud computing is a natural move to a new perception of information infrastructure whichappeared as a result of evolution of the technological base of hardware of today’s computer complexes. It has been one of the most hot research topics. Now many corporations are involved in cloud computing related techniques and many cloud computing platforms have been put forward. This is a favorable situation to study and apply cloud computing related techniques. For beginning users it is still very hard to make a reasonable choice among large number of offers. What difference are there for different cloud computing platforms and what characteristics and advantages has each? To answer these problems, the characteristics, architectures and applications of several popular platforms of cloud computing are analyzed and discussed in detail. From the comparison of these platforms users can better understand different cloud platforms and more reasonablely choose what they want. This communication present the results of testing Eucalyptus and Opennebula on heterogeneous platforms SMU (PM–PU St. Petersburg University) and analyzes its features and advantages for the project data centers of the University.

Текст научной работы на тему «Сравнение нескольких платформ облачных вычислений»

УДК 519.687.7

Вестник СПбГУ. Сер. 10, 2013, вып. 2

А. В. Богданов, Е Мьинт Найнг

СРАВНЕНИЕ НЕСКОЛЬКИХ ПЛАТФОРМ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ

1. Введение. Облачные вычисления - новая модель предоставления и использования различных ИТ-ресурсов, в том числе вычислительных мощностей (серверов), пространства для хранения данных, полосы пропускания сети и приложений. Ресурсы в такой модели объединены в пулы и предоставляются по требованию, оплата осуществляется по фактическому использованию, а сама модель отличается высокой адаптируемостью и прекрасными возможностями сетевого доступа [1]. Различают три способа реализации облака: инфраструктура как сервис (IaaS), платформа как сервис (PaaS) и программное обеспечение как сервис (SaaS). Для пользователей, с точки зрения учета ресурсов, облачные вычисления - реализация режима «плата на использование по требованию», который может удобно реализовывать доступ к совместно используемым ресурсам ИТ через Интернет. Если ресурсы IT включают сеть, сервер, системы хранения, приложения, службы и т. д., они могут быть развернуты быстро и легко, с минимальными затратами на управление и взаимодействия с поставщиками услуг. Облачные вычисления могут существенно улучшить доступность ресурсов IT и дают много преимуществ по сравнению с другими вычислительными методами. Например, они могут обеспечить доступ к услугам без взаимодействия с поставщиками услуг. И все ресурсы на облаке доступны любому пользователю, т. е. пользователи могут динамически арендовать физические или виртуальные ресурсы и не должны знать их происхождение или место размещения. Кроме того, все ресурсы на платформе облачных вычислений могут быть развернуты быстро и без остановки вычислений.

Облачные вычисления могут обеспечить три вида режимов службы, включая IaaS, PaaS и SaaS. Здесь SaaS означает, что услуга, предоставленная клиенту, является приложениями, работающими на инфраструктуре облачных вычислений, обеспеченной поставщиками услуг. К ним можно получить доступ интерфейсами тонкого клиента, такими как баузер и т. д. PaaS дается потребителю для развертывания на облачной инфраструктуре, создаваемой потребителями, или для запуска приложений, построенных при использовании языков программирования и инструментов, поддерживаемых провайдером. Потребитель не управляет и не контролирует базовую облачную инфраструктуру, включая сеть, серверы, операционные системы или системы хранения, но управляет развернутыми приложениями и, возможно, приложением, определяющим конфигурацию операционной среды. IaaS связан с услугами для пользователей, которые хотят арендовать вычислительную мощность, объем в системах хранения, сеть и другие основные компьютерные ресурсы - их пользователи могут развернуть и выполнить на них любое программное обеспечение, включая операционные системы и приложения. При этом пользователю нет необходимости управлять или контролировать облачную инфраструктуру, включая сеть, серверы, операционную систему, системы хранения и даже настройки приложений.

Богданов Александр Владимирович — доктор физико-математических наук, профессор, Санкт-Петербургский государственный университет; e-mail: bogdanov@csa.ru.

Е Мьинт Найнг — аспирант, Санкт-Петербургский государственный морской технический университет; e-mail: yemyintnaing@gmail.com.

© А. В. Богданов, Е Мьинт Найнг, 2013

От точки зрения развертывания платформа облачных вычислений включает три вида, которыми являются частные облака, публичные облака и гибридные облака. Публичное облако - это облачная инфраструктура, которая доступна для широкой общественности или сотрудников корпорации и принадлежит организации, предоставляющей облачные сервисы. В публичных облаках вычислительные ресурсы динамически обеспечиваются через Интернет с помощью веб-приложения или веб-служб. Частное облако связано с реализацией облачных вычислений на корпоративных сетях. Частные облака созданы для исключительного использования одной группой пользователей, обеспечивая полный контроль над данными, безопасностью и качеством обслуживания. Они могут быть построены и управляться собственной ИТ-службой компании или поставщиком облачных сервисов. Гибридное облако объединяет множество публичных и частных моделей облака. Его сложно определить исчерпывающим образом из-за сложности переноса приложений в публичное облако из частного [2].

Считается, что облачные вычисления вызовут новую революцию в ИТ-сервисах. Предвидя огромный бизнес-потенциал такого подхода, многие страны, правительства и корпорации приняли решение поддерживать и вкладывать средства в развитие методов облачных вычислений. EC2 от Amazon, Azure от Microsoft, AppEngine от Google, Синее облако от IBM и т. д. - это все широко используемые платформы облачных вычислений, свидетельствующие о том, что облачные вычисления станут ареной конкурентной борьбы. Однако при всем обилии облачных платформ у каждой есть собственные особенности и преимущества, и сделать разумный выбор между ними большая проблема. Для помощи в ее решении в настоящей статье проводятся анализ и сравнение нескольких популярных облачных платформ.

2. Облачная платформа (Eucalyptus). Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) как проект был начат в Калифорнийском университете в Санта-Барбаре и главным образом развивался для создания платформы частного облака с открытым исходным кодом. Потом он был подхвачен системным интегратором Eucalyptus. Eucalyptus - это реализация облака с открытым исходным кодом Amazon EC2, совместимая с его пользовательскими интерфейсами. Ота также осуществляет виртуализацию на базе Linux и Xen, как делается EC2. Eucalyptus - эластичная вычислительная структура, которая может использоваться, чтобы соединить программы пользователей с полезными системами, инфраструктура с открытым исходным кодом, использующая реализацию для кластеров или рабочих станций эластичных, служебных, облачных вычислений и популярного вычислительного стандарта, основанного на протоколе уровня обслуживания. В настоящее время Eucalyptus является совместимым с EC2 от Amazon и может поддерживать другие виды клиентов с минимальной модификацией и расширением. Структуру топологии ресурсов Eucalyptus демонстрирует рис. 1.

Как видно на рис. 1, контроллер узла (Node Controller, NC) управляет запуском, работой и остановкой виртуальных машин на подведомственном узле. Узел - это машина с работающим гипервизором (например, Xen), который осуществляет работу виртуальных машин (instances в терминологии Eucalyptus). Контроллер кластера (Cluster Controller, CC) управляет подведомственными контроллерами узлов (NC): собирает информацию о загруженности узлов и принимает решения, на каких узлах будет выполнен запуск виртуальных машин. Контроллер хранилища (Storage Controller) - место для хранения образов (image) виртуальных машин. В качестве хранилища выступает Walrus - сервис, подобный Amazon S3. Контроллер облака (Cloud Controller, CLC) представляет собой точку входа. Со стороны конечного пользователя (или вышестоящего

Рис. 1. Структура топологии ресурсов Eucalyptus

приложения) поступают запросы на запуск виртуальных машин; ш стороны контроллеров кластеров - данные о загруженности узлов облака [3]. На факультете прикладной математики-процессов управления (ПМ-ПУ) СПбГУ создали частное облако на базе Eucalyptus и проанализировали его особенности и достоинства. Результаты работы показывают, что в нашем частном облаке запускали виртуальные машины, на которых можно выполнить приложения. В нашем облаке пользователям предоставляют доступ к виртуальным машинам, на которых они могут установить и выполнить произвольное программное обеспечение, включая системы баз данных с помощью программного интерфейса приложения EC2 API. Перед запуском виртуальных машин мы должны создать пару ключей, которые будут использоваться для доступа к ОС по протоколу SSH. Здесь предполагается, что команда «euca-describe-availability-zones» возвращает на вывод описание возможностей нашего облака, сколько экземпляров каждого типа можно запустить на нем, и команда «euca-describe-instances» показывает все пары ключей, используемые для доступа к ВМ:

$ /.euca/eucarc

euca-describe-availability-zones verbose AVAILABILITYZONE myanmar 192.168.45.41 AVAILABILITYZONE j- vm types free / max cpu ram disk AVAILABILITYZONE j- ml.small 0000 / 0004 1 128 2 AVAILABILITYZONE j- c1.medium 0000 / 0004 1 256 5 AVAILABILITYZONE j- m1.large 0000 / 0002 2 512 10 AVAILABILITYZONE j- m1.xlarge 0000 / 0002 2 1 024 20 AVAILABILITYZONE j- c1.xlarge 0000 / 0001 4 2048 20 $ euca-describe-instances RESERVATION r-358E067B admin default

INSTANCE i-4DAD080A emi-DE1B1059 192.168.1.102 172.19.1.3 running mykey 0 m1.small 2010-04-10T00:51:19.394Z myanmar eki-F44C10D9 eri-08c21145 RESERVATION r-4C7C0843 admin default

INSTANCE i-47B5091E emi-DEB414FD 192.168.1.103 172.19.1.4 running mykey 0 m1.large 2010-04-10T00:53:58.901Z myanmar eki-238E1A05 eri-040E198A

RESERVATION r-544C09EB admin default

INSTANCE Í-3F060729 emi-DFAD1076 192.168.1.101 172.19.1.2 running mykey 0 cl.medium 2010-04-10T00:39:24.834Z myanmar eki-F5EE10ED eri-0A&A1163

Владелец облака помещает в хранилище образы тех виртуальных машин (например, Debian, CentOS, Ubuntu), которые будут запускаться в облаке. Запрос на запуск виртуальных машин определяет, какие машины из списка возможных и в каком количестве будут подняты в облаке. Получив запрос, контроллер облака решает, куда перенаправить этот запрос. У пользователя есть возможность указать, в каком кластере должны быть запущены машины. Соответствующий контроллер кластера получает запрос и принимает решение, на каких узлах будет выполнено задание. Получив задание, контроллер узла загружает соответствующий образ из хранилища и запускает машины средствами гипервизора [2].

3. OpenNebula. Это еще одно интересное приложение с открытым кодом (распространяемое под лицензией Apache), разработанное в Мадридском университете Ком-плутенсе (Universidad Complutense de Madrid) (рис. 2). Помимо поддержки частных облачных инфраструктур, OpenNebula поддерживает идею создания гибридных облаков, позволяющих для улучшения масштабируемости комбинировать частную облачную инфраструктуру с открытой облачной инфраструктурой (например, Amazon) [4].

Cloud user interface

Рис. 2. Структура топологии ресурсов OpenNebula

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

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

С точки зрения инфраструктуры пользователей, OpenNebula является масштабируемой и может быстро реагировать на требования пользователя. От точки зрения системных интеграторов пользователи могут развернуть любой вид облака и интегрировать центр обработки данных, продукты или услуги в инструментах управления поставщиков облачной инфраструктуры, диспетчеров виртуальных машин, менеджеров виртуальных изображений, менеджеров сервисов, инструментов управления и т. д. Это может быть полезным в любых видах центра обработки данных [4].

OpenNebula поддерживает Xen, KVM/Linux и VMware. Реализация управления и мониторинга в данном приложении основана на библиотеке libvirt [5]. На факультете ПМ-ПУ СПбГУ создали частное облако на базе OpenNebula и проанализировали его особенности и достоинства. Результаты работы показывают, что в нашем частном облаке запускали виртуальные машины, на которых можно выполнить приложения. Вообще вся настройка OpenNebula проходит в командной строке. После установки данной платформы в системе создается пользователь «oneadmin» и предоставляются команды «oneimage», «onevnet», «onehost», «onevm list», просто чтобы посмотреть, запустится ли сервис облака:

$ oneimage list

ID USER NAME TYPE REGTIME PUB PER STAT #VMS 1 oneadmin ttylinux OS Jun 01, 2011 23:12 No No used 1 1 oneadmin ubuntu Desktop OS Jun 01, 2011 23:12 No No used 1 $ onevnet list

ID USER NAME TYPE BRIDGE P #LEASES

0 oneadmin Small network Fixed br0 N 2

1 oneadmin VM LAN Ranged br0 N 2 $ onehost list

ID NAME CLUSTER RVM TCPU FCPU ACPU TMEM FMEM STAT 0 node default 4 4 00 399 24 0 3.9G 3.8G on $ onevm list

ID USER NAME STAT CPU MEM HOSTNAME TIME

14 oneadmin ubuntu-d runn 103 512M node 06 21:03:21

15 oneadmin ttylinux runn 1 64M node 06 21:03:02

18 oneadmin one-18 runn 103 400M node 06 19:30:13

19 oneadmin one-19 runn 104 4 00M node 06 19:11:16

4. Abicloud. Это приложение представляет собой платформу облачных вычислений, разработанную компанией Abiquo, которая находится в Барселоне (Испания) и в основном сосредоточена на развитии облачных платформ. Продукт может быть использован для создания, интеграции и управления общественным, а также частными облаками в однородных средах. Основное различие между Abicloud и другими платформами облачных вычислений - ее более продвинутые веб-функции управления и особенности инкапсуляции. Используя Abicloud, пользователь может развертывать

новые сервисы просто перемещением виртуальной машины мышью. Это намного легче и эффективнее, чем для других платформ облачных вычислений, в которые развертываются новые сервисы только из командной строки. По АЫс1оиё, нет идеальной платформы для создания облачных структур. Поскольку каждый пользователь нуждается в собственных инфраструктурах облака и у каждого поставщика облака есть свои инструменты управления, то вообще очень трудно развернуть платформу облака, удовлетворяющую всем требованиям пользователя. Лучший способ ответить требованию пользователей состоит в том, чтобы построить общественное или частное облако как однородную базовую платформу облачных вычислений, расширяемую инфраструктурами для конкретных приложений. Кроме того, у платформы облака также должны быть все виды интерфейсов, которые поддерживают продукты сторонних приложений.

АЫс1оиё может быть использован для развертывания и реализации частных облаков, а также гибридных облаков в соответствии с запросом и конфигурацией облачных провайдеров. Он может также управлять ЕС2 в соответствии с правилами протокола. Кроме того, при развертывании АЫс1оиё все платформы облака могут быть упакованы и переданы любой другой платформе АЫс1оиё. Это очень полезно для преобразования операционной среды и делает облачную инфраструктуру легче и более гибкой. Архитектуру АЫс1оиё иллюстрирует рис. 3.

Third parties applications/ cloud platform

OpenAPI

Рис. 3. Архитектура Abicloud

Фактически, Abicloud может поддерживать много различных платформ виртуальных машин, которые включают vBox, VMWare, Xen, KVM и т. д., что делает его очень гибким. По сравнению с Eucalyptus и OpenNebula этот подход требует больших усилий на поддержку платформы частного облака и динамического управления

масштабируемостью виртуальных машин на кластерах. Для гибридных облаков он обеспечивает доступ по требованию и такие же гибкие механизмы, как Amazon EC2 [5].

5. Nimbus. Это IaaS-решение, предназначенное для научных вычислений. Используя его, можно брать в аренду удаленные ресурсы (например, предоставляемые Amazon EC2) и управлять ими локально (конфигурировать, разворачивать виртуальные машины, следить за их работой и т. д.). Решение Nimbus образовалось из проекта Workspace Service (который является частью Globus.org). Nimbus базируется на платформе Amazon EC2 и поддерживает гипервизоры Xen и KVM/Linux (рис. 4) [4].

Рис. 4- Архитектура Nimbus

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

Сравнение нескольких платформ облачных вычислений

Параметр Eucalyptus Орег^еЬи1а Nimbus АЫС1оис1

Характер Публичное Частное Публичное Публичное /

Облака частное

Масштаби- Масштабируемое Динамическое, Масштабируемое Масштабируемое

руемость масштабируемое

Форма Облака IaaS 1ааЭ IaaS 1ааЭ

Совместимость Поддержка ЕС2, parS3 Открытое, мно-гоплатформное Поддержка ЕС2 Нет поддержки ЕС2

Развертывание Динамическое Динамическое Динамическое Пакетное

развертывание развертывание развертывание развертывание

Способ Командная Командная Командная Веб-интерфейс

развертывания строка строка строка

Переносимость Общий Общий Общий Легкий

Окончание таблицы

Параметр Eucalyptus OpenNebula Nimbus AbiCloud

Поддержка Xen, KVM Xen, KVM, Xen, KVM VirtualBox, Xen,

виртуальных и VMware VMware VMware,VM

машин vSphere, ESX и ESX

Веб-интерфейс Веб-сервис EC2, WSDL, WSRF Libvirt, EC2, OCCI, API Libvirt

Надёжность Откаты хостов и виртуальных машин

Поддержка опе- Linux Linux Linux Linux

рационных сис-

тем

Развитие Java Java Java, Python Ruby, С++, python

Как видно из таблицы, несмотря на разные реализации этих облачных платформ, между ними есть много общего. Например, они все являются масштабируемыми, все обеспечивают IaaS, все поддерживают динамическое развертывание платформы, виртуализацию по Xen-технологии, операционную систему Linux и разработку приложений на Java. Однако есть также принципиальные различия в виде их сетевых интерфейсов, структуры и надежности и т. д. Обычно каждая облачная платформа имеет собственные преимущества перед другими. Например, с точки зрения надежности, OpenNebula является более зрелой [5].

7. Заключение. Облачные вычисления - новая технология, широко изученная в последние годы. Появилось много облачных платформ как от производителей, так и в академической сфере. Разобраться со всеми проблемами и понять, как использовать эти платформы, - важная задача. Подробное их сравнение было представлено в настоящей статье с упором на таких аспектах как архитектура, характеристики, приложения и др. Из проведенного анализа пользователи могут лучше понять характеристики и надежнее выбирать платформу облачных вычислений, согласно протоколам, интерфейсам, совместимости, реализации, требованию по развертыванию, возможности развития и т. д. Хотя у каждой платформы облачных вычислений есть свои достоинства, одну вещь очень важно подчеркнуть - независимо от того, какая платформа выбрана, остаются нерешенные проблемы. Укажем в качестве примера механизмы кластерного отказа в облачной среде, гарантии согласованности и синхронизации на различных кластерах в облачной платформе, стандартизацию, безопасность облачной платформы и данных при передаче и т. д. Все эти проблемы требуют решения для каждой конкретной реализации. На тестовом полигоне факультета прикладной математики-процессов управления СПбГУ облако строилось на гетерогенной системе, которая состоит из сильно различающихся по производительности кластеров, построенных на двух-, четырех-и шестипроцессорных оптеронах. Тем не менее Eucalyptus показал себя, с одной стороны, как эффективное средство объединения ресурсов в такой сильно неоднородной среде, а с другой - его инструментальные средства позволяют легко масштабировать и переконфигурировать имеющиеся ресурсы, что очень важно для университетских сетей с их неоднородной загрузкой. По сравнению с Eucalyptus OpenNebula требует больше усилий на поддержку платформы и динамического управления масштабируемостью виртуальных машин на кластерах. Для гибридных облаков она обеспечивает доступ по требованию и более гибкие механизмы управления, как это делается в Amazon EC2.

Литература

1. Seagate, Облачные вычисления — новая модель предоставления и использования ИТ-ресурсов. Сентябрь, 2010 г. // URL: http://www.seagate.com/docs/pdf/ru-RU/whitepaper/tp617_cloud_computing _for _it_resources.pdf.

2. Furht Borko, Escalante Armando J. Handbook of Cloud Computing. Pt. 1 // Technologies and Systems. 2010. P. 3-19.

3. Bogdanov A., Dmitriev M., Ye Myint Naing. Eucalyptus open-source private cloud infrastructure, GRID 2010 // Proc. of the 4th Intern. Conference. Dubna, June 28-July 3. 2010. P. 57-63.

4. Джонс M. Тим. (ed.) Анатомия облака с открытым кодом, 15.06.2011 // URL: http:// www.ibm.com /developerworks/ru/library/os-cloud-anatomy/index.html?ca=drs-.

5. Peng J. J., Zhang X. J., Lei Z. e. a. Comparison of several cloud computing platform // Second Intern. Symposium on Information Science and Engineering. IEEE. 2009. Vol. 12. P. 23-27.

Статья рекомендована к печати проф. Л. А. Петросяном. Статья поступила в редакцию 20 декабря 2012 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.