Разработка прототипа частного облака с помощью установщика DevStack

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 01.09.2017
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

АННОТАЦИЯ

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

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

Работа состоит из 6 частей: обзора облачных вычислений, сравнительного анализа конкурентов, рассмотрения архитектуры OpenStack, изучения структуры DevStack, установки и настройки OpenStack.

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

ABSTRACT

This paper considers the cloud computing and OpenStack system review as well as its proper installation and configuration. The study is conducted over the Ubuntu system powered by server. The unique methodology based on the DevStack script installation was applied.

Results are presented by the fully working OpenStack infrastructure with no need in further configuring.

Project consists of 6 parts: cloud computing review, existing analogues review, OpenStack architecture analysis, DevStack structure review and OpenStack proper installation and configuration.

The results are reported via text view using tables and illustrations. The appendix includes screenshots of the infrastructure created.

ОГЛАВЛЕНИЕ

  • Введение
  • Актуальность работы
  • Цели и задачи работы
  • 1. Облачные вычисления
    • 1.1 Достоинства облачных вычислений
    • 1.2 Недостатки облачных вычислений
    • 1.3 Типы облачных вычислений
      • 1.3.1 Публичное облако
      • 1.3.2 Частное облако
      • 1.3.3 Гибридное облако
    • 1.4 Модели обслуживания
      • 1.4.1 Инфраструктура как услуга (IaaS)
      • 1.4.2 Платформа как услуга (PaaS)
      • 1.4.3 Программное обеспечение как услуга (SaaS)
    • 1.5 Архитектура облачных вычислений
    • 1.6 Протоколы
  • 2. Сравнительный анализ конкурентных решений
    • 2.1 Microsoft Private Cloud
    • 2.2 OpenStack Private Cloud
  • 3. Архитектура OpenStack
    • 3.1 Основные компоненты каждого сервиса
      • 3.1.1 Horizon - Dashboard
      • 3.1.2 Nova - Compute
      • 3.1.3 Swift - Object Storage
      • 3.1.4 Glance - Image Store
      • 3.1.5 Keystone - Identity
      • 3.1.6 Neutron - Network
      • 3.1.7 Cinder - Block Storage
    • 3.2 Релизы OpenStack
  • 4. Изучение структуры DevStack
  • 5. Создание инфраструктуры OpenStack
  • 6. Детальная настройка инфраструктуры OpenStack
    • 6.1 Настройка сети
    • 6.2 Загрузка образа
    • 6.3 Создание инстанса
    • 6.4 Прикрепление томов
    • 6.5 Перезапуск Openstack
    • 6.6 Готовая инфраструктура
  • Заключение
  • Список использованных источников
  • Приложение А. Коммутация между инстансами
  • Приложение Б. Доступ в Интернет
  • Приложение В. Тома для инстансов
  • Приложение Г. IP и топология сети
  • Приложение Д. Пользователи и проекты

ВВЕДЕНИЕ

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

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

В облачной вычислительной системе наблюдается значительный сдвиг рабочей нагрузки. Локальным компьютерам больше не требуется выполнять весь тяжелый труд, когда речь идет о запуске приложений или выполнении тяжелых задач. Вместо этого сеть компьютеров, которые составляют облако, обрабатывает запросы. Требования к аппаратному и программному обеспечению на стороне пользователя уменьшаются. Единственное, что должен иметь пользовательский компьютер - это программное обеспечение интерфейса облачной вычислительной системы, которое может быть столь же простым, как веб-браузер, а сеть облака позаботится обо всем остальном [1].

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

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

Актуальность работы

Технология OpenStack является ярким представителем развивающейся облачной индустрии. Это совокупность открытого программного обеспечения для построения и управления инфраструктурных облачных сервисов и облачных хранилищ, при том как публичных, так и частных. Тысячи людей и компаний в лице Red Hat, Dell, Rackspace, IBM создали OpenStack. Они работают сообща с целью сделать OpenStack самой стабильной и защищенной платформой на рынке.

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

Цели и задачи работы

Цель работы: создать прототип частного облака на базе OpenStack посредством установщика DevStack.

Задачи:

· Рассмотреть аналоги OpenStack;

· Изучить структуру OpenStack;

· Изучить структуру скрипта DevStack;

· Создать частное облако на основе OpenStack;

· Составить инструкцию по установке и настройке инфраструктуры OpenStack.

1. ОБЛАЧНЫЕ ВЫЧИСЛЕНИЯ

Модель «Облачные вычисления» описывает сценарий, согласно которому вычислительный ресурс поставляется как служба по сетевому соединению, обычно в Интернете. Облачные вычисления основаны на совместном использовании пула физических и/или виртуальных ресурсов, вместо развертывания локального или персонального оборудования и программного обеспечения. Это в некоторой степени синоним термина «utility computing» (модель, согласно которой вычислительные ресурсы предоставляются по принципу коммунальных услуг, в результате чего наблюдается высокая эффективность), поскольку пользователи могут задействовать ресурсы вычислительного ресурса, а не управлять оборудованием, необходимым для его генерации [2].

1.1 Достоинства облачных вычислений

· Масштабируемость. Автоматическое увеличение или уменьшение ресурсов по мере необходимости, что обеспечивает соответствие уровня ресурса спросу.

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

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

· Надежность. Службы размещаются на нескольких серверах, поэтому отдельно взятые отказы системы не влияют на работу конкретной службы. Возможно расположение в специально оборудованных ЦОД с резервными источниками питания, охраной и защитой от DDOS-атак.

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

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

1.2 Недостатки облачных вычислений

· Высокая цена оборудования (при условии отказа от аренды). Для создания своего облака компании придется потратить немало средств, что может отрицательно сказаться на ее финансовом положении.

· Постоянное сетевое соединение. Для полного функционирования облака необходим выход в Интернет, однако в эру 4G/4G+ Интернета это не такой большой недостаток.

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

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

· Безопасность. «Облако» является достаточно защищенной системой, но, при проникновении туда злоумышленника, он получает доступ к полному хранилищу данных. Также при использовании ядер стандартных ОС (Linux, Windows) есть возможность использовать вирусы для изъятия некоторой важной информации или нанесения вреда системе.

1.3 Типы облачных вычислений

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

1.3.1 Публичное облако

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

1.3.2 Частное облако

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

1.3.3 Гибридное облако

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

1.4 Модели обслуживания

Как правило, существует 3 модели облачных вычислений, которые описывают предлагаемую услугу:

· программное обеспечение как услуга (SaaS);

· платформа как услуга (PaaS);

· инфраструктура как услуга (IaaS).

1.4.1 Инфраструктура как услуга (IaaS)

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

1.4.2 Платформа как услуга (PaaS)

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

1.4.3 Программное обеспечение как услуга (SaaS)

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

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

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

· Front-end (абстрактный интерфейс взаимодействия с программно-аппаратной частью);

· Back-end (основа программно-аппаратной части).

Front-end и back-end связаны друг с другом через виртуальную сеть или Интернет. Существуют и другие компоненты, такие как Middleware (связующее программное обеспечение), Cloud Resources (ресурсы облака) и т.д., которые являются частью архитектуры облачных вычислений.

Front-end - это сторона, которая видна клиенту, заказчику или пользователю. Он включает компьютерную систему или сеть клиента, которая используется для доступа к облачной системе. Различные облачные вычислительные системы имеют разные пользовательские интерфейсы. Для почтовых программ поддержка обеспечивается из веб-браузеров, таких как Firefox, Chrome и Internet Explorer.

Back-end - сторона, используемая поставщиком услуг. Она включает в себя различные серверы, компьютеры, системы хранения данных и виртуальные машины, которые вместе составляют облако вычислительных услуг. Эта система может включать в себя различные типы компьютерных программ. Каждое приложение в этой системе управляется собственным выделенным сервером. У back-end есть ряд обязанностей перед клиентом:

· Обеспечение механизмов безопасности, управления трафиком и протоколов;

· Применение протоколов, которые соединяют компьютеры в сети для связи.

1.6 Протоколы

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

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

2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ КОНКУРЕНТНЫХ РЕШЕНИЙ

2.1 Microsoft Private Cloud

В то время как Microsoft немного опоздала к участию на облачной арене, софтверный гигант потратил значительные ресурсы на то, чтобы проанализировать опыт и избежать некоторых ошибок, допущенных другими вендорами в этой сфере. Частное облачное программное обеспечение Microsoft является частью предложения System Center 2012 R2. System Center включает в себя несколько продуктов под одним куполом, включая диспетчер виртуальных машин, менеджер защиты данных, защиту Endpoint и Менеджер операций.

Microsoft System Center поддерживает и централизованно управляет хостами Windows 2012 Hyper-V вместе со сторонними гипервизорами от Citrix и VMware; KVM - заметное исключение, которое не поддерживается в настоящий момент. Хотя гипервизоры агностичны, нынешнее отсутствие активных сторонних сетевых поставщиков, таких как Cisco, обращает на себя внимание и может быть критичным для некоторых клиентов.

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

Могут присутствовать риски безопасности на основе существующих уязвимостей Windows Server.

2.2 OpenStack Private Cloud

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

OpenStack можно использовать с VMware ESXi, Microsoft Hyper-V или Citrix Xen, однако чаще всего он используется с KVM, который также является поставляется с открытым исходным кодом. С большим числом контрибьюторов в лице больших компаний, OpenStack API будет активнее внедряться.

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

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

2.3 Amazon Web Services

Amazon Web Services (AWS) - это всеобъемлющая, развивающаяся платформа для облачных вычислений, предоставляемая Amazon.com. Веб-службы иногда называются облачными службами или удаленными вычислительными службами. Первые предложения AWS были запущены в 2006 году для предоставления онлайн-услуг для веб-сайтов и клиентских приложений.

Растущая коллекция AWS предлагает более трех десятков различных услуг, включая:

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

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

· База данных Dynamo (также известная как DynamoDB или DDB) - полностью управляемая служба базы данных NoSQL, известная своей низкой задержкой и простой масштабируемостью.

· Elastic Compute Cloud, которая позволяет бизнес-абонентам запускать прикладные программы и может служить практически неограниченным набором виртуальных машин (VM).

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

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

· Simple Storage Service (S3) - масштабируемая высокоскоростная недорогая служба, предназначенная для оперативного резервного копирования и архивирования данных и прикладных программ.

Обобщенное сравнение представлено в таблице 1.

Таблица 1.

Сравнительный анализ конкурентов

Microsoft Private Cloud

OpenStack Private Cloud

AWS

Совместимость

Hyper-V, VMware ESXi, Citrix Xen

KVM, гипервизоры VMware. Немного Citrix Xen и Microsoft Hyper-V

Xen

Цена

Достаточно дорого

Бесплатно

Зависит от пакета услуг

Сложность

System Center содержит много схожих продуктов, поэтому установка и обновление может быть затруднительным

Достаточно легко начать работу при помощи сообщества

Легко начать работу

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

Active Directory / IIS фреймворки

Домены безопасности. Сторонний LDAP сервер может заниматься аутентификацией; двухфакторная аутентификация присутствует

TLS шифрование

Файрволл

Защита от DDoS атак

Итог

Хорошее решение для бизнеса. Высокая цена, System Center огромен по сравнению с другими предложениями.

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

Хорошее решение для предприятия. Цена высока, но зависит от пакета услуг. Широкий выбор сервисов.

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

3. АРХИТЕКТУРА OPENSTACK

Чтобы избежать использования проприетарного программного обеспечения при организации облачных систем, был запущен Open Source проект в 2010 году под названием OpenStack. Его цель - создание облачное операционной системы, которая в состоянии управлять огромными объемами вычислительных и сетевых ресурсов, а также ресурсами хранения. Управление же всеми ресурсами осуществляется через консоль администратора, а рядовые пользователи могут получить доступ к ним через интуитивно понятный Web-интерфейс.

OpenStack является своеобразным Linux для облачных систем, то есть это облачная операционная система с открытым исходным кодом, которая может работать на оборудовании любого производителя. Модульность - основное ее достоинство. Каждый модуль - отдельный проект, который разрабатывается независимо. Взаимодействие между модулями осуществляется через Advanced Message Queuing Protocol (протокол, осуществляющий передачу сообщений между компонентами системы) и регулируется RabbitMQ (платформа, обеспечивающая обмен сообщений между компонентами программной системы).

3.1 Основные компоненты каждого сервиса

3.1.1 Horizon - Dashboard

Web-интерфейс для управления инфраструктурой:

· Является веб-приложением Django.

· Он реализован через mod_wsgi в Apache.

· Mod_wsgi реализует простой в использовании модуль Apache, способный разместить любое приложение, разработанное на Python, которое поддерживает интерфейс WSGI (Web Server Gateway Interface, стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером).

· Код разделен на модули для упрощения настройки на разных сайтах.

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

· Horizon - это реализация панели мониторинга, а не самой панели мониторинга. Различные реализации могут быть созданы в соответствии с потребностями пользователя.

3.1.2 Nova - Compute

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

Основные процессы:

· Клиент nova-api принимает и отвечает на вызовы пользователей.

· Управление виртуализацией осуществляется nova-compute. Он создает/завершает инстансы виртуальных машин через выбранные гипервизорные API.

· Хранилище контролируется nova-volume (теперь заменена на Cinder). Управляет созданием, подключением и отсоединением постоянных томов для инстансов compute.

· Управление сетью осуществляется nova-network (теперь она заменена на Neutron). Принимает сетевые задачи и затем управляет сетью.

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

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

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

· Nova-consoleauth, nova-novncproxy, nova-console позволяют конечным пользователям получать доступ к своим виртуальным инстансам через прокси-сервер.

· При запуске инстанса должен быть выбран набор виртуальных ресурсов, известных как flavor (набор ресурсов). Могут быть добавлены дополнительные ресурсы, такие как постоянное хранилище и публичный IP-адрес.

3.1.3 Swift - Object Storage

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

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

Основные процессы:

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

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

· Контейнерные серверы управляют отображением контейнеров и папок в службе хранилища объектов.

· Объектные серверы управляют фактическими объектами, файлами на узлах хранения.

3.1.4 Glance - Image Store

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

Образы Glance могут функционировать как шаблоны для быстрого и последовательного развертывания новых серверов. Сервер API предоставляет интерфейс с полным представлением состояний (REST), с помощью которого пользователи могут отображать и извлекать образы виртуальных дисков, которые назначаются расширяемому набору серверных хранилищ, включая хранилище OpenStack Object Storage.

Пользователи могут предоставлять как частные, так и общедоступные образы для службы в различных форматах, включая VHD (Microsoft Hyper-V), VDI (VirtualBox), VMDK (VMware), qcow2 (Qemu / Kernel) и OVF (Открытый формат виртуализации). Присутствуют функции регистрации новых образов виртуальных дисков, запроса информации об общедоступных образах дисков и потоковой передачи образов виртуальных дисков.

Основные процессы:

· Glance-api принимает вызовы для поиска и хранения образов.

· Glance-registry обрабатывает и извлекает метаданные образов.

· Он имеет базу данных для хранения метаданных образов.

3.1.5 Keystone - Identity

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

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

Основные процессы:

· Keystone обрабатывает запросы API, а также обеспечивает единую точку интеграции для политики, токена и аутентификации (службы идентификации).

· Каждая функция Keystone имеет подключаемый модуль, который позволяет использовать этот сервис по-разному. Он поддерживает стандартные интерфейсы, такие как LDAP, SQL, и KVS (Key-Value Stores).

3.1.6 Neutron - Network

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

Основные процессы:

· Neutron-server принимает запросы API и направляет их к нужному плагину.

· Плагины выполняют действия, такие как подключение/отключение портов, создание сетей и подсетей и IP-адресацию.

· Он также имеет очередь сообщений для маршрутизации информации между neutron-server и различными агентами (программы, которые выполняют сбор или обработку информации в фоновом режиме).

· Он имеет базу данных для хранения состояния сети для определенных плагинов.

3.1.7 Cinder - Block Storage

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

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

Основные процессы:

· API Cinder позволяет манипулировать томами, типами томов и моментальными снимками. Cinder-api принимает запросы и маршрутизирует их в cinder-volume для совершения определенных действий [6].

· Cinder-volume реагирует на чтение или запись в базу данных cinder для поддержания состояния, взаимодействует с другими процессами (например, cinder-scheduler) через очередь сообщений и непосредственно на блочном хранилище, предоставляя аппаратное или программное обеспечение.

· Cinder-scheduler выбирает оптимальный блок данных для создания тома.

· Очереди сообщений передают информацию о маршруте между процессами Cinder.

· Включает в себя состояние томов хранилища базы данных.

Остальные модули OpenStack:

· Ceilometer (считает количество потребляемых услуг);

· Heat (оркестрация на основе шаблонов);

· Trove (создает интерфейс к реляционным и нереляционным базам данных) [7].

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

На рисунке 1 представлена архитектура OpenStack, а также связи и зависимости между его элементами.

Рис. 1 Архитектура OpenStack

3.2 Релизы OpenStack

Известные на данный момент релизы OpenStack представлены в таблице ниже.

Таблица 2.

Релизы OpenStack

Название

Статус

Дата релиза

Queens

Ожидается в будущем

Подлежит определению

Pike

В разработке

Подлежит определению

Ocata

Фаза 1 - последний релиз

2017-02-22

Newton

Фаза 2 - поддерживаемый релиз

2016-10-06

Mitaka

Фаза 3 - устаревший релиз

2016-04-07

Liberty

Конец обслуживания

2015-10-15

Kilo

Конец обслуживания

2015-04-30

Juno

Конец обслуживания

2014-10-16

Icehouse

Конец обслуживания

2014-04-17

Havana

Конец обслуживания

2013-10-17

Grizzly

Конец обслуживания

2013-04-04

Folsom

Конец обслуживания

2012-09-27

Essex

Конец обслуживания

2012-04-05

Diablo

Конец обслуживания

2011-09-22

Cactus

Не рекомендуется к использованию

2011-04-15

Bexar

Не рекомендуется к использованию

2011-02-03

Austin

Не рекомендуется к использованию

2010-10-21

Для выполнения конкретной работы был выбран релиз Ocata как наиболее релевантный и стабильный.

4. ИЗУЧЕНИЕ СТРУКТУРЫ DEVSTACK

На данный момент существует 2 способа самостоятельного развертывания системы OpenStack - это ручная установка и установка посредством скрипта DevStack. DevStack не является настолько стабильным [7], что сообщество использует его только для установки системы и ознакомления с ней. Однако передо мной стоит задача создания стабильно работающего облака при помощи установщика DevStack.

Для запуска скрипта нужен сервер под управлением Ubuntu с оперативной памятью не менее 6 ГБ, четырехъядерный процессор с частотой 2.8 ГГц и 80 ГБ свободного места на жестком диске.

Основная настройка скрипта происходит в создаваемом вручную файле «local.conf». Описание возможных параметров приведены в таблице ниже.

Таблица 3.

Параметры local.conf

Параметр

Описание

HOST_IP

IP узла, на котором будет устанавливаться OpenStack

FLAT_INTERFACE=eth0

Интерфейс с доступом к Интернету

FIXED_RANGE

Виртуальная внутренняя сеть

FIXED_NETWORK_SIZE

Размер виртуальной сети

FLOATING_RANGE

Внешняя сеть

LOGFILE

Файл с логами установки

LOGDAYS

Количество дней, в течение которого будут храниться логи

ADMIN_PASSWORD

Пароль администратора

DATABASE_PASSWORD

Пароль базы данных

RABBIT_PASSWORD

Пароль для RabbitMQ

SERVICE_PASSWORD

Сервисный пароль

REGION_NAME

Регион

LIBVIRT_TYPE

Параметр, регулирующий гипервизор

VOLUME_BACKING_FILE_SIZE

Обозначает размер виртуальных хранилищ

Q_USE_PROVIDERNET_FOR_PUBLIC

Настройка vSwitch

Q_USE_SECGROUP

ENABLE_PROJECT_VLANS

PROJECT_VLAN_RANGE

FLOATING_RANGE

Настройка параметров публичной сети

Q_FLOATING_ALLOCATION_POOL

PUBLIC_NETWORK_NAME

PUBLIC_NETWORK_GATEWAY

PUBLIC_PHYSICAL_NETWORK

PUBLIC_BRIDGE

5. СОЗДАНИЕ ИНФРАСТРУКТУРЫ OPENSTACK

· Стартовой точкой будет установка чистой Ubuntu 16.04.2 LTS (так как именно с ней обеспечена наилучшая совместимость).

· Обновим индекс пакетов и сами пакеты:

sudo apt-get update && apt-get upgrade -y

· Далее создадим пользователя с правами passwordless root:

sudo useradd -s /bin/bash -d /opt/stack -m stack

echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

· Перейдем на пользователя stack и установим git:

sudo stack

sudo apt-get install git -y

· Скачиваем стабильную версию DevStack из репозитория:

git clone https://github.com/openstack-dev/devstack.git -b stable/ocata

ocata - последняя стабильная версия на данный момент.

· Перейдем в каталог devstack и создадим файл local.conf с настройками, указанными параметрами [8]:

cd devstack

nano local.conf

[[local|localrc]]

ADMIN_PASSWORD=admin

DATABASE_PASSWORD=$ADMIN_PASSWORD

RABBIT_PASSWORD=$ADMIN_PASSWORD

SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP= 95.213.191.99

VOLUME_BACKING_FILE_SIZE=50G

Остальное настроим вручную после установки.

· Запускаем скрипт:

./stack.sh

· После его завершения скрипта будет отображен IP-адрес графического интерфейса Horizon для работы с OpenStack:

This is your host IP address: 95.213.191.99

This is your host IPv6 address: ::1

Horizon is now available at http://95.213.191.99/dashboard

Keystone is serving at http://95.213.191.99/identity/

The default users are: admin and demo

The password: admin

6. ДЕТАЛЬНАЯ НАСТРОЙКА ИНФРАСТРУКТУРЫ OPENSTACK

Для начала авторизуемся на сервере через Horizon (рисунок 1).

Рис. 2 Окно авторизации Horizon

6.1 Настройка сети

Первым делом необходимо создать роутер, соединенный с уже созданной публичной сетью (которая имеет Доступ в Интернет). Для этого нужно зайти в Project-Network-Routers и выбрать пункт Create Router, где задать его параметры:

· Router Name (имя роутера - myrouter);

· Admin State (текущая активность - UP);

· External Network (Внешняя сеть - public).

Заполним данные поля в соответствии с рисунком 3.

Рис. 3 Настройка параметров роутера

Далее необходимо создать сеть. Для этого нужно перейти в Project-Network-Networks и выбрать пункт Create Network, настроив параметры:

· Network Name (имя сети - net1);

· Subnet Name (имя подсети - subnet 1);

· Network Address (адрес сети - 10.0.0.0/24);

· DNS Name Servers (DNS-сервер - 8.8.8.8).

Сделаем вышеуказанное в соответствии с рисунком 4.

Рис. 4 Создание сети

Следующим шагом будет создание интерфейса между недавно созданным роутером и новой сетью. Для этого необходимо перейти в Project-Network-Network Topology и на созданном роутере кликнуть Add Interface:

· Subnet (подсеть - созданная ранее подсеть);

· IP Address (IP адрес интерфейса, необязательно).

Заполняем в соответствии с рисунком 5.

Рис. 5 Создание интерфейса

В результате данных манипуляций топология сети будет выглядеть как показано на рисунке 6:

Рис. 6 Топология сети

6.2 Загрузка образа

Загрузка образа осуществляется посредством Project-Compute-Images-Create Image, где указывается имя образа, его формат и, собственно, путь до образа на локальном диске в соответствии с рисунком 7:

Рис. 7 Загрузка образа

6.3 Создание инстанса

Для создания инстанса необходимо перейти в Project-Compute-Instances и выбрать Launch Instance, где нужно задать имя инстанса, загрузочную область (том, образ или снимок, количество ресурсов и сеть) в соответствии с рисунком 8:

Рис. 8 Создание инстанса

Для предоставления инстансу доступа к сети Интернет нужно выполнить следующую консольную команду (на хосте):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE,

где eth0 - интерфейс, выпускающий «наружу», в сеть Интернет.

Также необходимо привязать плавающий IP к инстансу, предварительно создав его в Project-Network-Floating IPs-Allocate IP To Project, согласно рисунку 9:

Рис. 9 Создание плавающего IP

6.4 Прикрепление томов

Для полноценного функционирование инстанса необходимо привязать к нему том. Это делается через Project-Compute-Volumes-Create Volume, где задается его размер и пространство, в котором он размещается. Затем в Project-Compute-Instances-Attach Volume to Instance для привязки тома к инстансу. Привязанные тома указаны на рисунке 10.

Рис. 10 Привязанные тома

6.5 Перезапуск Openstack

Повторный запуск OpenStack при перезагрузке системы выполняется следующим образом:

· Удаляются следы предыдущей сессии:

./unstack.sh

./clean.sh

· Также производится очистка директории, до которой скрипты не добираются:

sudo rm -rf /opt/stack/*

· Далее запускается скрипт DevStack:

./stack.sh

6.6 Готовая инфраструктура

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

ЗАКЛЮЧЕНИЕ

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

· технология облачных вычислений;

· архитектура OpenStack;

· структура DevStack;

· настройка OpenStack;

· установка OpenStack посредством DevStack;

· работа с инстансами.

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Eric Griffith "What is Cloud Computing?". URL: http://www.pcmag.com/article2/0,2817,2372163,00.asp/ (дата обращения 22.01.2017).

2. Gace Walker "Cloud computing fundamentals". URL: https://www.ibm.com/developerworks/cloud/library/cl-cloudintro/index.html?S_TACT=105AGX99&S_CMP=CP/ (дата обращения 25.01.2017).

3. John Rhoton "Discover OpenStack". Architectures, functions, and interactions. URL: https://ibm.com/developerworks/cloud/library/cl-openstack-overview/ (дата обращения 02.02.2017).

4. OpenStack Community "Keystone, the OpenStack Identity Service". URL: https://docs.openstack.org/developer/keystone/ (дата обращения 22.02.2017).

5. T. Sridhar "Cloud Computing - A Primer - The Internet Protocol Journal". URL: http://www.cisco.com/c/en/us/about/press/internet-protocol-journal/back-issues/table-contents-45/123-cloud1.html?cm_mc_uid=21078366637014897009493&cm_mc_sid_50200000=1492164528 (дата обращения 10.03.2017).

6. James Urquhart "The Wisdom of Clouds". URL: http://news.cnet.com/the-wisdom-of-clouds/ (дата обращения 15.03.2017).

7. OpenStack Community "DevStack". URL: https://docs.openstack.org/developer/devstack/ (дата обращения 05.04.2017).

8. OpenStack Community "DevStack Configuration". URL: http://docs.ocselected.org/openstack-manuals/kilo/devstack-docs/configuration.html (дата обращения 20.04.2017).

ПРИЛОЖЕНИЕ А. КОММУТАЦИЯ МЕЖДУ ИНСТАНСАМИ

ping 10.0.0.10

ping 10.0.0.6

ПРИЛОЖЕНИЕ Б ДОСТУП В ИНТЕРНЕТ

ping ya.ru (инстанс 1)

ping ya.ru (инстанс 2)

ПРИЛОЖЕНИЕ В. ТОМА ДЛЯ ИНСТАНСОВ

Тома для инстанса 1 и инстанса 2

ПРИЛОЖЕНИЕ Г. IP И ТОПОЛОГИЯ СЕТИ

IP инстансов

Топология сети

ПРИЛОЖЕНИЕ Д. ПОЛЬЗОВАТЕЛИ И ПРОЕКТЫ

Пользователи

Проекты

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.