Рубрика:
Администрирование /
ИТ-инфраструктура
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ДЕНИС СИЛАКОВ, к.ф.-м.н., старший системный архитектор,Virtuozzo, доцент, Национальный исследовательский университет «Высшая школа экономики», dsilakov@virtuozzo.com
Virtuozzo Infrastructure Platform Хранилище данных плюс платформа виртуализации
В обзорах Virtuozzo 7 [1] и Virtuozzo Storage [2, 3] мы рассматривали два отдельных веб-интерфейса для каждого из продуктов – Virtuozzo Automator и Storage UI. Логичным продолжением стало создание единого интерфейса в новом продукте – Virtuozzo Infrastructure Platform (сокращенно – VIP)
Первая публичная версия VIP (2.5 – в продолжение нумерации версий Virtuozzo Storage) вышла в декабре 2018 года. Унифицированный веб-интерфейс для управления виртуальными машинами (ВМ) и хранилищем данных – не единственное и даже не наиболее значимое новшество нового продукта по сравнению с предшественниками. Существенная часть изменений находится вне зоны видимости пользовательского интерфейса и будет особенно заметна системным администраторам и интеграторам, желающим использовать новую платформу совместно с другими продуктами и просто управлять ей из командной строки и скриптов.
В данной статье мы рассмотрим процесс развертывания Virtuozzo Infrastructure Platform, уделив особое внимание управлению виртуальными окружениями и отличию нового продукта от Virtuozzo и OpenVZ 7.
Архитектура и аппаратные требования
Использование VIP подразумевает создание кластера из нескольких серверов, совместно отвечающих за хранение данных пользователей и запуск ВМ. Структура сервисов хранения данных аналогична Virtuozzo Storage и описана в [2] – основными компонентами являются Chunk Server (CS), непосредственно хранящие блоки данных, и MetaData Server (MDS), содержащая информацию о том, как данные распределены по CS-серверам.
Помимо CS и MDS, ключевым компонентом VIP является панель управления (WebCP), включающая в себя как веб-интерфейс, так и различные сервисы для управления хранилищем данных и виртуальными окружениями.
Минимальные требования к физическим характеристикам серверов, где будет располагаться WebCP, достаточно высоки – 16 логических ЦПУ, 32 Гб оперативной памяти и 100 Гб дискового пространства под систему. Если вы планируете настроить режим высокой доступности для управляющей машины, то этим характеристикам должны соответствовать все машины кластера, которые предполагается использовать в качестве «резервных» для запуска управляющих сервисов (см. рис. 1).
Рисунок 1. Для включения режима высокой доступности веб-панели и управляющих сервисов необходимо иметь по крайней мере три машины, способных их запустить
Для серверов, на которых не предполагается запускать WebCP, рекомендуемые характеристики аналогичны требованиям к Virtuozzo Storage (подробности можно найти в статье [2]):
- по одному процессорному ядру на каждые восемь жестких дисков, но не меньше двух ядер на машину;
- 16 Гб оперативной памяти плюс 0,5 Гб на каждый жесткий диск;
- отдельный жесткий диск емкостью 250 Гб под ОС и обслуживающее ПО;
- четыре или более жестких диска для хранения данных.
Серверы должны быть объединены в сеть с пропускной способностью не менее 1Гб/c (рекомендуется 10 Гб/с).
Для полноценного функционирования хранилища данных и обеспечения его отказоустойчивости потребуется кластер как минимум из пяти машин. Отметим, что при этом VIP можно использовать просто как отказоустойчивое хранилище, по аналогии с Virtuozzo Storage.
Сценарий развертывания на отдельной машине с целью запуска на ней ВМ возможен, но хранилище при этом все равно придется настроить, только без избыточности данных.
Установка
Аналогично другим продуктам Virtuozzo для установки VIP предлагается использовать ISO-образ, скачать который можно на странице [4]. Также Virtuozzo Infrastructure Platform представлен в магазине AWS Marketplace, позволяя развертывать машины с ним в облаке Amazon.
При установке с ISO доступны как интерактивный режим, так и автоматическое развертывание с помощью kickstart-скриптов. Здесь мы остановимся на первом варианте.
В версии 2.5 нет ограничений на количество ВМ, которые можно запускать без покупки лицензии, но есть ограничение на размер хранилища – 1 Тб – вполне достаточно для знакомства с продуктом и даже для развертывания небольшого количества виртуальных машин.
Процесс установки схож с установкой Virtuozzo Storage. На экране установщика необходимо настроить сетевые интерфейсы, согласиться с пользовательским соглашением и задать пароль для root. Далее необходимо отметить диски, на которые необходимо установить продукт, и выбрать компоненты платформы для установки.
При развертывании кластера первой необходимо настроить машину, где будет находиться панель управления, соответственно при установке VIP на эту машину надо выбрать компонент Admin panel and storage (см. рис. 2).
Рисунок 2. При развертывании первого сервера необходимо установить на нем панель управления. В ней вы сможете получить токен для подключения остальных машин
Вам будет предложено ввести пароль для входа в веб-интерфейс и выбрать два сетевых интерфейса – один из них должен «смотреть» во внутреннюю сеть, по которой машины кластера будут общаться между собой, а второй должен принадлежать сети, из которой будет осуществляться доступ к веб-панели. Можно указать один и тот же интерфейс для обеих ролей, однако рекомендуемой конфигурацией является использование изолированной подсети для общения машин кластера, в то время как веб-интерфейс должен быть доступен извне.
Таким образом, веб-панель становится доступной после развертывания первой же машины, и начинать эксперименты можно уже на этом этапе. В частности, уже можно создать кластер – правда, о распределенном и отказоустойчивом хранилище в такой конфигурации говорить не приходится. Впрочем, добавлять узлы в кластер можно и после его создания.
При установке VIP на остальные машины необходимо в установщике выбрать компонент Storage, ввести IP-адрес головной машины с веб-панелью и токен, полученный от нее на вкладке Nodes при нажатии кнопки Add Node. В остальном процесс установки идентичен развертыванию машины с WebCP.
ВМ и хранилище данных в одном интерфейсе
После развертывания первого сервера веб-интерфейс VIP становится доступен на порту 8888 по адресу, указанному в процессе установки. Визуально он схож с Virtuozzo Storage – единственным заметным отличием на главном экране является наличие меню Compute, где осуществляется управление виртуальными окружениями.
Независимо от того, планируете вы работать с виртуальными машинами или нет, первым делом необходимо создать кластер Storage, как описано в статье [2]. А именно перейти в меню Infrastructure → Nodes, выбрать одну из машин и нажать кнопку Create Cluster.
В появившемся окне можно задать основные параметры кластера – в частности, параметры репликации данных и шифрования.
Спустя непродолжительное время выбранная машина должна переместиться в секцию Healthy, после чего можно добавлять в кластер другие серверы.
После создания кластера в меню Storage Services вам станут доступны дополнительные сервисы для работы с хранилищем данных.
Можно настроить доступ к данным по iSCSI (соответствующий пункт меню в VIP носит название Block Storage), S3 и NFS, а также использование хранилища для Acronis Backup.
Рекомендуем настроить режим отказоустойчивости для панели управления либо регулярное резервное копирование ее данных.
В первом случае при выходе машины с панелью из строя новая панель автоматически станет доступной на одной из машин кластера, которые вы укажете в настройках режима отказоустойчивости.
Во втором случае вы сможете самостоятельно восстановить веб-панель с актуальными данными на произвольной машине, входящей в кластер.
Для активации возможности создания виртуальных машин необходимо настроить «вычислительные» (compute) сервисы. Предварительно необходимо определить, какая сеть будет использоваться для взаимодействия этих сервисов между собой в кластере.
Для этого надо перейти в меню Infrastructure → Traffic Types и активировать пункты VM Private, VM External и Compute Management в нужной сети.
По умолчанию VIP использует две сети (публичную и приватную), и весь сервисный трафик должен находиться в приватной сети Private.
Однако вы можете сконфигурировать свои собственные сети и пускать определенные сетевые пакеты через них. Разрешение проведения определенного трафика через сеть означает, что в ней будут открыты соответствующие порты через iptables – именно поэтому не рекомендуется использовать публичную сеть для каких-либо внутренних сервисов платформы.
После этого можно переходить в меню Compute (см. рис. 3) и нажимать кнопку Configure. Мастер создания кластера задаст несколько вопросов касательно сети, которую необходимо использовать для виртуальных машин, настройки встроенного сервера DCHP, DNS и ряд других. Спустя относительно небольшое время все сервисы будут настроены, и мы сможем добавить другие серверы в вычислительный кластер (не обязательно добавлять все серверы – часть из них может использоваться только для хранения данных).
Рисунок 3. Все манипуляции с виртуальными машинами производятся в секции Compute
После того как все нужные серверы добавлены, можно создавать ВМ.
Виртуальные машины
Перед созданием виртуальных машин необходимо позаботиться о том, откуда на них будут устанавливаться ОС. Традиционным подходом является установка из ISO-образов, которые необходимо предварительно загрузить в меню Compute → Images.
Официально в качестве гостевых ОС поддерживаются различные версии Windows, CentOS/RHEL, Debian и Ubuntu. По умолчанию VIP поставляется с минималистским образом Cirros, который можно использовать для тестов.
Добавив нужные образы, можно переходить в меню Compute → Virtual Machines и приступать к созданию ВМ через меню Create VM. Помимо имени машины и ISO-образа, с которого необходимо производить установку ОС, здесь можно настроить параметры сети, диски ВМ, а также выбрать Flavor – количество ЦПУ и объем памяти. VIP содержит набор предопределенных сочетаний этих параметров, но можно создавать и свои в меню Flavors.
Когда все параметры выставлены, нажимайте Deploy для начала развертывания. Вскоре после этого машина перейдет в состояние Active, и вы сможете получить VNC-доступ к ней, нажав кнопку Console.
При первом старте будет произведена загрузка с выбранного образа, и можно будет установить требуемую ОС. Для работы с ВМ можно продолжать использовать VNC от Virtuozzo Infrastructure Platform, но можно и настроить ее собственные средства удаленного доступа – например, сервер SSH.
В меню Compute → Nodes можно осуществлять мониторинг серверов, на которых размещаются ВМ, и получать детальную информацию о каждом из них. В частности, можно узнать, сколько ресурсов потребляет та или иная ВМ, а также запускать, останавливать ВМ и мигрировать их на другие серверы.
Здесь же доступна опция Rebuild VM, позволяющая переустановить виртуальное окружение с использованием исходного ISO-образа с сохранением сетевых настроек и параметров аппаратуры. Наконец многие параметры ВМ можно менять «на лету» – в частности, увеличивать количество ЦПУ и объем оперативной памяти при условии, что такие действия поддерживаются гостевой операционной системой.
Все диски ВМ находятся в распределенном хранилище VIP. Настроить параметры хранения (в частности, избыточность) можно в меню Compute → Storage Policies. Для разных дисков ВМ можно выбирать разные политики хранения – например, если в вашей ВМ операционная система и пользовательские данные размещены на разных дисках, то для системного диска можно избыточность отключить совсем, а вот пользовательские данные реплицировать в соответствии с рекомендуемыми параметрами 2:3 (когда для каждого блока данных кластер в штатном режиме содержит три копии, если их становится меньше двух, запись данных втакой блок блокируется).
Мониторинг
В статье [2] мы описывали, как панель управления позволяет отслеживать состояние кластера и хранимых в нем данных. В VIP общие параметры кластера также доступны на вкладке Monitoring, а на вкладках каждой машины можно отслеживать специфичные для нее показатели (скорость дисков, объем передаваемых по сети данных и тому подобное).
Вкладка Audit log предоставит вам детальный журнал событий, происходящих в кластере, а вкладка Alerts оповестит о событиях и ошибках, требующих внимания системного администратора.
Помимо наблюдения всех характеристик в веб-интерфейсе, можно настроить доступ к ним по протоколу SNMP в меню Advanced Settings. Там же можно скачать готовый шаблон для интеграции с Zabbix.
Как мы описали выше, помимо характеристик хранилища данных и физических серверов, в VIP можно отслеживать состояние и показатели производительности виртуальных машин. Однако этим нововведения не ограничиваются. По сравнению с Virtuozzo Storage VIP собирает гораздо больше метрик и предоставляет больше возможностей по их мониторингу за счет использования Prometheus и Grafana (см. рис. 4). Описание возможностей этой связки уже было представлено в СА (см. [5]), здесь же нам остается отметить, что ссылка на панель Grafana доступна на вкладке Monitoring → Dashboard.
Рисунок 4. Панель Grafanа отображает различные метрики производительности кластера
Виртуальные сети
В последнем разделе секции Compute → Virtual Networks – можно создавать виртуальные сети, которые будут использоваться для взаимодействия виртуальных окружений между собой и с внешним миром.
Сети бывают двух видов:
- приватные – для взаимодействия ВМ между собой. Используя различные приватные сети, можно изолировать одни ВМ от других;
- публичные – имеющие доступ к внешним сетям. Каждая виртуальная публичная сеть привязывается к одной из физических сетей, и диапазон адресов публичной сети должен соответствовать таковому у сети физической.
Отметим, что в VIP используется виртуальный коммутатор OpenVSwitch, о котором уже немало писал «СА» (см, например, [6]). Все заботы по его настройке берут на себя сервисы платформы, позволяя системным администраторам в пару кликов создавать соединения VLAN и Bonding в разделе Networks на странице конкретного сервера.
Внутренняя начинка и работа без веб
Для создания виртуальных окружений VIP использует соответствующие компоненты Virtuozzo 7. В частности, ядро vzkernel, гипервизор kvm в совокупности с qemu-kvm и библиотекой libvirt.
Разница с Virtuozzo 7 заключается в оркестрации виртуальных окружений – если в последней использовалось решение со своим собственным уникальным SDK, то в VIP сделан шаг навстречу стандартизации и используется API, совместимый с OpenStack.
В частности, можно смело использовать OpenStack API для работы со следующими компонентами:
- работа с ВМ (Nova);
- работа с блочными устройствами (Cinder);
- управление образами (Glance);
- управление сетевой конфигурацией (Neutron).
SDK из Virtuozzo 7 не поддерживается, вследствие чего отсутствует утилита prlctl.
Основным же функциональным различием по сравнению с Virtuozzo 7 является отсутствие поддержки контейнеров (и, как следствие, семейства утилит vzctl), поэтому если вы используете легковесные окружения, то VIP пока что не сможет заменить вам Virtuozzo или OpenVZ.
Для работы с кластером из командной строки предоставляется утилита vinfra (входящая в пакет vstorage-ui-client, устанавливаемый по умолчанию на все серверы). С ее помощью вы можете производить все те же действия, что и через веб-интерфейс. Например, можно посмотреть перечень машин в кластере:
# vinfra node list
И добавить новую:
# vinfra node join <node.address>
Полный перечень команд доступен во встроенной справке:
vinfra – h
а перечень опций для каждой команды можно узнать, указав опцию -h при вызове этой команды:
vinfra node join – h
Действия, не затрагивающие состояние кластера (например, получение списка машин), доступны без авторизации. Если же вы хотите что-то модифицировать, то необходимо указать имя пользователя и пароль для аутентификации – с помощью опций -vinfra-username и -vinfra-password либо через переменные среды VINFRA_USERNAME и VINFRA_PASSWORD.
Еще одной полезной утилитой является disk-image-create, входящая в пакет diskimage-builder. Утилита позволяет оперативно создавать образы с установленными ОС в формате QCow2, которые потом можно загружать в VIP и использовать для создания ВМ. Например, вот так можно создать образ с CentOS 7:
# disk-image-create vm centos – t qcow2 – o centos
А вот так – с Ubuntu Trusty:
# DIB_RELEASE=trusty disk-image-create – o ubuntu-trusty.qcow2 vm ubuntu
Детальное описание утилиты и поддерживаемые ОС даны в документации VIP.
По умолчанию образы не содержат пользователей, вход из-под root заблокирован, однако активирован сервис cloud-init – так что при первом запуске ВМ, созданной из такого образа, можно будет через cloud-init создать нужных пользователей, задать им пароли либо положить SSH-ключи.
Это сделано из соображений безопасности – чтобы избежать наличия множества ВМ с одинаковым набором пользователей и паролей.
Если же все-таки нужно создать пользователя с заданным паролем или ключом SSH, то необходимо при создании образа добавить параметр devuser, передав необходимые параметры в переменных окружения. Пользователь всегда будет называться devuser, однако можно наделить его полномочиями запускать sudo без пароля:
# DIB_DEV_USER_PWDLESS_SUDO=1 DIB_DEV_USER_PASSWORD=123 disk-image-create devuser vm centos – t qcow2 – o centos
Заключение
Virtuozzo Infrastructure Platform версии 2.5 можно рассматривать как новую версию Virtuozzo Storage, в которую интегрировали возможности по созданию и управлению виртуальными машинами. По сравнению с Virtuozzo 7 VIP предоставляет абсолютно новые инструменты оркестрации, нацеленные на использование стандартных API и упрощение ее интеграции со сторонними решениями.
Такой радикальный переход пока не позволяет рассматривать VIP как полную замену Virtuozzo 7 – как минимум из-за отсутствия инструментов управления контейнерами. Тем не менее механизмы виртуализации в основном позаимствованы из Virtuozzo 7, что позволяет говорить об их надежности и проверке временем.
- Силаков Д. Automator. Управляем Virtuozzo через веб-интерфейс. // «Системный администратор», № 1-2, 2017 г. – С. 32-35. URL: http://samag.ru/archive/article/3357.
- Силаков Д. Virtuozzo Storage. Распределенное отказоустойчивое хранилище данных для ВМ. // «Системный администратор», № 6, 2017 г. – С. 22-26. URL: http://samag.ru/archive/article/3448.
- Силаков Д. Virtuozzo Storage – за пределами виртуализации. // «Системный администратор», № 11, 2017 г. – С. 20-23. URL: http://samag.ru/archive/article/3535.
- Virtuozzo Infrastructure Platform – https://www.virtuozzo.com/products/virtuozzo-infrastructure-platform.html.
- Яремчук С. Ставим мониторинг Prometheus + Grafana. // «Системный администратор», № 5, 2017 г. – С. 36-44. URL: http://samag.ru/archive/article/3429.
- Руденко А. Теория и практика Open vSwitch. // «Системный администратор», № 10, 2013 г. – С. 14-18. URL: http://samag.ru/archive/article/2532.
Ключевые слова: виртуализация, Virtuozzo, Linux.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|