
- •Организация системы доступа пользователей и разработка технических принципов запуска ресурсоемких приложений в распределенной вычислительной среде на основе технологии облачных вычислений
- •Диссертация
- •Глава 1. Классификация распределенных вычислительных сред 15
- •Глава 1. Классификация распределенных вычислительных сред 6
- •2Глава 2. Проблемы доступа пользователей и анализ продуктов для запуска приложений в распределенной вычислительной среде 14
- •Введение
- •Глава 1. Классификация распределенных вычислительных сред
- •Клиент-сервер
- •Метакомпьютинг
- •Основные понятия
- •Кластерная технология
- •Технологии Грид
- •Архитектура Грид
- •Общие задачи Грида
- •Технологии и системы облачных вычислений
- •Основные характеристики Облачных вычислений
- •Особенности облачных вычислений
- •Вызовы облачных вычислений
- •Глава 2. Проблемы доступа пользователей и анализ продуктов для запуска приложений в распределенной вычислительной среде
- •Анализ системы безопасности для распределенных вычислений
- •Системы авторизации Grid
- •Системы авторизации облачных вычислений
- •Анализ Облачных платформ для эффективного построения облачной вычислительной среды
- •Облачная платформа ( eucalyptus)
- •Облачная платформа (OpenNebula )
- •Облачная платформа (Abicloud )
- •Облачная платформа (Nimbus )
- •Анализ безопасности программной интерфейса api для управления ресурсами и сервисами Облачных вычислений
- •Исследование производительности метакомпьютера с единым образом операционной системы
- •Исследование производительности pvm c и без миграции процессов mosix в гетерогенной среде
- •Исследование производительности mpi с и без миграции процессов mosix в виртуальной среде
- •Анализ продукты Globus Toolkit для организации системы доступа пользователей к распределенной вычислительной среде
- •Gridftp – для управления данными
- •Gram – для управления процессами
- •Разработка и исследование системы управления ресурсами Univa Grid Engine в многопроцессорных северах
- •Конфигурация Univa Grid Engine
- •Глава 3. Организация системы доступа пользователей и разработка технических принципов запуска ресурсоемких приложений
- •Разработка системы безопасности грида в систему облачных вычислений
- •Разработка системы управления облачными ресурсами
- •Программный интерфейс drmaa для интеграции программных продуктов
- •Мosix вычислительный кластер на основе технологии облачных вычислений
- •Запуск приложение в распределенной вычислительной среде на основе технологии облачных вычислений
- •Глава 4. Консолидация и интеграция программных комплексов
- •Интеграция mpich2 и uge для запуска параллельных приложений
- •Интеграция uge и Globus toolkit для запуска приложений через drmaa
- •Интеграция системы безопасности Грида в систему Облачных вычислений
- •Разработка программного обеспечения OpenFoam в распределенной вычислительной среде
- •Часть исходного кода программы
- •Заключение
- •Литература
Анализ Облачных платформ для эффективного построения облачной вычислительной среды
В настоящее время многие ведущие корпорации участвуют в развитии облачных вычислений и были предложены многие платформы облачных вычислений. Создалась благоприятная ситуация для изучения и приложения облачных вычислений. Для начинающих пользователей все еще очень трудно сделать разумный выбор среди большого количества предложений. Какие различия существуют для различных платформ облачных вычислений и какие характеристики и преимущества есть у каждой? Чтобы ответить на эти вопросы ниже подробно проанализированы и обсуждены проблемы, характеристики, архитектура и приложения нескольких популярных платформ облачных вычислений. Из сравнения этих платформ пользователи могут лучше понять различные облачные подходы и более разумно выбрать то, что они хотят. В данной главе приводятся результаты тестирования Eucalyptus и Opennebula на гетерогенной платформе ПМПУ СПбГУ и анализируются их особенности и достоинства для университетских проектов дата-центров.
От точки зрения развертывания платформа облачных вычислений включает три вида, которыми являются частные облака, публичные облака и гибридные облака. Публичное облако это Облачная инфраструктура, которая доступна для широкой общественности или сотрудников корпорации и принадлежит той организации, которая предоставляет облачные сервисы. В публичных облаках вычислительные ресурсы динамически обеспечиваются через Интернет с помощью веб-приложения или веб-служб. Частное облако связано с реализацией облачных вычислений на корпоративных сетях. Частные облака созданы для исключительного использования одной группой пользователей, обеспечивая полный контроль над данными, безопасностью и качеством обслуживания. Частные облака могут быть построены и управляться собственной ИТ-службой компании или поставщиком Облачных сервисов. Гибридное облако объединяет множество публичных и частных моделей облака. Гибридные облака сложно определить исчерпывающим образом из-за сложности переноса приложений в публичное облако из частного[1],[31].
Считается, что облачные вычисления вызовут новую революцию в ИТ-сервисах. Предвидя огромные бизнес-потенциал такого подхода, многие страны, правительства и корпорации приняли решение поддерживать и вкладывать средства в развитие методов облачных вычислений. EC2 от Amazon, Azure от Microsoft, AppEngine от Google, Синее облако от IBM и так далее это все широко используемые платформы облачных вычислений, и это - важный знак, что облачные вычисления станут ареной конкурентной больбы. Однако, при всем обилии облачных платформ, у каждой есть собственные особенности и преимущества, и сделать разумный выбор между ними представляет большую проблему. Для помощи в решении этой проблемы в настоящем сообщении проводится анализ и сравнение нескольких популярных облачных платформ, который и представлен в этом сообщении [1],[31],[32].
Облачная платформа ( eucalyptus)
Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) как проект был начат в Калифорнийском университете в Санта-Барбаре, и главным образом развивался для создания платформы частного облака с открытым исходным кодом. Потом он был подхвачен системным интегратором Eucalyptus. Eucalyptus - это реализация облака с открытым исходным кодом Amazon EC2 и совместимая с его пользовательскими интерфейсами. Он также осуществляет виртуализацию на базе Linux и Xen, как это делается EC2.
Eucalyptus - эластичная вычислительная структура, которая может использоваться, чтобы соединить программы пользователей с полезными системами, это - инфраструктура с открытым исходным кодом, использующая реализацию для кластеров или рабочих станций эластичных, служебных, "облачных" вычислений и популярного вычислительного стандарта, Sоснованного на протоколе уровня обслуживания. В настоящий момент Eucalyptus является совместимым с EC2 от Amazon, и может поддерживать другие виды клиентов с минимальной модификацией и расширением. Рисунок.2.1. демонстрирует структуру топологии ресурсов Eucalyptus [1],[31],[64],[65].
Cluster B
SOAP-Based tools
Cluster A
Cloud Controller
Walrus
Cluster Controller
Storage Controller
Node Controller
Node Controller
Node Controller
Cluster Controller
Storage Controller
Node Controller
Node Controller
Node Controller
REST-based tools
Рисунок.2.2. Структура топологии ресурсов Eucalyptus
В рисунке 1 Контроллер узла (Node Controller, NC) управляет запуском, работой и остановкой виртуальных машин на подведомственном узле. Узел – это машина с работающим гипервизором (например, Xen), который осуществляет работу виртуальных машин (instances в терминологии Eucalyptus).
Контроллер кластера (Cluster Controller, CC) управляет подведомственными контроллерами узлов (NC): собирает информацию о загруженности узлов и принимает решения, на каких узлах будет выполнен запуск виртуальных машин.
Контроллер хранилища (Storage Controller) – место для хранения образов (image) виртуальных машин. В качестве хранилища выступает Walrus – сервис, подобный Amazon S3.
Контроллер облака (Cloud Controller, CLC) представляет собой точку входа. Со стороны конечного пользователя (или вышестоящего приложения) поступают запросы на запуск виртуальных машин. Со стороны контроллеров кластеров поступают данные о загруженности узлов облака [38],[43],[56],[63].
Результаты тестирования частного Облака на гетерогенной платформе ПМПУ СпбГУ показаны, что в нашем частном облаке запускали виртуальные машины. Потом пользователям предоставляют доступ к виртуальным машинам, на которых они могут установить и выполнить произвольное программное обеспечение, включая системы баз данных.
$ ~/.euca/eucarc
euca-describe-availability-zones verbose
AVAILABILITYZONE myanmar 192.168.45.41
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0000 / 0004 1 128 2
AVAILABILITYZONE |- c1.medium 0000 / 0004 1 256 5
AVAILABILITYZONE |- m1.large 0000 / 0002 2 512 10
AVAILABILITYZONE |- m1.xlarge 0000 / 0002 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0000 / 0001 4 2048 20
$ euca-describe-instances
RESERVATION r-358E067B admin default
INSTANCE i-4DAD080A emi-DE1B1059 192.168.1.102 172.19.1.3 running mykey 0 m1.small 2010-04-10T00:51:19.394Z myanmar eki-F44C10D9 eri-08c21145
RESERVATION r-4C7C0843 admin default
INSTANCE i-47B5091E emi-DEB414FD 192.168.1.103 172.19.1.4 running mykey 0 m1.large 2010-04-10T00:53:58.901Z myanmar eki-238E1A05 eri-040E198A
RESERVATION r-544C09EB admin default
INSTANCE i-3F060729 emi-DFAD1076 192.168.1.101 172.19.1.2 running mykey 0 c1.medium 2010-04-10T00:39:24.834Z myanmar eki-F5EE10ED eri-0A&A1163
В нашем Облаке помещает в хранилище образы тех виртуальных машин, которые будут запускаться в облаке (например, Debian, CentOS, Ubuntu). Запрос на запуск виртуальных машин определяет, какие машины из списка возможных и в каком количестве будут подняты в облаке. Получив запрос, контроллер кластера решает, куда перенаправить этот запрос. У пользователя есть возможность указать, в каком кластере, или зоне (availability zone в терминологии Amazon) должны быть запущены машины. Соответствующий контроллер кластера получает запрос и принимает решение, на каких узлах будет выполнено задание. Запрос уходит либо первому из узлов с имеющимися свободными ресурсами до его полного заполнения либо поочередно каждому из них. Получив задание, контроллер узла загружает соответствующий образ из хранилища (или своего локального кэша, если этот образ уже загружался) и запускает машины средствами гипервизора. Пользователям предоставляют доступ к виртуальным машинам, на которых они могут установить и выполнить произвольное программное обеспечение, включая системы баз данных.
Для конечного пользователя Eucalyptus предоставляет Web-интерфейс, в котором можно зарегистрироваться в системе и затем получить необходимые данные для работы с облаком. Web-интерфейс доступен по адресу https://your.cloud.server:8443/. Загрузив эту страницу, Eucalyptus предложит авторизоваться, зарегистрироваться, либо восстановить пароль.
Рисунок.2.3 Web-интерфейс для конечного пользователя Облака
Авторизовавшись, попадаешь на страницу Credentials. Тут доступно:
Пользовательская информация аккаунта.
Возможность редактировать эту информацию.
Возможность поменять пароль.
Скачать Credentials ZIP-file.
Возможность посмотреть Query ID и Secret Key, не скачивая Credentials ZIP-file.
Так же доступна страница Images, где можно посмотреть список всех образов, которые пользователь может запустить.
Необходим для работы с облаком. Содержит 5 файлов:
eucarc. Содержит описание всех переменных окружения, необходимых для работы с euca2ools.
cloud-cert.pem. «Облачный» сертификат.
euca2-username-*-cert.pem.-Пользовательский PEM-закодированный сертификат.
euca2-username-*-pk.pem.-Пользовательский PEM-закодированный приватный ключ.
jssecacerts.
Для работы с euca2ools необходимо выполнить команду:
source /path/to/eucarc.
Для того чтобы использовать инстансы, запущенные из вашего образа, который вы создали (или скачали) – необходимо связать его с «облачным» сертификатом, затем загрузить его и зарегистрировать на облаке.
Действие |
Команда |
Параметры |
Привязка образа |
$euca-bundle-image |
-i image.img |
Загрузка образа |
$euca-upload-bundle |
-b image-bucket -m image.img.manifest.xml |
Регистрация образа |
$euca-register |
image-bucket/image.img.manifest.xml
|
Скачать загруженный образ |
$ euca-delete-bundle |
-b image-bucket |
Удалить загруженный образ |
$euca-delete-bundle |
-b image-bucket |
Отвязать образ |
$ euca-unbundle |
-m image.img.manifest.xml |
Список запущенных инстансов |
$euca-describe-instances |
|
Запустить инстанс |
$ euca-run-instances |
-k testkey --kernel kernel_id --ramdisk ramdisk_id image_id |
Выключение инстанса |
$ euca-terminate-instance |
instance_id |
Перезагрузка инстанса |
$ euca-reboot-instances |
instance_id |
Создать группу безопасности |
$ euca-add-group |
-d "mygroup description" mygroup |
Добавление сетевых правил в группы безопасности |
$ euca-authorize |
-P tcp -p 22 -s 0.0.0.0/0 mygroup |
Отмена сетевых правил для группы безопасности |
euca-revoke |
-P tcp -p 22 -s 0.0.0.0/0 Mygroup |
Запрос на выделение IP адреса |
$ euca-allocate-address |
|
Привязать IP к инстансу |
$ euca-associate-address |
-i instance_id a.b.c.d |
Отвязать IP от инстанса |
$ euca-disassociate-address |
a.b.c.d |
Освободить выделенный IP |
$ euca-release-address |
a.b.c.d |
Удалить группу безопасности |
$euca-delete-group |
mygroup |
Подключиться к инстансу |
$ssh |
-i keypair root@PUBLIC_IP |
Таблица- 2.1 Команды управления облаками Euca2ools
Управлять облаком можно с использованием Web-консоли ElasticFox. ElasticFox представляет собой plug-in, который встраивается в браузер FireFox на стороне пользователя и позволяет:
• Управлять загрузочными образами виртуальных машин
• Запускать и останавливать виртуальные машины
• Управлять виртуальными машинами
• Управлять динамическим распределением IP адресов
• Управлять доступом для групп
• Управлять ключами авторизации
• Управлять виртуальными блочными устройствами хранения данных
Рисунок.2.4. Web-консоли ElasticFox
Для настройки понадобятся значения следующих переменных: $EC2_URL, $EC2_ACCESS_KEY, $EC2_SECRET_KEY, $EC2_USER_ID, которые можно взять из файла eucarc.
• Через раздел "Regions" необходимо указать имя и адрес контролера облака. В конфигурационном файле этот адрес указан в переменной $EC2_URL.
• Через раздел "Credentials" необходимо указать параметры полномочий пользователя, которые хранятся в переменных $EC2_ACCESS_KEY и $EC2_SECRET_KEY.
• Через раздел "Accounts IDs" необходимо указать уникальный ID пользователя, который хранятся в переменной $EC2_USER_ID
• Через раздел Tools необходимо указать путь к директории, в которой установлен SSH клиент – Putty или любой другой SSH клиент.
После установки параметров, ElasticFox соединиться с контролером облака и отобразит текущее состояние [78].
Рисунок.2.5 файл eucarc