Добавлен: 15.06.2023
Просмотров: 317
Скачиваний: 2
СОДЕРЖАНИЕ
1. Облачные сервисы: основные понятия и возможности
1.1. Понятие и свойства облачных технологий
1.2. Модели и стандарты облачных сервисов
1.3. Тенденции развития облачных технологий
2. Особенности развертывания облачной среды в исследовательской лаборатории
2.1. Обзор технологий внедрения и адаптации облачных сервисов
Рассматриваемая задача является актуальной, так как внедрение и адаптация облачных сервисов открытой среды 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