Представлен десятый релиз платформы OpenStack, выпущенный под кодовым именем "Juno". В новом выпуске реализовано 310 улучшений и закрыто более 3200 отчётов об ошибках. В развитии продукта приняли участие 1419 разработчиков, представляющих 133 различных компаний, которые подготовили 18704 коммитов, что на 8.65% больше по сравнению с прошлым выпуском. При подготовке изменений для релиза наиболее активно себя проявили компании Red Hat, IBM, HP, Rackspace, Mirantis, SUSE, OpenStack Foundation, VMware, B1 и NEC.
Платформа OpenStack включает в себя набор взаимосвязанных компонентов, нацеленных на создание как публичных cloud-сервисов, подобных Amazon EC2, так и приватных cloud-окружений, работающих на собственном оборудовании и полностью подконтрольных компании. Среди поддерживаемых систем виртуализации: KVM, QEMU, Xen, Hyper-V, Citrix XenServer, контейнеры LXC и VMWare/vSphere ESX/ESXi. OpenStack обладает превосходной масштабируемостью и способен обслуживать инфраструктуру из сотен тысяч виртуальных серверов.
Изначально платформа OpenStack была разработана и открыта под лицензией Apache компанией Rackspace и космическим агентством NASA. Впоследствии связанная с проектом интеллектуальная собственность была передана независимой некоммерческой организации OpenStack Foundation. На данный момент к разработке OpenStack присоединилось около 300 компаний и около 10000 независимых разработчиков. Продукты для развёртывания облачных инфраструктур на базе OpenStack развиваются такими компаниями, как Rackspace, Red Hat, SUSE, Canonical, IBM, Cisco, Dell и HP.
Из входящих в состав релиза Juno компонентов и реализованных в них новшеств можно отметить:
- OpenStack Object Storage (Swift) - распределенное, отказоустойчивое и высоконадежное хранилище объектов. Хранимые объекты сохраняются одновременно на несколько узлов кластера в дата центре, при этом обеспечивается автоматический контроль целостности и репликация при отключении/добавлении узлов. Хранилище масштабируется горизонтально, т.е. для увеличения размера достаточно просто добавить новые узлы, конфигурация которых производится автоматически. При выходе узла из строя, его содержимое воспроизводится на других узлах сети для обеспечения должной избыточности. Дублирование информации позволяет использовать для формирования кластера типичные недорогие серверы, не заботясь о надежности каждого из них в отдельности.
- Поддержка политик хранения (storage policies), предоставляющих пользователю средства для контроля за стоимостью и производительностью. Например, через политики хранения можно определить как следует хранить, реплицировать и получать данные от разных бэкендов и в разных географических местоположениях, а также организовать предоставление ресурсов хранилища другими пользователям.
- Поддержка Keystone v3;
- Возможность копирования данных между аккаунтами на стороне сервера;
- Улучшенный механизм размещения разделов при добавлении новых серверов, зон и регионов;
- Выполнение операции GET без промежуточной буферизации через использование функции splice();
- Параллельное выполнение аудита объектов;
- OpenStack Compute (Nova) - инструментарий, позволяющий автоматически создавать и управлять работой больших групп VPS-серверов. Система основана на технологии NASA Nebula и наработках, применяемых для оказания услуги Rackspace Cloud Servers. OpenStack Compute написан на языке Python с использованием фреймворков Tornado и Twisted, для обмена сообщениями используется протокол AMQP, для хранения данных задействована БД Redis.
- Поддержка определения запасного образа виртуальной машины, который будет использован вместо базового образа в режиме восстановления после сбоя;
- Возможность управления использование раздела для конфигурации;
- Возможность управления предоставляемой гостевым окружениям топологией vCPU;
- Поддержка подключения всех логических дисков в режиме восстановления;
- Поддержка задания своих настроек для отдельных сетей;
- Возможность определения hook-ов для получения информации о сети при изменении экземпляра виртуальной машины.
- Возможность привязки нескольких сетевых интерфейсов в виртуальной машине к одной сети.
- Поддержка использования дополнительных алгоритмов для отслеживания новых типов ресурсов через подключение плагинов к планировщику.
- Поддержка средств интернационализации (i18n);
- В коде поддержки гипервизора Hyper-V добавлена возможность использования различных образов vhdx, вывода лога на консоль и поддержка мягкой перезагрузки;
- Добавлен virt-драйвер для Ironic (Bare Metal Provisioning Service);
- Увеличена производительность libvirt, добавлена возможность создания снапшотов сетевых дисков, обеспечена поддержка возврата системе неиспользуемого дискового пространства, добавлены пространства имён для LXC-контейнеров;
- В коде поддержки VMware переработан драйвер vmware, добавлена поддержка горячего подключения сетевых интерфейсов;
- OpenStack Image Service (Glance) - реестр образов виртуальных машин, позволяющий регистрировать новые образы виртуальных машин и обеспечивать их доставку на нужные узлы перед выполнением. Обеспечивает функционирование хранилища образов виртуальных машин, представленных в широком спектре форматов: Raw, AMI, VHD (Hyper-V), VDI (VirtualBox), qcow2 (Qemu/KVM), VMDK (VMWare) и OVF (VMWare). Для унификации операций по получению информации, добавлению и доставке образов виртуальных машин используется специальный Glance REST-ful API;
- Режим асинхронной обработки;
- Код glance.store выделен в отдельную библиотеку;
- Подготовлен каталог с определениями метаданных;
- Возможность задания политики ограничения загрузки образов;
- OpenStack Identity (Keystone) - пакет для унификации средств аутентификации и обеспечения интеграции компонентов OpenStack с существующими системами аутентификации, в том числе построенными на базе Active Directory и LDAP. Возможно использование и обычных средств входа с использованием логина/пароля или AWS. На плечи Keystone вынесены такие операции, как управление пользователями, проектами и правами доступа;
- Улучшение системы федеративной аутентификации (Federated authentication), позволяющей получить доступ к приватным и публичным облакам OpenStack с использованием единых параметров входа;
- Возможность использование нескольких бэкндов аутентификации и поддержка привязки идентификаторов ресурсов к определённым бэкендам;
- Упрощение интеграции с LDAP, добавлена поддержка поля description в качестве атрибута для пользователя;
- Добавлен новый провайдер токенов PKIZ;
- Возможность настройки алгоритма хэширования для PKI;
- OpenStack Dashboard (Horizon) - web-интерфейс для управления системой, построенный на основе web-фреймворка Django и приложения django-openstack. Интерфейс представлен как для администраторов, так и для пользователей. Поддерживается широкий спектр средств для управления ресурсами, созданием и запуском окружений, установкой лимитов. Возможно подключение плагинов, например, с реализацией средств мониторинга.
- Добавлен интерфейс для управления системой обработки данных Sahara, в том чисое позволяющий определить сборочные кластеры, ответственные за выполнение работ по обработке определённых видов данных;
- Поддержка новых возможностей Neutron (DVR (Distributed Virtual Routing), L3 HA, режимы подсетей IPv6), Glance (работа с каталогом метаданных), Cinder (загрузка данных в образ, QoS), Trove (выбор между mysql/redis/mongodb, резервное копирование БД), Nova (управление режимом обслуживания, миграция на другие хосты);
- Улучшена система плагинов: возможность добавления модулей AngularJS и статических файлов (CSS, JS, изображения), поддержка добавления исключений;
- Улучшена поддержка RBAC (role based access control);
- При построении интерфейса осуществлён переход на фреймворк Bootstrap 3 и задействован генератор таблиц стилей SCSS (вместо LESS);
- Networking (Neutron) - фреймворк для выполнения задач, связанных с созданием, конфигурированием и сопровождением сетей внутри дата-центров. Quantum поддерживает динамическую конфигурацию сети и может быть использован для настройки как виртуальных сетей, так и физических хостов. Quantum поддерживает расширение функциональности через плагины и может решать различные административные задачи, от создания портов до настройки маршрутов и VLAN.
- Полная поддержка IPv6;
- Поддержка DVR (Distributed Virtual Router);
- Для агента L3 реализованы средства обеспечения отказоустойчивости;
- Возможность использования ipset;
- Новые плагины: драйверы A10 Networks LBaaS, Cisco APIC ML2, reescale SDN ML2, Nuage Networks ML2 и SR-IOV capable NIC ML2, плагины маршрутизации для Arista L3, Big Switch L3, Brocade L3, Cisco CSR L3.
- Block Storage (Cinder) - многофункциональное и расширяемое хранилище блочных устройств и дисковых разделов, поддерживающее также работу с ранее созданными разделами, развёрнутыми в процессе использования прошлых выпусков OpenStack. Ранее Cinder был реализован как подпроект к рамках сервиса OpenStack Compute, но отныны выделен в обособленную подсистему, развиваемую отдельной командой разработчиков.
- Поддержка репликации разделов;
- Поддержка согласованных групп (Consistency Groups) и их снапшотов;
- Поддержка пулов разделов (Volume Pools);
- Возможность ограничения пропускной способности для операций копирования разделов;
- Новые драйверы и плагины: Datera, Fujitsu Eternus, Fusion IO, Hitachi HBSD, Huawei, Nimble, Prophetstor, Pure, XtremIO, Oracle ZFS;
- OpenStack Metering (Ceilometer) - нацелен на сбор данных о работе системы и проведение мониторинга, предоставляя пользователям единый источник данных об использовании всех сервисов OpenStack;
- Поддержка партицирования коллекции метрик;
- Значительно увеличена производительность и масштабируемость хранилищ на базе SQLAlchemy в связке с MySQL и PostgreSQL;
- Поддержка мониторинга состояния сенсоров IPMI;
- Более гибкий и эффективный мониторинг SNMP;
- Новый модуль инспектирования XenAPI;
- OpenStack Orchestration (Heat) - обеспечивает работу сервиса для управления жизненным циклом работающих в облаке приложений и автоматизации распределения для приложений вычислительных ресурсов, сетевой пропускной способности и места в хранилище.
- Восстановления после сбоев в процессе обновления стека. API для отмены или отката обновления стека;
- Поддержка новых типов ресурсов;
- OpenStack Database Service (Trove) - система для поддержания сервиса облачных баз данных (Database as a Service), на базе как реляционных, так и не реляционных СУБД. Trove позволяет упростить обслуживание нескольких экземпляров СУБД, предоставляя средства для выполнения таких операций, как развёртывание СУБД, настройка, применение патчей, резервное копирование, восстановление после сбоев и мониторинг. Полноценная поддержка обеспечена для MySQL и Percona. Экспериментальная поддержка доступна для MongoDB, Redis, Cassandra и Couchbase;
- Поддержка асинхронных репликаций (master-slave) между окружениями с MySQL;
- Начальная поддержка кластеров MongoDB;
- Поддержка сопровождения окружений с PostgreSQL;
- Средства резервного копирования и восстановления для Couchbase;
- OpenStack Data Processing (Sahara), новый компонент для автоматизации сопровождения и управления большими кластерами обработки данных, построенных на базе Apache Hadoop или Apache Spark.