Модернизация аппаратно-программного комплекса облачного полигона RUNNet

ФГАУ ГНИИ ИТТ "Информика" продолжает реализацию проекта, нацеленного на исследование и апробацию методов построения, ключевых архитектурных и программных решений технологий облачных вычислений (cloud computing), а также на их активное практическое внедрение и рабочую эксплуатацию на ресурсных емкостях Федеральной университетской компьютерной сети RUNNet. Развернутая в RUNNet облачная инфраструктура базируется на динамично развивающемся программном обеспечении с открытым исходным кодом OpenStack.

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

Проект OpenStack был инициирован в 2010 году компанией Rackspace Cloud и американским агентством NASA, развивается силами глобального сообщества разработчиков под управлением одноименного консорциума и при спонсорской поддержке целого ряда ведущих компаний ИТ-отрасли (Rackspace, Red Hat, HP, IBM, Mirantis, AT&T, Canonical, Nebula, SUSE и др.). Актуальный на сегодняшний день релиз платформы (с названием Kilo) вышел в апреле 2015 года и является уже одиннадцатым по счету.

В число базовых и дополняющих их функциональных модулей облачной операционной системы OpenStack входят сервисы:
• OpenStack Compute (Nova) - сервис управления жизненным циклом виртуальных машин в пределах облачной инфраструктуры;
• OpenStack Image service (Glance) - сервис для работы с образами виртуальных машин - системными дисками разных форматов, которые используются при запуске экземпляров виртуальных машин;
• OpenStack Networking (Neutron) - сервис управления сетевыми компонентами облака;
• OpenStack Identity service (Keystone) - служба, обеспечивающая унифицированную ролевую аутентификацию пользователей и сервисов платформы;
• OpenStack Block Storage (Cinder) - сервис управления хранилищем данных блочного уровня, позволяющий создавать блочные устройства, а также присоединять (отсоединять) их к работающим виртуальным машинам;
• OpenStack Object Storage (Swift) - сервис поддержки распределенного, высоконадежного объектного хранилища с гибкой системой синхронизации и возможностью репликации данных, ориентированного на хранение статических данных;
• OpenStack Telemetry (Ceilometer) - служба мониторинга и сбора данных о работе облачной платформы и ее сервисов;
• OpenStack Orchestration (Heat) - сервис управления жизненным циклом инфраструктуры и приложений, а также автоматизации выделения приложениям облачных ресурсов;
• OpenStack Database service (Trove) - сервис, обеспечивающий масштабируемый и надежный облачный функционал в рамках модели Database-as-a-Service для реляционных и нереляционных СУБД;
• OpenStack Data processing service (Sahara) - сервис для подготовки и масштабирования Hadoop-кластеров в OpenStack, реализуемый путем назначения параметров кластера;
• OpenStack Dashboard (Horizon) - инструментальная веб-панель управления облачными сервисами.

В качестве служебного программного обеспечения используются СУБД (MySQL, MariaDB, PostgreSQL и др.), отвечающая за хранение конфигурации и журналирования работы сервисов OpenStack, менеджер очереди сообщений для организации взаимодействия сервисов (RabbitMQ, Qpid, ZeroMQ и др.) и служба NTP (Network Time Protocol), обеспечивающая синхронизированное во времени состояние узлов облака.

Экспериментальный облачный полигон RUNNet, развернутый в 2011 году, включал в себя 5 серверных узлов, объединенных сетью Gigabit Ethernet и размещенных в стойке дата-центра ФГАУ ГНИИ ИТТ "Информика" в г. Москве. В экспериментальном облачном полигоне был запущен ряд виртуальных машин, работавших под управлением операционных систем семейства UNIX и отвечающих за предоставление нескольких типовых интернет-сервисов сети, а также выполняющих функции хостинга для научно-образовательных проектов. Дальнейшее развитие проекта предполагало переход к полнофункциональному режиму работы облачного полигона, перенос и развертывание в нем базовых сервисов сети RUNNet, расширение вычислительной мощности облака, предоставление пользователям образовательных учреждений широких возможностей по практическому использованию облачных технологий и сервисов.

В 2015 г. были проведены работы по существенному обновлению аппаратно-программного комплекса облачной инфраструктуры; ключевые параметры нового облака:
• 10 серверных узлов (6xCPU Intel Xeon E5620, RAM 32 Gb, HDD 6x2 Tb), суммарная пиковая производительность - 2.3 TFlops;
• LAN 1GE/10GE, обеспечивающие локальную связность облачных серверов и доступ для них, а также виртуальных машин в Интернет;
• серверная операционная система Ubuntu Linux 14.04 LTS;
• программное обеспечение облачной платформы Openstack (релиз Juno);
• распределенная файловая система GlusterFS 3.5.

Работа облачной инфраструктуры организована в отказоустойчивом режиме ("High Availability"), что достигается настройкой двух равнозначных по функциональным возможностям узлов для работы в роли контроллеров облака и применением технологий HaProxy / Keepalived с назначением "плавающего" виртуального IP-адреса (VIP), к которому обращаются все службы и сервисы облака. В случае неработоспособности основного контроллера, адрес VIP автоматически переназначается второму контроллеру, обеспечивая бесперебойную работу вычислительных узлов. Кроме того, в "кластерном" режиме функционирует менеджер сообщений RabbitMQ, а для СУБД MySQL применяется система синхронной "Multi-Master" репликации Galera.

Серверные компьютеры облака имеют по три сетевых интерфейса и связаны между собой управляющей сетью (Management Network, 1GE), по которой производится удаленный доступ к узлам по их приватным адресам и взаимодействие облачных сервисов (API), а также сетью для передачи данных (Data Network, 10GE), используемой для и работы сетевой файловой системы GlusterFS. Третья сеть (Public Network) служит для обеспечения доступа к виртуальным машинам из сети Интернет по назначаемым им публичным IP-адресам с разнесением подсетей по разным VLAN.

Использованный в облачном полигоне набор сетевых служб включает в себя DHCP-агент для автоматического назначения IP-адресов виртуальным машинам, а также службу Open vSwitch, отвечающую за организацию сетевых мостов и Ethernet-соединений между виртуальными и физическими интерфейсами. В реализованной конфигурации облака для виртуальных машин не используются приватные IP-адреса - это позволяет полностью отказаться от ресурсозатратной NAT-трансляции сетевых адресов.

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

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

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

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