На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

4
Ожидается:
09 Сентября 2024

Экспериментальная среда облачных вычислений в институте математики и механики УрО РАН

The experimental cloud computing environment in institute of Mathematics and Mechanics Ural Branch of RAS
Статья опубликована в выпуске журнала № 4 за 2012 год. [ на стр. 110-115 ]
Аннотация:Рассматривается задача предоставления масштабируемой вычислительной инфраструктуры для консолидации компьютерного оборудования, используемого в целях разработки, отладки и развертывания ПО, а также дидактической поддержки образовательных курсов. Сформулированы требования к ПО и выполнен обзор существующих решений: Eucalyptus, OpenNebula, OpenStack, Nimbus. В результате их сравнения принято решение об экспериментальном развертывании средств OpenNebula на основе гипервизора KVM и ОС GNU/Linux. Среда OpenNebula – это свободное ПО, предназначенное для управления облачной инфраструктурой класса «инфраструктура как услуга». Гипервизор виртуальных машин KVM разрабатывается компанией Red Hat и поддерживается средой OpenNebula в качестве решения для виртуализации по умолчанию. Описаны вычислительные ресурсы Института математики и механики (ИММ) УрО РАН и выделенные серверные узлы для запуска экспериментальной среды облачных вычислений. Приведена конфигурация типового узла среды облачных вычислений на основе ОС Scientific Linux 6.1 (x86_64) с использованием технологий LVM, KVM и libvirt. Описано представление облачной среды как на логическом, так и на физическом уровнях. Обозначены проблемы функционирования системы безопасности SELinux и обеспечения отказоустойчивости системы. Сформулирован дальнейший план работ по таким направлениям, как интеграция с доменной системой Active Directory, применение сетевого хранилища (NAS) для хранения образов виртуальных машин, миграция на клиентсерверную БД MySQL и необходимость апробации и предоставления масштабируемых Web-сервисов для конечных пользователей среды облачных вычислений ИММ УрО РАН.
Abstract:This paper considers the problem of providing a scalable computing infrastructure to consolidate computing equipment used for developing and debugging software as well as for the didactic support of educational courses. Software specifications are formulated and the following existent solutions are reviewed and compared: Eucalyptus, OpenNebula, OpenStack, and Nimbus. A decision is made to perform an experimental deployment of the OpenNebula suite based on the KVM hypervisor and the GNU/Linux operating system. OpenNebula is an open source software designed to control the cloud environment of the Infrastructure-As-a-Service class. The KVM hypervisor was developed by Red Hat and is supported by OpenNebula as a default virtualization solution. The available computational resources of the Institute of Mathematics and Mechanics, Ural Branch of the Russian Academy of Sciences, and dedicated backend nodes for the experimental cloud computing environment are described. The configuration of a typical cloud computing node under the Scientific Linux 6.1 (x86_64) operating system with the LVM, KVM, and libvirt technologies is presented. The cloud environment architecture is presented at both logical and physical levels. Some difficulties concerning the SELinux security system and the fault-tolerance performance are described. A plan of further work in the following directions is suggested: integration with the Active Directory domain system, application of the network-attached storage to keep the images of virtual machines, migration to the MySQL relational database, and the testing and presentation of scalable Web services to cloud computing end users at the IMM UrB RAS.
Авторы: Ермаков Д.Г. (Ermak@imm.uran.ru) - Институт математики и механики УрО РАН, г. Екатеринбург, г. Екатеринбург, Россия, Усталов Д.А. (dau@imm.uran.ru) - Институт математики и механики УрО РАН, г. Екатеринбург (ст. программист ), Екатеринбург, Россия
Ключевые слова: iaas., opennebula, kvm, инфраструктура как услуга (сервис), облачные вычисления, гипервизор виртуальных машин, виртуализация
Keywords: iaas, opennebula, kvm, InfrastractureasaService, cloud computing, virtual machine hypervisor, virtualization
Количество просмотров: 12385
Версия для печати
Выпуск в формате PDF (9.63Мб)
Скачать обложку в формате PDF (1.26Мб)

Размер шрифта:       Шрифт:

Вычислительный центр Института математики и механики (ИММ) УрО РАН должен одновременно решать две взаимоисключающие задачи – предоставление услуг научным сотрудникам институтов УрО РАН и проведение собственных исследований и разработок. Предоставление услуг требует высокой надежности всех компонентов центра, высокой доступности сервисов и служб. Проведение собственных исследований и разработок, наоборот, может приводить к непредвиденным последствиям, результатом которых могут стать длительные перерывы в работе.

Вычислительные кластеры (массово-парал­лельные суперкомпьютеры) ИММ работают под управлением ОС GNU/Linux. Время от времени возникают нетипичные задачи, требующие пе- реконфигурирования кластера или выделения вычислительных ресурсов на короткий срок. Например, для разработки и отладки некоторого приложения может потребоваться кластер Windows. Такой кластер не будет сильно нагружен, поэтому создание специального кластера или обеспечение двойной загрузки представляется нерациональным.

В рамках учебных курсов совместной кафедры УрФУ и ИММ УрО РАН «Высокопроизводительные компьютерные технологии» требуются средства для проведения практических занятий со студентами по развертыванию кластерного ПО.

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

В отличие от проблем, возникающих при экспериментах с оборудованием, вышеперечисленные задачи могут быть решены за счет развертывания специальной компьютерной инфраструктуры, объединяющей некоторое количество физических серверов в единую систему, ресурсы которой разделяются на виртуальные машины, используемые многими пользователями одновременно, причем пользователи самостоятельно настраивают их под свои задачи. Пользователям предоставляется Web-интерфейс, позволяющий создавать вычислительные ресурсы при возникновении потребности в них и удалять их в случае ненужности. В настоящее время решения такого типа классифицируются как облачные среды IaaS (Infrastructure-as-a-Service – инфраструктура как услуга). Для изучения возможностей данной технологии было принято решение о развертывании среды облачных вычислений.

Выбор программных продуктов

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

В настоящее время разработчики предлагают ряд продуктов, реализующих концепцию IaaS поверх различных систем виртуальных машин. К таким системам относятся Eucalyptus (http://www. eucalyptus.com/), OpenNebula (http://opennebula. org), OpenStack (http://openstack.org) и Nimbus (http://www.nimbusproject.org/).

Сравнение средств для создания IaaS-систем дается в работах [1, 2]. В качестве базовой среды для облачных вычислений в СКЦ ИММ УрО РАН был выбран продукт OpenNebula. Разработка OpenNebula стартовала в 2005 г. как исследовательский проект Distributed Systems Architecture Research Group в Мадридском университете Комплутенсе (Complutense University of Madrid). В марте 2008 г. состоялся первый релиз продукта. В настоящее время OpenNebula входит в состав проекта RESERVOIR (Resources and Services Virtuali­zation without Barriers – виртуализация ресурсов и сервисов без ограничений, http://www.re­servoir-fp7.eu/), поддерживаемого грантом Евросоюза. OpenNebula используется рядом европейских научно-исследовательских организаций, среди которых отдельно следует упомянуть CERN.

Программное обеспечение OpenNebula предназначено для управления облачной инфраструктурой класса IaaS. Это свободно распространяемый продукт с открытым исходным кодом (распространяется по лицензии Apache), то есть полностью открытая платформа. В качестве системы виртуализации возможно использование Xen, KVM, VMware и Hyper-V. Программные средства OpenNebula поддерживают API для доступа к публичным облачным окружениям, таким как Amazon EC2 Query, OGF OCCI, vCloud и др. (см. также http://opennebula.org/doku.php?id=ecosys­tem). Таким образом, OpenNebula может использоваться для создания частных облачных сред, обеспечивать работу только с внешними, публичными облачными сервисами таких провайдеров, как Amazon EC2, а также развертывать гибридные облачные системы, сочетающие сервисы публичных и частных инфраструктур.

Ключевые возможности ПО:

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

–      наличие централизованного интерфейса для управления всеми элементами виртуальной и физической распределенной инфраструктуры;

–      возможность подключения внешних ресурсов, высокая степень загрузки доступных ре- сурсов, предоставление ресурсов в аренду или организация совместного использования инфраструктуры несколькими подразделениями;

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

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

–      более быстрое получение запрошенного сервиса (создание виртуального сервера требует значительно меньше времени, чем покупка и установка физического);

–      поддержка развертывания гетерогенных операционных окружений в рамках единой совместно используемой инфраструктуры;

–      полный контроль жизненного цикла виртуальных серверов;

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

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

–      наличие инструментов для учета и генерации отчетов об активности пользователей и серверов;

–      способность работы механизмов аутентификации и авторизации путем подключения дополнений (например, созданы модули для LDAP, Kerberos, авторизации с учетом состояния квот, аутентификация на базе RSA-ключей и т.п.);

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

–      поддержка привязки дополнительных атрибутов, ассоциированных с заданной виртуальной сетью (параметры шлюза, DNS), которые будут использованы в контексте указанных виртуальных машин;

–      наличие готовых установочных пакетов для различных вариантов ОС GNU/Linux: Red Hat Enterprise Linux, Ubuntu, Debian.

Сравнив средства виртуализации в работах [3] и [4], авторы остановили свой выбор на средстве построения среды облачных вычислений OpenNe­bula и системе виртуализации KVM. В целом KVM является более предпочтительной по результатам тестов производительности подсистемы памяти и ЦП, чем Xen. Кроме того, в Xen могут возникать некоторые сложности с многопоточными программами, что нежелательно. К тому же KVM развивается компанией Red Hat в качестве основного средства виртуализации, поставляемого с Red Hat Enterprise Linux.

Среда облачных вычислений в ИММ УрО РАН

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

Для развертывания экспериментальной среды были выделены три узла кластера Fujitsu-Siemens Computers PRIMERGY RX330 S1 в следующей конфигурации:

–      2 двухъядерных процессора AMD Opteron™ 2218 с тактовой частотой 2,6 ГГц, имеется поддержка аппаратной виртуализации;

–      8 ГБ оперативной памяти;

–      жесткий диск Seagate Barracuda ES 250GB Serial ATA II 7200RPM 16MB;

–      сетевая карта Broadcom BCM5715 Gigabit Ethernet.

На каждый выделенный узел кластера установлена ОС Scientific Linux версии 6.1 (x86_64). Конфигурация ОС и служб, необходимых для функционирования облачной инфраструктуры, типовая для всех узлов кластера. На жестком диске каждого узла сформирована LVM-группа логических томов vg_node следующего вида:

–      том vg_node-lv_root содержит корневой раздел, файловая система – ext4, объем 50 ГБ;

–      том vg_node-lv_home содержит раздел /home, файловая система – ext4, объем 170 ГБ;

–      том vg_node-lv_swap содержит раздел подкачки, объем 10 ГБ.

Технология LVM позволяет динамически менять размер логических разделов и осуществлять горячее добавление новых томов в систему. Используемая файловая система ext4 является стандартом де-факто для современных дистрибутивов GNU/Linux. На каждом узле кластера подключены RPM-репозитории ELRepo и Fedora EPEL, установлено ПО QEMU, поддерживающее технологию виртуализации KVM, а также libvirt – унифицированный набор инструментов для работы с виртуальными машинами. Подсистема безопасности SELinux была отключена из-за проблем, возникших при тестовых запусках виртуальных машин на узлах: стандартные политики безопасности (enforcing, targeted) препятствуют функционированию OpenNebula в экспериментальном режиме.

Служба управления облачной инфраструктурой OpenNebula и ее Web-интерфейс Sunstone в экспериментальном режиме запущены на виртуальной машине cf.imm.uran.ru (Cloud Frontend) в среде гипервизора VMware ESXi, работающего под управлением ОС CentOS 6 (x86_64). Конфигурация сервера управляющей машины HP ProLiant DL165 G7 6172:

–      2 12-ядерных процессора AMD Opteron™ 6172 с тактовой частотой 2,1 ГГц (виртуальной машине доступны 3 процессорных ядра);

–      16 Гб оперативной памяти (виртуальной машине доступны 4 ГБ);

–      жесткий диск – виртуальной машине предоставлено 10 ГБ дискового пространства;

–      сетевая карта HP NC362i Integrated Dual Port Gigabit Server Adapter.

ПО OpenNebula, включающее в себя службу oned и множество вспомогательных сценариев, было скомпилировано вручную и установлено в обособленную директорию /var/lib/one. Служба oned (OpenNebula daemon) и Web-интерфейс Sunstone запускаются при старте системы с реквизитами пользователя oneadmin. Доступ к Web-интерфейсу Sunstone организуется средствами балансировщика нагрузки haproxy.

Хранилище образов виртуальных машин организовано на управляющей машине cf.imm.uran.ru. Двусторонний обмен образами виртуальных машин с узлами кластера осуществляется при помощи механизма SSH (рис. 1), реализованного в стандартной поставке пакета OpenNebula.

В будущем планируется переместить хранилище образов виртуальных машин на сетевую систему хранения данных (NAS), используя файловую систему NFS.

Служба oned способна хранить служебные данные как при помощи встраиваемой СУБД SQLite, так и средствами MySQL – клиент-сервер­ной СУБД. В экспериментальном режиме данные хранятся в БД SQLite. В дальнейшем планируется создать выделенный сервер БД и провести миграцию данных на СУБД MySQL.

Для полноценной эксплуатации облачной инфраструктуры OpenNebula необходимо обеспечить гипервизор виртуальных машин доступом к сетевому интерфейсу типа «мост», что выполня- ется стандартными средствами Scientific Linux. Таким образом, каждая виртуальная машина обладает «реальным» IP-адресом и имеет доступ к вычислительной сети ИММ УрО РАН наравне с реальными серверами СКЦ (рис. 2).

Инфраструктура OpenNebula не требует установки собственного ПО на рабочие узлы кластера: весь обмен информацией (в том числе и образов виртуальных машин) выполняется исключительно при помощи протокола SSH, для передачи используется механизм SCP. Подразумевается, что управляющая машина способна без пароля подключиться к любому узлу кластера, используя имя пользователя oneadmin с домашней директорией /var/lib/one. Возможность беспарольного неинтерактивного взаимодействия узлов и управляющей машины обеспечена при помощи RSA-ключей, сгенерированных при помощи OpenSSH, входящего в поставку Scientific Linux. В целях безопасности в службе sshd запрещена возможность аутентификации пользователя по паролю. Доступ к узлам кластера также выполняется при помощи собственных RSA-ключей пользователей внутри вычислительной сети ИММ УрО РАН.

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

Мониторинг узлов кластера осуществляется периодическим опросом серверов со стороны управляющей машины. На каждый узел загружаются (и там выполняются) диагностические сценарии, написанные на языках Ruby и Shell. Результаты мониторинга возвращаются путем перенаправления потоков ввода-вывода. Аналогично выполняются все остальные операции на узлах с виртуальными машинами.

Для функционирования OpenNebula необходим интерпретатор Ruby версии не ниже 1.8.7. Как на узлах кластера, так и на управляющей машине установлены Ruby 1.8.7p229 и средство управления gem-пакетами RubyGems 1.8.10.

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

1)    установка ОС Scientific Linux;

2)    установка дополнительного ПО (Ruby, QEMU);

3)    организация соединения типа «мост»;

4)    создание пользователя oneadmin с домашней директорией /var/lib/one и полномочиями запуска виртуальных машин из домашней директории;

5)    указание адреса нового узла в административном Web-интерфейсе Sunstone.

В заключение отметим, что в настоящее время в СКЦ ИММ УрО РАН развернута экспериментальная версия облачной инфраструктуры на основе OpenNebula. В дальнейшем планируются работы по следующим направлениям:

–      сравнение производительности при использовании хранилища образов на основе SSH/SCP с использованием сетевого хранилища на основе NAS+NFS;

–      миграция на клиент-серверную СУБД MySQL (с выделенным сервером MySQL) для повышения надежности облачной инфраструктуры;

–      разработка политики SELinux, специфичной для корректного и полноценного функционирования OpenNebula;

–      интеграция с Active Directory;

–      автоматизация процесса добавления нового узла в серверную ферму OpenNebula;

–      запуск PaaS-окружения Cloud Foundry на созданной облачной инфраструктуре;

–      апробация и предоставление Web-сервисов, масштабируемых при помощи OpenNebula.

Кроме того, предусматриваются создание виртуального Windows-кластера, а также перенос в облачную среду ряда унаследованных слабонагруженных серверов.

Литература

1.     Sempolinski P., Thain D. A Comparison and Critique of Eucalyptus, OpenNebula and Nimbus // IEEE International Conference on Cloud Computing Technology and Science. 2010, pp. 417–426. URL: http://www.cse.nd.edu/~ccl/research/papers/ psempoli-cloudcom.pdf (дата обращения: 25.10.2011).

2.     Sotomayor B., Montero R.S., Llorente I.M., Foster I., Virtual Infrastructure Management in Private and Hybrid Clouds // IEEE Internet Computing. 2009. Vol. 13, № 5, pp. 14–22.

3.     Technical comparison of Linux virtualization technologies URL: http://virt.kernelnewbies.org/TechComparison (дата обраще­ния: 25.10.2011).

4.     Gionatan Danti Virtual machines performance compa­rison: vmware vs virtualbox vs kvm vs xen. 2010. URL: http:// www.ilsistemista.net/index.php/virtualization/1-virtual-machines-performance-comparison.html (дата обращения: 25.10.2011).


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=3321&lang=&like=1
Версия для печати
Выпуск в формате PDF (9.63Мб)
Скачать обложку в формате PDF (1.26Мб)
Статья опубликована в выпуске журнала № 4 за 2012 год. [ на стр. 110-115 ]

Возможно, Вас заинтересуют следующие статьи схожих тематик: