Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Облачные сервисы.

Содержание:

Введение

Актуальность темы исследования.

Современные тенденции, прослеживаемые в индустрии информационных технологий, лишний раз подтверждают, что мир развивается по спирали, а новое - это зачастую хорошо забытое старое. Так, принцип коллективного использования вычислительных ресурсов, реализованный на базе «больших ЭВМ» в 1960-х годах, на рубеже 1980-1990-x годов с появлением персональных компьютеров был временно забыт, но теперь приобретает популярность уже в новом качестве.

Благодаря персональным компьютерам пользователи вычислительных систем в полной мере смогли насладиться свободой, которую дает понятие «персональный». Однако персональные устройства принесли с собой и персональные хлопоты, связанные с обслуживанием аппаратного и программного обеспечения, информационной защитой, резервированием данных, - все то, что раньше входило исключительно в должностные обязанности системных администраторов. Другим недостатком персональных компьютеров является низкая эффективность их использования. С одной стороны, производительности персонального компьютера часто не хватает для решения сложных вычислительных задач, с другой стороны, большую часть времени персональный компьютер простаивает. Поэтому уже с конца 1980-х годов начался обратный процесс, связанный с консолидацией вычислительных ресурсов в общедоступные пулы для решения пользовательских задач.

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

Объект и предмет исследования.

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

Цель и задачи исследования.

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

Задачи в работе следующие:

1) рассмотреть понятие и свойства облачных технологий, а также их основные модели и стандарты;

2) изучить работу провайдеров, предоставляющих облачные сервисы, а также содержание данных услуг;

3) обозначить тенденции развития облачных технологий в настоящее время;

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

Структура курсовой работы.

Исследование состоит из введения, двух глав (теоретической и практической), заключения, списка использованных источников, приложения.

1. Облачные сервисы: основные понятия и возможности

1.1. Понятие и свойства облачных технологий

В технологиях распределенной обработки данных в последние годы наметилась тенденция предоставления арендуемых вычислительных мощностей в виде облачных Интернет-сервисов. Сосредоточение очень большой вычислительной мощности в специализированных центрах обработки данных (ЦОД) облачных провайдеров по всему миру в разных странах (например, в США, Великобритании, государствах Евросоюза, Японии, России и в других странах), а также современная оперативная доступность ЦОД в различных точках Земли за счет стремительного увеличения пропускной способности сети Интернет, привели к созданию геоинформационной инфраструктуры. Эта инфраструктура основана на огромном количестве разнообразных разного назначения Web-сервисов, серверы которых территориально рассредоточены по всему миру, но реально совместно работают в больших информационных проектах.[1]

Говоря о понятии облачных технологий, следует отметить, что в настоящее время можно встретить много толкований термина «облачные технологии». Например, Е. Гребнев предлагает следующее: «Облачные технологии (облачные вычисления CloudComputing) - это технологии распределённой обработки данных, в которой компьютерные ресурсы и мощности предоставляются пользователю как Интернет-сервисы».[2]

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

Как отмечают М.В. Кузьмина, Т.С. Пивоварова и Н.И. Чупраков, «преимуществами облачных технологий является управление большими инфраструктурами, обеспечение безопасности, отсутствие зависимости от модификаций компьютеров и программного обеспечения. К недостаткам относятся зависимость от наличия и качества канала связи, риски технических сбоев и правовые вопросы».[3]

В настоящее время число поставщиков, предлагающих облачные решения, исчисляется сотнями и количество новых облачных предложений продолжает увеличиваться. При этом основными поставщиками облачной инфраструктуры считаются Amazon, Google и Microsoft.[4] У каждой из компаний имеется целая линейка предоставляемых услуг.

Национальный Институт стандартов и технологий NIST (National Institute of Standards and Technology, USA) в своем документе «The NIST Definition of Cloud Computing»[5] определяет следующие характеристики облаков:

- возможность в высокой степени автоматизированного самообслуживания системы со стороны провайдера;

- наличие системы Broad Network Access;

- сосредоточенность ресурсов на отдельных площадках для их эффективного распределения;

- быстрая масштабируемость (ресурсы могут неограниченно выделяться и высвобождаться с большой скоростью в зависимости от потребностей);

- управляемый сервис (система управления облаком автоматически контролирует и оптимизирует выделение ресурсов).

Самообслуживание по требованию.

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

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

Объединение ресурсов в пулы. Вычислительные ресурсы провайдера объединяются в пулы для обслуживания многих потребителей по многоарендной (multi-tenant) модели. Пулы включают в себя различные физические и виртуальные ресурсы, которые могут быть динамически назначены и переназначены в соответствии с потребительскими запросами. Нет необходимости в том, чтобы потребитель знал точное местоположение ресурсов, однако можно указать их местонахождение на более высоком уровне абстракции (например, страна, регион или ЦОД). Примерами такого рода ресурсов могут быть системы хранения, вычислительные мощности, память, пропускная способность сети.

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

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

1.2. Модели и стандарты облачных сервисов

В облачных технологиях принято выделять следующие модели: инфраструктура как сервис (IaaS), платформа как сервис (PaaS) и программное обеспечение как сервис (SaaS).[7]

За последнее десятилетие облачные вычисления уже успели зарекомендовать себя, но многие разработчики и потребители облачных служб до сих пор выбирают IaaS с отделом администраторов, вместо PaaS без необходимости в команде (дорогостоящих) администраторов. Тем не менее, если вы занимаетесь разработкой программного обеспечения, вы бы хотели фокусироваться своих прикладных программных задачах. PaaS хотя и не выглядит таким привлекательным на первый взгляд из-за своих расценок, в сравнении с IaaS, зато избавляет от самостоятельной необходимости администрирования. Но выбор PaaS провайдера несколько сложнее, чем просто сопоставление цены и предоставляемых мощностей за эту цену. Поскольку PaaS в большинстве случаев не предоставляет возможности самому управлять виртуальными машинами, то и выбор нужно начинать с выяснения поддержки провайдером языка программирования, на котором написано ваше приложение. Затем нужно определиться с компонентами приложения, и выбрать того провайдера который удовлетворяет всем требованиям. Одним из качеств, которое присуще облачным платформам, это автоматическая масштабируемость, поэтому рациональнее и компоненты выбирать по такому же принципу, т.е. вместо того чтобы подключить компонент MySQL к виртуальной машине, который просто установит базу данных, следует использовать сервисы. Например, в случае с MySQL это может быть Xeround, позволяющий забыть о масштабируемости не только на уровне приложения, но и на уровне базы данных.[8]

В настоящее время в технологиях облачных сервисов существуют активно обсуждаемые в настоящее время стандарты. Перечислим некоторые из них:

- ISO/IEC JTC 1/SC 27

- Cloud Security Alliance

- Cloud Standards Customer Council

- Distributed Management Task Force (DTMF)

- IEEE

- National Institute of Standards and Technology (NIST)

- OASIS

- Open Cloud Consortium (OCC)

- Storage Networking Industry Association (SNIA)

- Рабочая группа по облачным вычислениям в составе Open Group.

Безусловно, одним из лидеров и родоначальников облачных технологий является компания Amazon с их серией продуктов из Amazon Web Services. Компания Amazon насчитывает 338 историй успеха в 9 категориях.[9] Ниже приведен перечень наиболее известных проектов, причем отметим в скобках оценочные статистические данные по количеству успешных крупных проектов по категориям.

- Хостинг приложений (196), среди них Ericsson, Global Blue, ThoughtWorks и UniCredit.

- Резервное копирование (26) - 37signals, Amazon.com, Ericsson, NASDAQ OMX и Yelp.

- Доставка контента (7) - IMDb и Linden Lab (Second Life).

- Электронная коммерция (4).

- Облачные вычисления (34) - foursquare, NYU Langone Medical Center, Nokia Siemens Networks, University of Melbourne и University of Barcelona.

- Мультимедийный хостинг (25) - Shazam.

- Поисковые системы (4) - Alexa.

- Веб-хостинг (36) - SEGA.

- On-demand workforce (6).

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

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

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

Таблица 1

Характерные данные популярных облачных платформ

Cloud

Control

App

Harbor

appfog

Heroku

Engine

Yard

Joyent

Количество дополнений

23

31

13

90

52

34

Clojure

+

Java

+

+

Python

+

+

Scala

+

node.js

+

+

+

+

Ruby

+

+

+

Go

+

PHP

+

+

+

+

NET

+

+

БД

4

12

4

16

7

7

Почта

2

3

2

4

3

1

Мониторинг

1

5

3

18

13

1

Очередь сообщений

2

2

2

4

2

0

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

Рис. 1. Семейство логотипов сервисов облачных провайдеров

Отметим лишь некоторые из них.

- сервис Airbrake обрабатывает исключительные ситуации;

- сервис MailGun преобразовывает почту в POST запросы;

- сервис New Relic - один из общепризнанных лидеров анализа производительности в реальном времени;

Amazon CloudFront - сервис для территориально распределенной системы дистрибьюции громадных объемов данных, что характерно в современном мире для хранения медиа-контента.

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

1.3. Тенденции развития облачных технологий

Облачные вычисления можно рассматривать как новый подход, который даст мощный импульс дальнейшему развитию информационных технологий и вычислительных наук. Отметим, что распределенные и параллельные вычисления в Европе и Америке были поддержаны в широких масштабах. Например, за последние 10 лет в Европе в распределенные и параллельные вычисления было вложено свыше 1 миллиарда евро. В настоящее время в Европе развивается проект VENUS-C, который финансируется, чтобы более детально выявить возможности использования облачных вычислений для исследований и в промышленности.[10]

Предшественниками облачных вычислений принято считать многочисленные и широко известные технологии, такие как ресурсные вычисления, grid-вычисления, виртуализация, гипервизоры и многое другое.[11] Сервис-ориентированная архитектура (Service-Oriented Architecture - SOA) также сыграла важную роль в развитии облачных вычислений. Облачные вычисления являются в некотором смысле расширением SOA-приложений. В последнее время с SOA наравне с Web 2.0 более тесно связывают технологию мэшапов (Mashup). С технической точки зрения мэшап - это web-приложение, которое объединяет в один интегрированный инструмент данные, полученные из нескольких источников. Известными примерами мэшапов являются web-сервисы, использующие картографические данные Google Maps.

Однако это далеко не единственное направление развития мэшапов. Дальнейшее совершенствование связано с методами получения агрегированной информации из сети - web-потоки (RSS, Atom).[12] Многое делается в развитии методов ускоренного разбора HTML-страниц, когда от задачи требуется не получение макета страницы, а выборка определенной информации, представленной там. Интересны эксперименты с мэшапами, которые проводятся с использованием API для доступа сразу к нескольким сайтам. В связи с этим часто упоминают об интегрированной выборке информации с сайтов Amazon, eBay, Flickr, Google, Microsoft, Yahoo, YouTube. Еще один пример - недавно открытые API для российского почтового портала Mail.ru. Подобные приложения позволяют активно использовать российский информационный контент с переходом к облачным моделям вычислений.

Основная цель предприятий и поставщиков, осваивающих облачные решения[13], заключается в том, чтобы обеспечить предприятию ИТ-инфраструктуру как услугу. Опыт, накопленный при интеграции и предоставлении корпоративных приложений как отдельных услуг, сегодня пытаются применять и при организации уровней инфраструктуры. Предполагается, что ПО и физическая инфраструктура, как и приложения в SOA, должны быть доступными для обнаружения, управляемыми и регулируемыми. Естественно, возникает необходимость создания специальных стандартов, которые описывали бы, как обнаруживать, потреблять, администрировать и регулировать услуги. Открытые стандарты имеют ключевое значение для получения максимальной мощности и гибкости от использования облачных технологий.[14] И хотя в настоящее время разработка новых стандартов еще продолжается, часть новых технологий находится на стадии активного внедрения. Например, для взаимодействия с облачными сервисами сейчас действует стандарт, предусматривающий использование браузеров на стороне клиента, которые поддерживают технологию AJAX. Их работа в автономном режиме должна соответствовать открытой спецификации HTML5.

Сегодня существует масса технологий, обеспечивающих решения на основе облачных вычислений. Если несколько лет назад их было трудно реализовать из-за отсутствия всеобъемлющих, понятных инструментов, таких как средства для упаковки и развертывания приложения в облачной инфраструктуре или привязки к инфраструктуре поставщика облака, то сейчас существуют стандарты, которые призваны обеспечить всеобщую поддержку средств виртуализации. Открытым стандартом для работы в облачной среде является OVF (Open Virtual Machine Format). Он описывает предъявляемые к поставщикам виртуальных услуг требования по упаковке и развертыванию виртуальных объектов, передаваемых клиентам облачных сервисов. Важно отметить, что OVF не накладывает ограничений на выбор гипервизора или применение определенной процессорной архитектуры. Это делает его открытым для платформ от разных поставщиков, что нашло подтверждение в полной поддержке предварительной версии OVF, оказанной практически всеми основными поставщиками средств виртуализации: Dell, HP, IBM, Microsoft, VMWare и XenSource.[15]

Облачный стандарт также не ограничивает выбор программных решений, которые могут применяться для работы. Современный набор решений называют LAMP (акроним от Linux, Apache HTTP Server, MySQL и Perl/PHP/Python); обмен данными выстраивается на технологиях XML и JSON (текстовый формат обмена данными, основанный на JavaScript), для работы с web-сервисами предусматривается использование REST (REpresentational State Transfer). Эта технология описывает подход, когда для работы с данными должен применяться достаточно узкий набор стандартных форматов. Тем самым строго ограничивается разнообразие методов взаимодействия между объектами и снижается сложность задействованных протоколов.[16]

Важными являются стандарты, обеспечивающие работу прикладных программ: поддержку коммуникационных функций на базе HTTP и XMPP (Extensible Messaging and Presence Protocol, открытый коммуникационный протокол для ПО класса Middleware, основанный на XML), средства безопасности (OAuth, OpenlD, SSL/TLS) и агрегирования при передаче данных (Atom).

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

Для групп разработчиков, помимо готовой среды исполнения, облако дает еще одно преимущество: оно может предложить такую разновидность SaaS, как инструменты как услуги. Вследствие этого интегрированная среда разработки (IDE - Integrated Development Environment) и простые редакторы кода становятся хостируемыми программами, доступными любому разработчику в любое время. Это исключает потребность в локальных средах разработки и, соответственно, в лицензиях на каждую машину, что, несомненно, удобно.

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

Как уже отмечалось ранее, слабым местом облачных технологий является безопасность информации. До сих пор стандартизация в этой области отсутствует. Это привело к тому, что каждый разработчик облачной платформы выбирает сегодня собственную модель обеспечения безопасности. Например, для Amazon EC2 и Eucalyptus (решение Open Source с целью создания частного облака) применяются пары из сертификатов X.509 и персональных ключей для аутентификации; в Google App Engine используется предварительная аккредитация через Google Accounts.

В результате возникшей разнородности пока наблюдаются трудности при обеспечении взаимодействия решений, построенных в разных облачных платформах. Одновременно это сдерживает внедрение новых функций защиты. Необходимость решения этих вопросов послужила причиной для создания в 2010 году рабочей группы Open Cloud Computing Interface (OCCI) Working Group, которая занимается разработкой стандартов в этой области. Сейчас ее деятельность затрагивает также выпуск стандартизированного набора допустимых операций, а также предоставление полной спецификации на процедуры аутентификации с применением стандартных для HTTP механизмов и средств шифрования на базе криптографических протоколов SSL/TLS.[17]

Таким образом, можно выделить четыре направления, которые необходимо развивать для обеспечения безопасности построения облачного ЦОД:

- безопасное хранение данных в облачных хранилищах;

- безопасное исполнение заданий;

- безопасная передача данных;

- безопасный доступ к данным.

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

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

2. Особенности развертывания облачной среды в исследовательской лаборатории

2.1. Обзор технологий внедрения и адаптации облачных сервисов

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

Сотрудничество OpenStack, начало которому положила компания Rackspace Hosting совместно с НАСА, со временем переросло в глобальное сообщество по программному обеспечению разработчиков, сотрудничающих в сфере стандартных и широкомасштабных облачных технологий на базе существующих операционных систем.[18]

Есть пять основных семейств сервисов в OpenStack:

- Nova - сервис вычисления;

- Swift - сервис хранения данных;

- Glance - сервис образов;

- Keystone - сервис авторизации;

- Horizon - UI сервис.

Базовая архитектура OpenStack представлена на рис. 2.

Рис. 2. Обобщенная архитектура OpenStack

Три элемента архитектуры взаимодействуют со всеми компонентами системы. Horizon - это графический интерфейс пользователя, который позволяет администраторам с максимальной легкостью управлять всеми проектами. Keystone осуществляет управление авторизованными пользователями, а Neutron позволяет определять сети, которые обеспечивают связи между компонентами. Nova осуществляет распределение рабочих нагрузок. Вычислительным машинам обычно требуется та или иная разновидность персистентного хранилища, которое может быть либо блочным (Cinder), либо объектным (Swift). Кроме того, Nova требуется образ для запуска экземпляра. Glance обрабатывает этот запрос и может использовать Swift в качестве внутреннего хранилища.

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

В данной главе работы рассматривается развертывание и настройка минимальной облачной инфраструктуры на платформе OpenStack. Основная задача - настроить среду для тестирования программного обеспечения исследовательской лаборатории, с возможностью размещать N виртуальных машин (ВМ) с различными операционными системами (ОС) на минимальном количестве «реальных» устройств.

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

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

В статье «Habrahabr. OpenStack - разворачиваем «руками» Kilo»[20] рассматривается процесс развертывания облачной среды OpenStack на двух ЭВМ (Controller и Compute) в следующей комплектации: Keystone, Glance, Nova, Neutron, Cinder, Horizon. Данный подход позволяет запускать множество виртуальных машин (сколько позволит оперативная память и CPU), создавать виртуальные сети, виртуальные диски и подключать их к виртуальным машинам (ВМ), вести управление и администрирование через UI сервис Horizon.

В работе «Установка и базовая настройка OpenStack»[21] предложена технология создания OpenStack системы «все-в-одном», которая в дальнейшем может быть расширена за счет создания дополнительных нодов для сервера вычислений - nova-compute и сервера хранения данных - Swift.

В работе «Реализация облачного хранилища с OpenStack Swift»[22] рассматривается технология реализации облачного хранилища, которая преобразует набор несвязных серверов в масштабируемую, долговечную, простую в управлении систему хранения на базе OpenStack Swift.

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

2.2. Описание структуры облачной вычислительной среды

Для решения поставленной задачи были использованы три вычислительные машины (ВМ): Server1, Server2 и Clientl. ВМ Serverl предназначена для запуска всех компонент системы, а именно: Nova, Glance, Swift, Keystone и Horizon (OpenStack Dashboard). ВМ Server2 предназначена для запуска только nova-compute. При установке используется особенность среды OpenStack, связанная с отсутствием у компонентов общей политики прямого взаимодействия, каждый компонент или группа компонентов может быть установлена на любом сервере. ВМ Client1 - это необязательный компонент. В нашем случае, он используется для комплектации образов, в качестве клиента к веб-интерфейсу и запускает команды OpenStack для управления инфраструктурой. Наличие этого клиента гарантирует, что пользователям не нужно вмешиваться в работу сервера, для задач таких как комплектация.

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

Рис. 3. Обобщенная структура облачной вычислительной среды

В качестве операционной системы (ОС) для Server1 и Server2 была выбрана Ubuntu Server, так как данная ОС распространяется бесплатно, обладает высокой стабильностью, производительностью и безопасностью. При установке необходимо выбрать только OpeSSH-Server (свободно распространяемая версия семейства серверных инструментов для удаленного управления компьютерами и передачи файлов с использованием протокола безопасной оболочки (SSH)). Для Client1 была выбрана базовая версия операционной системы Ubuntu Desktop, которая также является бесплатной, высокопроизводительной ОС на базе ОС семейства Linux. Выбор ОС, построенных на архитектуре общего ядра Linux, позволит значительно упростить процесс интеграции и взаимодействия систем в дальнейшем.

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

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

На рис. 4 изображены три ЭВМ, используемые в системе. В качестве атрибутов указаны версии ОС. На диаграмме также показано, на какие ЭВМ установлены конкретные модули OpenStack и другие необходимые программные пакеты.

Как видно из рис. 4, все ЭВМ содержат NTP-сервер. Он обеспечивает синхронизацию времени для всех компонентов OpenStack. Также на Server1 и Server2 установлен программный пакет Bridge-utils, необходимый для поддержки сетевых мостов.

Рис. 4. Диаграмма классов развернутой облачной среды

На диаграмме отображено, что база данных MySQL устанавливается только на Server1. При этом для модулей Nova, Glance и Keystone создана отдельная база данных.

Модуль Keystone включает только Server1. Keystone предоставляет идентификацию и службу политики доступа для всех компонентов в семействе OpenStack. Это реализуется его собственным RETS основанным на API (API Идентификации). Модуль Keystone предоставляет аутентификацию и авторизацию для компонентов Swift, Glance и Nova. Аутентификация подлинности проверяет, что запрос действительно пришел от того, кто на самом деле это делает. Авторизация проверяет, действительно ли авторизованный пользователь имеет доступ к сервисам, которые запрашивает.

Модуль Glance, как и Keystone включает только Server1. Glance это служба образа OpenStack. Обеспечивает отображение и восстановление системы для образа виртуальной машины.

Nova - это контроллер вычислительной фабрики для облака OpenStack. Все мероприятия, необходимые для поддержки жизненного цикла событий в OpenStack облаке обрабатываются Nova. Это делает платформа управления Nova, которая управляет вычислительными, сетевыми и авторизационными ресурсами. Но Nova не обеспечивает возможности виртуализации сама по себе, вместо этого она использует Libvirt API для взаимодействия с поддерживаемыми гипервизорами. Nova раскрывает все свои возможности через API веб-сервисы, совместимые с EC2 API веб-сервисами от Amazon.

Как видно из диаграммы (рис. 4), Nova состоит из 4 компонентов. Причем Server1 включает все компоненты, а Server2 только Nova- compute. Рассмотрим каждый компонент.

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

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

Nova-network это сетевой контроллер, он взаимодействует с сетевой конфигурацией хоста. Nova-network совершает такие операции как выделение IP адресов, настройки VLAN для проектов, реализация групп безопасности и настройка сетей.[23]

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

Swift является инфраструктурой хранения данных, обеспечивает распределение, в конечном счете соответствует виртуальному объекту хранения данных для OpenStack. Swift аналогичен веб-сервису Amazon - Simple Storage Service. Swift способен хранить миллиарды объектов, распределенных по нодам. Swift имеет встроенную избыточность и отказоустойчивость управления, а также способность архивирования и потокового медиа.[24] Это существенно масштабируемая с точки зрения размера (в несколько петабайт) и объема (количества объектов) система. На диаграмме видно, что компоненты Swift устанавливаются не только на Server1, но и на Client1.

OpenStack dashboard это административный веб-интерфейс. Модуль Horizon основан на dashboard, который может быть использован для управления и администрирования служб OpenStack. Он может быть использован для управления событиями и образами, созданием пары ключей, подключения томов к событиям, управлением контейнерами Swift и т.д. Части из них, dashboard даже дает доступ пользователю к консоли событий и может соединяться с событиями посредством VNC. Как видно на диаграмме классов, OpenStack dashboard включает только Server1.

В Client1 включено четыре программных пакета Swift, Pxthon-novaclient, Glance-client и Qemu-Kvm. Swift был рассмотрен выше. Qemu- Kvm это программное обеспечение для эмуляции аппаратного обеспечения и виртуализации. Позволяет ОС и ПО спроектированные для одной аппаратной архитектуры (например, ARM) выполнять на другой (например, PC) как отдельный процесс. А Pxthon-novaclient и Glance-client это клиентские компоненты модулей Nova и Glance соответственно.

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

2.3. Информационная технология внедрения и адаптации облачных сервисов на примере открытой среды OpenStack

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

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

Последовательность установки всех компонентов представлена в виде схемы на рис. 5.

Установка дополнительных пакетов.

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

Для обеспечения поддержки мостов для Server1 и Server2 из стандартных репозиториев OS Ubuntu необходимо установить пакет bridge- utils. После этого можно задать настройки сети и перезапустить сеть.

Рис. 5. Схема последовательности установки компонентов OpenStack

Время для всех компонентов OpenStack должно быть синхронизировано. Для этого на все ЭВМ следует установить пакет NTP. При этом Server1 настроим как NTP сервер. Если соединение с Интернет падает, NTP сервер использует свои собственные аппаратные часы как резерв.

Далее следует установить пакеты mysql-server и python-mysqldb и создадим MySQL базы данных для использования с nova, glance и keystone. Также создадим для них пользователей и предоставим привилегии для созданных баз данных.

Установка и настройка модуля Keystone

Первый модуль OpenStack, который необходимо установить это Keystone для Server1. Он представляет собой сервис идентификации используемый OpenStack. Для его работы следует установить пакеты Keystone, python- keystone и python-keystonclient. python-keystone и python-keystonclient - библиотека компонентов и API-клиент для OpenStack системы идентификации, разработанные на языке Python. Далее в файлах конфигурации следует указать базу данных MySQL и перезагрузить Keystone.

Настройка Keystone заключается в создании арендаторов admin и service, пользователей admin, nova, glance и swift, а также ролей admin и member. После этого добавляем роли для пользователей, которые были созданы и создаем соответствующие сервисы, через которые пользователи смогут аутентифицироваться. Настройка Keystone завершается созданием конечных точек для каждого из сервисов, которые были созданы.

Установка и настройка модуля Glance

Модуль Glance состоит из следующих программных пакетов: glance, glance-api, glance-client, glance-common, glance-registry и python-glance. Glance устанавливается на Server1. По умолчанию Glance использует базу данных SQLite, для работы с MySQL следует указать ее в файлах конфигураций, кроме этого в настройках необходимо также указать Keystone для аутентификации.

На Client1 необходимо установить программный пакет glance-client. Этот пакет не требует особых настроек.

Установка и настройка модуля Nova

Модуль Nova включает в себя наибольшее число программных пакетов: nova-api, nova-cert, nova-compute, nova-compute-kvm, nova-doc, nova-network, nova-objectstore, nova-scheduler, nova-volume, rabbitmq-server, novnc, nova-consoleauth. На Server1 необходимо установить все эти пакеты, а на Server2 только nova-compute. Также на Client1 необходимо установить клиентскую часть Nova, представленную пакетом python-novaclient. В файлах конфигурациях Nova указываются все параметры сети. На Server1 необходимо создать новый физический том и добавить его в группу томов nova-volumes. Средствами пакета nova-manage указываем диапазон IP адресов и перезапустим службы Nova.

Установка пакета openstack-dashboard

Для работы модуля Horizon достаточно установить программный пакет openstack-dashboard и перезапуститесь веб-сервер apache2.

Установка и настройка модуля Swift

Модуль Swift состоит из следующих программных пакетов: swift, swift-proxy, swift-account, swift-container, swift-object. Полностью Swift устанавливается только на Server1, а на Client1 только пакет swift. Настройка потребуется только для Server 1.

Следует создать файл, заполненный нулями для использования как устройства loop для хранилища бэкэнда Swift. В Ubuntu работа с образами дисков осуществляется через так называемые петлевые (loop) устройства. Образ привязывается к loop-устройству, после этого система может работать с этим устройством, как с обычными блочными устройствами. Необходимо использовать команду копирования диска для создания файла, который называется swift-disk, и выделенного миллиона 1KiB блоков (976,56Мб) к нему. Для этого файла создается точка монтирования. Далее перед монтированием бэкэнда, требуется создать несколько узлов, которые используются как устройства хранения, установить владельца пользователя ‘swift’ и группу.

Далее необходимо настроить компонент Rsync. Он несет ответственность за сохранение объекта реплики, применяется в различных swift-сервисах для обеспечения согласованности объектов и выполнения операций обновления. Компонент Rsync используется для всех узлов хранения. Также необходимо настроить прокси-сервер. Он берет на себя ответственность за аутентификацию пользователя. Во время аутентификации проверяется, что запрос пришел действительно от того, кто его посылал. Во время авторизации проверяется, кто имеет доступ к ресурсам, которые запрашиваются. Авторизация осуществляется идентичными сервисами как Keystone.

На этом настройка Swift не заканчивается. Важным компонентом Swift является Ring. Он содержит информацию о физическом расположении объектов, их реплик и устройств. Необходимо создать builder ring соответствующего службы объекта, службы контейнера и службы аккаунта. После этого добавляются зоны и баланс rings.

Завершение установки OpenStack

После настройки Swift необходимо установить программный пакет qemu-kvm для Client1. Этот пакет не требует особых настроек.

В случае если все настройки были проведены правильно, на Client1 будут выполняться Nova и Glance команды.

Заключение

Завершая исследование, можно сформулировать основные выводы.

1. В первой главе работы проанализированы общие аспекты облачных технологий. Сделан вывод, что облачные технологии (облачные вычисления CloudComputing) - это технологии распределённой обработки данных, в которой компьютерные ресурсы и мощности предоставляются пользователю как Интернет-сервисы.

Облачные сервисы позволяют:

- организовать хранение информации различного вида;

- предоставить инструменты для обработки данных;

- помочь в организации совместной деятельности групп пользователей и многое другое.

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

2. В облачных технологиях выделяют следующие три основные модели:

- инфраструктура как сервис (IaaS),

- платформа как сервис (PaaS),

- программное обеспечение как сервис (SaaS).

Существует огромное количество поставщиков, предлагающих облачные решения (исчисляется сотнями), и количество новых облачных предложений продолжает увеличиваться. При этом основными поставщиками облачной инфраструктуры считаются Amazon, Google и Microsoft.

3. Среди недостатков (слабых сторон) облачных технологий одним из основных являются вопросы обеспечения безопасности информации. До сих пор стандартизация в этой области отсутствует. Это привело к тому, что каждый разработчик облачной платформы выбирает сегодня собственную модель обеспечения безопасности. В результате возникшей разнородности пока наблюдаются трудности при обеспечении взаимодействия решений, построенных в разных облачных платформах. Одновременно это сдерживает внедрение новых функций защиты.

В работе выделены четыре направления, которые необходимо развивать для обеспечения безопасности построения облачного ЦОД:

- безопасное хранение данных в облачных хранилищах;

- безопасное исполнение заданий;

- безопасная передача данных;

- безопасный доступ к данным.

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

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

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

Список использованных источников

Монографии и периодические издания

  1. Батура Т.В., Мурзин Ф.А., Семич Д.Ф. Облачные технологии: основные понятия, задачи и тенденции развития // Программные продукты, системы и алгоритмы. - 2014. - № 1. - С. 22-45.
  2. Гребнев Е. Облачные сервисы. Взгляд из России. Под ред. Е. Гребнева. - М.: CNews, 2011. - 282 с.
  3. Кузьмина М.В., Пивоварова Т.С., Чупраков Н.И. Облачные технологии для дистанционного и медиаобразования / Учебно-методическое пособие. - Киров: Изд-во. КОГОКУ ДПО (ПК) «Институт развития образования Кировской области», 2013. - 80 с.
  4. Лисичкина Е.А. Возможности облачных сервисов для организации проектной деятельности студентов // Педагогика и современность. - 2015. - № 3 (17). - С. 25-29.
  5. Попов Б.Н., Капков И.С. Web-сервисы в составе геоинформационной инфраструктуры облачных провайдеров // Информационные технологии и системы: управление, экономика, транспорт, право. - 2013. - № 2-2 (11). - С. 102-105.
  6. Шевченко В.И., Селькин А.А., Рыбалкин Е.П., Геращенко А.А. Информационная технология развертывания облачной среды OpenStack в исследовательской лаборатории // Информационные технологии и управление. - 2015. - Т. 1. - № 1. - С. 138-145.

Электронные ресурсы

  1. Гребнев E. Облака: от старых технологий к широким перспективам. [Электронный ресурс]. URL: http://cloud.cnews.ru/reviews/index.shtml72011/05 /20/4409181 (дата обращения: 29.12.2016).
  2. Знакомство с OpenStack: архитектура, функции, взаимодействия [Электронный ресурс] // IBM developerWorks. [Офиц. сайт]. URL: https://www.ibm.com/developerworks/ru/library/cl-openstack-overview/ (дата обращения: 17.12.2016) .
  3. Медведев А. Облачные технологии: тенденции развития, примеры исполнения. [Электронный ресурс]. URL: http://www.cta.ru/cms/fZ448405.pdf (дата обращения: 29.12.2016)
  4. Мурзин Ф.А., Семич Д.Ф., Батура Т.Ф. Облачные технологии: основные модели, приложения, концепции и тенденции развития. [Электронный ресурс]. URL: http://www.swsys.ru/index.php?id=3862 &page=article. (дата обращения: 04.01.2017)
  5. Новиков И. Облачные вычисления: на пороге перемен. [Электронный ресурс]. URL: http://www.pcmag.ru/solutions/subdetail.php?ID= 44441&SUB PAGE=1 (дата обращения: 29.12.2016).
  6. Облачные вычисления (Cloud computing). [Электронный ресурс]. URL: http://www.tadviser.ru/index.php (дата обращения: 29.12.2016).
  7. Реализация облачного хранилища с OpenStack Swift. [Электронный ресурс] // Модуль [Офиц. сайт]. URL: http://support.mdl.ru/ Implementing.Cloud.Storage.with.OpenStack.Swift/ToC.ht (дата обращения: 20.12.2016).
  8. Установка и базовая настройка OpenStack [Электронный ресурс] // Глазами непрофессионала. Пол ИТ, например. [Офиц. сайт]. URL: http://notes.ash.lt/установка-и-базовая-настройка-openstack/ (дата обращения: 20.12.2016) .
  9. Что такое OpenStack? [Электронный ресурс] // Сайт проекта «OpenStack». URL: http://openstack.ru/about/ (дата обращения: 04.01.2017)
  10. Amrhein D., Quint S. Cloud computing for the enterprise: Part 1: Capturing the cloud. URL: http://www.ibm.com/developerworks/websphere/ techiournal/0904 amrhein/0904 amrhein.html (дата обращения: 29.12.2016).
  11. Habrahabr. OpenStack - разворачиваем «руками» Kilo [Электронный ресурс] // Интернет публикации [Офиц. сайт]. URL: http://habrahabr.ru/post/262049/ (дата обращения: 20.12.2016).

Приложение 1

Рис. 1. Услуги, предоставляемые облачными сервисами

  1. Попов Б.Н., Капков И.С. Web-сервисы в составе геоинформационной инфраструктуры облачных провайдеров // Информационные технологии и системы: управление, экономика, транспорт, право. - 2013. - № 2-2 (11). - С. 102.

  2. Гребнев Е. Облачные сервисы. Взгляд из России. Под ред. Е. Гребнева. - М.: CNews, 2011. С. 7.

  3. Кузьмина М.В., Пивоварова Т.С., Чупраков Н.И. Облачные технологии для дистанционного и медиаобразования / Учебно-методическое пособие. - Киров: Изд-во. КОГОКУ ДПО (ПК) «Институт развития образования Кировской области», 2013. С. 15.

  4. Мурзин Ф.А., Семич Д.Ф., Батура Т.Ф. Облачные технологии: основные модели, приложения, концепции и тенденции развития. [Электронный ресурс]. - URL: http://www.swsys.ru/index.php?id=3862&page=article. (дата обращения: 04.01.2017)

  5. Облачные вычисления (Cloud computing). [Электронный ресурс]. URL: http://www.tadviser.ru/index.php (дата обращения: 29.12.2016).

  6. Батура Т.В., Мурзин Ф.А., Семич Д.Ф. Облачные технологии: основные понятия, задачи и тенденции развития // Программные продукты, системы и алгоритмы. - 2014. - № 1. - С. 26.

  7. Попов Б.Н., Капков И.С. Web-сервисы в составе геоинформационной инфраструктуры облачных провайдеров // Информационные технологии и системы: управление, экономика, транспорт, право. - 2013. - № 2-2 (11). - С. 102.

  8. С. 102-103.

  9. Попов Б.Н., Капков И.С. Web-сервисы в составе геоинформационной инфраструктуры облачных провайдеров // Информационные технологии и системы: управление, экономика, транспорт, право. - 2013. - № 2-2 (11). - С. 103.

  10. Батура Т.В., Мурзин Ф.А., Семич Д.Ф. Облачные технологии: основные понятия, задачи и тенденции развития // Программные продукты, системы и алгоритмы. - 2014. - № 1. - С. 32.

  11. Гребнев E. Облака: от старых технологий к широким перспективам. [Электронный ресурс]. URL: http://cloud.cnews.ru/reviews/index.shtml72011/05/20/4409181 (дата обращения: 29.12.2016).

  12. Новиков И. Облачные вычисления: на пороге перемен. [Электронный ресурс]. URL: http://www.pcmag.ru/solutions/subdetail.php?ID=44441&SUB PAGE=1 (дата обращения: 29.12.2016).

  13. Amrhein D., Quint S. Cloud computing for the enterprise: Part 1: Capturing the cloud. URL: http://www.ibm. com/developerworks/websphere/techiournal/0904 amrhein/0904 amrhein.html (дата обращения: 29.12.2016)

  14. Там же.

  15. Батура Т.В., Мурзин Ф.А., Семич Д.Ф. Облачные технологии: основные понятия, задачи и тенденции развития // Программные продукты, системы и алгоритмы. - 2014. - № 1. - С. 33.

  16. Новиков И. Облачные вычисления: на пороге перемен. [Электронный ресурс]. URL: http://www.pcmag.ru/solutions/subdetail.php?ID=44441&SUB PAGE=1 (дата обращения: 29.12.2016).

  17. Батура Т.В., Мурзин Ф.А., Семич Д.Ф. Облачные технологии: основные понятия, задачи и тенденции развития // Программные продукты, системы и алгоритмы. - 2014. - № 1. - С. 34-35.

  18. Что такое OpenStack? [Электронный ресурс] // Сайт проекта «OpenStack». URL: http://openstack.ru/about/ (дата обращения: 04.01.2017)

  19. Знакомство с OpenStack: архитектура, функции, взаимодействия [Электронный ресурс] // IBM developerWorks. [Офиц. сайт]. URL: https://www.ibm.com/developerworks/ru/library/cl-openstack-overview/ (дата обращения: 17.12.2016)

  20. Habrahabr. OpenStack - разворачиваем «руками» Kilo [Электронный ресурс] // Интернет публикации [Офиц. сайт]. URL: http://habrahabr.ru/post/262049/ (дата обращения: 20.12.2016).

  21. Установка и базовая настройка OpenStack [Электронный ресурс] // Глазами непрофессионала. Пол ИТ, например. [Офиц. сайт]. URL: http://notes.ash.lt/установка-и-базовая- настройка-openstack/ (дата обращения:

    20.12.2016)

  22. Реализация облачного хранилища с OpenStack Swift. [Электронный ресурс] // Модуль [Офиц. сайт]. URL: http://support.mdl.ru/Implementing.Cloud.Storage.with.OpenStack.Swift/ToC. htm (дата обращения: 20.12.2016).

  23. Шевченко В.И., Селькин А.А., Рыбалкин Е.П., Геращенко А.А. Информационная технология развертывания облачной среды OpenStack в исследовательской лаборатории // Информационные технологии и управление. - 2015. - Т. 1. - № 1. - С. 142.

  24. Шевченко В.И., Селькин А.А., Рыбалкин Е.П., Геращенко А.А. Информационная технология развертывания облачной среды OpenStack в исследовательской лаборатории // Информационные технологии и управление. - 2015. - Т. 1. - № 1. - С. 143.