VMware vCloud Suite. Разворачиваем vCloud Direc­tor

Это первая публикация в цикле статей, посвященном vCloudSuite(vCS).

vCS — это набор продуктов включающий все необходимое для построения полноценного, сервис-ориентированного, адаптивного к любым задачам облака, как частного, публичного или гибридного. Основой для этого служит виртуальная инфраструктура VMware vSphere.

Сама по себе тема довольно обширная и сложная с технической точки зрения. В этой работе я лишь немного коснусь теоретических основ и более детально освящу процесс развертывания главного компонента под названием vCloud Director(vCD). Последующие статьи будут больше посвящены конфигурированию и техническим тонкостям vCD и vCS а так же самим концепциям облачной виртуальной инфраструктуры.

Примечание: В состав vCloud Suite входит несколько отдельных продуктов о которых ниже. Среди них, vCloud Director — главный компонент являющийся сервером управления облаком. По этой причине, в основном я буду говорить именно о vCloud Director и лишь в общих случаях упоминать весь набор продуктов vCloud Suite или его конкретные компоненты.

Пару слов про облака

К сожалению все еще приходится начинать с этого вопроса так как многие считают что облако это обычный виртуальный хостинг на OpenVZ, Xen или аналогичных платформах. И это не удивительно так как часть хостинг провайдеров не меняя свою многолетнюю инфраструктуру попросту добавили к названию «облачный сервис» — дабы быть в тренде. Итак, согласно определению NIST(Национальный институт стандартов и технологий) облаком является сервисная модель, которая позволяет, используя удобный сетевой доступ, по требованию, получить доступ к общему пулу настраиваемых вычислительных ресурсов, например: сети, сервера, хранилища, приложения или услуги. Получаемые ресурсы могут быть быстро настроены и распределены по своему усмотрению с минимальными усилиями и без необходимости взаимодействовать с поставщиком услуг. Так же указаны пять основных критериев облака (самообслуживание, сетевой доступ по требованию, объединение ресурсов, эластичность ресурсов, подсчет только используемых ресурсов).

Исходя из этого, классические платформы виртуализации, на базе которых часто предоставляют услуги хостинга, например: VMware vSphere, XenServer, KVM а так же OpenVZ не являются облачными платформами. Их средства управления требуют серьезной технической подготовки и предназначены для инженеров и специалистов. Так же они едва ли соответствуют вышеперечисленным критериям облачной платформы. Именно по этому существуют такие высокоуровневые платформы, как: VMware vCloud Director, CloudStack, OpenStack, Xen Cloud Platform, OpenNebula и прочие, реализующие модель IaaS (Infrastructure as a Service). С помощью vCD можно легко создавать виртуальные дата-центры(vDC) — некий набор вычислительных ресурсов и предоставлять к ним удобный, интуитивно понятный доступ обычным пользователям-клиентам. И все это с динамическим подсчетом ресурсов, разграничением прав с наращиванием тех или иных мощностей по требованию а так же с автоматизацией большинства типичных задач.

Редакции и лицензирование

Так как vCD это лишь сервер управления и сам по себе не чего не может, отдельно он не продается и входит в набор vCloud Suite состав которого выглядит следующим образом;

  • vSphere c редакцией Enterprise Plus — собственно основа основ,

  • vCloud Director — «гвоздь сегодняшней программы»,

  • vCloud Connector – механизм позволяющий соединять облачные инфраструктуры на базе VMware vSphere как частные так и публичные,

  • vCloud Networking and Securityнабор продуктов, в числе которых и vSheild Manager в совокупности реализующих функции виртуального сетевого экрана и DLP-системы для платформы vSphere.

  • vCenter Site Recovery Manager — решение, выполняющее автоматическое аварийное восстановление и тестирование критических ВМ и приложений на резервной площадке,

  • vCenter Operations Management — средства мониторинга и диагностики,

  • vFabric Application Director — средство автоматической настройки и развертывания многоуровневых облачных приложений,

  • vCloud Automation Center — средство автоматизации различных задач для крупных инфраструктур.

Не вдаваясь в подробности лицензирования скажу лишь, что получить vCD можно только в составе одной из редакций vCloud Suite. Всего их три; Standart, Advanced и Enterprise. Основные отличия можно увидеть на рисунке №1.
vmware_vcloud_director_install
Рис №1. Сравнение редакция vCloud Suite.

Наиболее простым и понятным будет случай если у вас еще ничего нет. То есть о виртуализации и об облаках вы только задумались. Если так, то покупаете подходящий по функционалу и стоимости пакет vCloud Suite и разворачиваете все с нуля.

Если же инфраструктура vSphere уже существует, то придется выполнять обновление лицензии до vCloud Suite по специальной программе. При этом вносить какие либо изменения в саму инфраструктуру не обязательно. Эта тема выходит за рамки статьи и ее лучше обсудить со своим ближайшим поставщиком.

Базовые блоки и системные требования

В этом разделе мы более подробно поговорим о необходимых для облачной инфраструктуры базовых блоках. Напомню, что текущая актуальная версия vCD — 5.5.1. Первым делом, отмечу, что vCD в отличии от открытых облачных платформ типа CloudStack поддерживает только собственные гипервизоры — ESXi начиная с версии 5.0.

Так как vCD управляет множеством ESXi-хостов по прежнему с помощью сервера vCenter то он также необходим. Требуемая версия — не ниже 5.1.

Довольно сложно получить все преимущества от виртуализации, не используя общее сетевое хранилище по этому его наличие крайне желательно.

Для безопасного подключения ВМ к внешней сети а так же для создания изолированных или территориально распределенных сетей(VXLAN) необходим продукт под названием VMware vShield Manage из состава vCloud Networking and Security. Резюмируя выше сказанное, уже вырисовывается базовая инфраструктура VMware vSphere. Причем подойдет не каждая редакция. Нужна как минимум Enterptise, а если необходимы изолированные сети, то придется обзавестись лицензией на Distributed vSwitsh который доступен только в редакции Enterprise Plus. Собственно в базовую редакцию vCS входит именно она.

Так же для работы vCD необходима база данных (БД). Поддерживаются БД от Microsoft начиная от SQL Server 2008 Enterprise Edition (желательно с последним пакетом обновлений) а так же Oracle 11g. Точные версии можно посмотреть на специальной странице посвященной совместимости продуктов.

Интересно, что БД в инфраструктуре vCD является самым нагруженным узлом. Сервер исполняющий ее роль рекомендуется оснастить 16-ю гигабайтами памяти, четырьмя процессорами и иметь 100 Гб дискового пространства.

Что касается системных требований самого vCD то они достаточно скромные и сравнимы с требованиями к ресурсам сервера vCenter.

Развертывание

Устанавливается vCD исключительно на следующие дистрибутивы;

  • Red Hat Enterprise Linux 5 (64-bit), Update 4,5,6,8
  • Red Hat Enterprise Linux 6 (64-bit), Update 1,2,3

а так же на соответствующие версии CentOS.

Для тех кому не хочется возиться в консоли Linux, но хочется взглянуть на функционал vCD, есть подготовленная виртуальная машина(Virtual Appliance) от VMware. Развернув его на одном из ESXi-хостов, останется только подключить vCenter и vSheild Manager. Стоит отметить, что такая конфигурация не подходит для производственной среды и не поддерживается VMware.

Я же предпочитаю пройти все стадии самостоятельно и лучше разобраться с внутренним устройством продукта. По этому будем устанавливать все с нуля. В моем случае использовался дистрибутив CentOS 6.3.

Итак, весь процесс установки будет состоять из нескольких шагов;

  • Подготовка БД

  • Установка базовой ОС

  • Настройка сети базовой ОС

  • Установить не достающие пакеты

  • Установить пакет vCD

  • Создание SSl-сертификатов

  • Запуск пост-инсталяционного скрипта

  • Подключение сервера vCenter и vSheild

Теперь подробнее по каждому из пунктов

Подготовка БД

В моем случае использовался MS SQL Server 2012 Standard (64-bit) по этому, будет продемонстрирован пример настройки именно его.

Требования к БД а точнее к ее настройке довольно специфические. Кроме указанных выше системных требований необходимо использовать смешанный режим аутентификации т.к. vCD не поддерживает Windows аутентификацию. Так же, VCD активно использует tmpdb которая в результате различных операций может значительно расти в размере. Рекомендуется разместить файлы этой БД на боле быстром массиве с достаточным объемом свободного места.

Создание самой БД вполне стандартно и не будет описываться в этом разделе. Единственное, рекомендуется установить параметры сортировки в «Latin1GeneralCS_AS».

Далее, необходимо установить уровень изоляции транзакций для данной БД. Самый быстрый и точный способ это сделать, выполнить следующий запрос;

USE [ИМЯ_БД]
GO
ALTER DATABASE [
ИМЯ_БД] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [
ИМЯ_БД] SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE [
ИМЯ_БД] SET READ_COMMITTED_SNAPSHOT ON WITH NO_WAIT;
ALTER DATABASE [
ИМЯ_БД] SET MULTI_USER;
GO

Теперь необходимо создать пользователя. Можно в ручную или с помощью простого запроса;

USE[ИМЯ_БД]
GO
CREATELOGIN [ИМЯ_ПОЛЬЗОВАТЕЛЯ] WITHPASSWORD = ‘ПАРОЛЬ‘, DEFAULT_DATABASE =[ИМЯ_БД], DEFAULT_LANGUAGE =[us_english], CHECK_POLICY=OFF
GO
CREATEUSER [ИМЯ_ПОЛЬЗОВАТЕЛЯ] forLOGIN [ИМЯ_ПОЛЬЗОВАТЕЛЯ]
GO

И наконец, делаем пользователя владельцем созданной выше базы;

USE [ИМЯ_БД]
GO
sp_addrolemember [db_owner], [
ИМЯ_ПОЛЬЗОВАТЕЛЯ]
GO

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

Установка базовой ОС

Тут нет не чего специфического. Я использовал CentOS 6.3 в минимальной сборке с настройками по умолчанию. Это самый свежий из поддерживаемых vCD дистрибутивов(6.4, 6.5 официально не поддерживаются). Стоит отметить, что vCD может работать как на физическом сервере так и на виртуальном. Второй вариант более распространен и является рекомендуемым по этому установка CentOS была выполнена на виртуальную машину(ВМ).

Настройка сети базовой системы

Для работы vCD необходимо иметь как минимум два IP адреса. На одном будет работать веб-сервер обслуживающий веб-интерфейс управления vCD. Второй, служебный используется как своего рода прокси-сервер для перенаправления локальных консолей ВМ в интерфейс vCD (см. примечание). Конфигурацию с двумя IP можно получить, используя два отдельных сетевых интерфейса, или же создав дополнительный виртуальный интерфейс(Alias) на единственном сетевом адаптере. В случае если базовая ОС установлена на виртуальную машину, предпочтительнее использовать отдельные виртуальные сетевые адаптеры. Если же сервер физический, и в наличии лишь один сетевой интерфейс, то решается это следующим образом.

Например, в системе настроен интерфейс eth0. Для того, что бы «повесить» на него еще один IP-адрес необходимо создать дополнительный конфигурационный файл;

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

Cоследующимсодержанием;

DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR= <ip-адресс>
NETMASK=<маска-подсети>

После этого перезагружаем сетевую подсистему;

Примечание: С помощью VMwarevSphereClient или ее современной веб-версией, можно получить прямой доступ к экрану любой из запущенных ВМ, так как будто к ней на прямую подключен монитор. Работая с vCD, пользователь-клиент не имеет доступа к средствам управления vSphere. Все, что у него есть это консоль vCD. При этом доступ к своим ВМ ему так же нужен, как минимум для первичной настройки сети и разрешения удаленного доступа. Для этого и используется консоль-прокси на vCD с отдельным IP. Через него, пользователю доставляется консоль ВМ прям в интерфейсе vCD.

# service network restart

и видим в системе еще один — псевдо-интерфейс(eth0:0). Проверить его работоспособность можно с помощью пинга с другого сервера.

Кроме этого необходимо создать DNS-записи для каждого из этих IP-адрессов. Например vcd01.company.com для консоли управления и vcd01-rc.company.com для проксирования консолей ВМ. Перед переходом к следующему шагу необходимо убедиться что DNS возвращает правильные адреса и имена.

Установка не достающих пакетов

Если запустить установку vCD в не подготовленной системе, то установщик быстро завершит работу указав список не достающих пакетов.

Все их можно установить одной командой из стандартных репозиториев;

# yum -y install alsa-lib libICE libSM libX11 libXau libXdmcp libXext libXi libXt libXtst pciutils redhat-lsb

Устанавливаем пакеты vCD

Теперь необходимо загрузить установочный пакет самого vCD. Для этого, потребуется зарегистрироваться или войти если учетная запись VMware уже существует. Когда загрузка будет завершена и установочный пакет будет перемещен на наш сервер можно приступать к установке;

# bash /<путь_к_пакету>/vmware-vcloud-director-5.5.1-1654672.bin

Хотя, в CentOS 6.3 является официально поддерживаемым дистрибутивом, инсталлятор выдаст запрос на подтверждение установки, заявив обратное. Видимо ему хочется именно RHEL. В остальном, установка пройдет быстро и без вопросов.

Создание самоподписанных SSL-сертификатов

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

Создание сертификата для управляющего интерфейса;

# /opt/vmware/cloud-director/jre/bin ./keytool –keystore /etc/certificates.ks –storetype JCEKS –storepass <ПАРОЛЬ> -genkey –keyalg RSA -alias http

Далее будет необходимо ответить на ряд стандартных для этой процедуры вопросов, таких как имя организации, город и так далее.

И аналогично для адреса прокси;

./keytool –keystore /etc/certificates.ks –storetype JCEKS –s torepass <ПАРОЛЬ> -genkey –keyalg RSA –alias consoleproxy

Здесь будут те же вопросы, ответы на которые можно давать аналогичные.

Запуск конфигурационного скрипта

Теперь все готово и можно приступить к конфигурированию vCD;

# bash /opt/vmware/vcloud-director/bin/configure

Настройка vCD производит в формате вопрос-ответ. Всего несколько вопросов. На первом шаге необходимо указать IP-адресс из списка доступных, на котором будет работать веб-сервер(Рис. №2).
vmware_vcloud_director_installРис.№2 Настройка vCD. Выбор IP-адресса.

Далее из оставшегося списка необходимо выбрать IP-адресс для прокси. На третьем шаге нужно указать путь к хранилищу сертификатов который мы задали на предыдущем шаге при их создании, в моем случае /etc/certificates.ks. Если хотим отправлять логи на сервер SYSLOG, то указываем его параметры. И наконец выбираем из предложенных вариантов, какой тип ДБ будем использовать. Далее вводим параметры подключения БД, адрес сервера, имя базы, имя пользователя и пароль. Все должно пройти гладко. В итоге будет предложено запустить службы vCD и войти браузером по указанному адресу.

Подключение сервера vCenter и vSheild

При первом входе в веб-консоль vCD вас встретит мастер первичной настройки(Рис. №3). Здесь необходимо принять условия лицензии, ввести ключ продукта и задать пароль к учетной записи администратора.
vmware_vcloud_director_installРис. №3 Мастер первичной настройки vCD

Далее придется выполнить вход под учетной записью «Administrator», используя указанный выше пароль, и запустить мастер подключения к vCenter и vSheild Manager(Рис. №4). Более детально все эти процессы будут рассмотрены в следующей статье.
vmware_vcloud_director_installРис. №4 Мастер подключения к vCenter и vSheild Manager

Вывод

Как уже было сказано в первых разделах статьи, vCD это лишь средство управления высокого уровня. Его применение возможно только при наличии базовой (как минимум) инфраструктуры vSphere (ESXi, vCenter, vSheild, общее хранилище) причем, все это уже должно быть настроено и работать.

В этой статье, продемонстрирована установка первого сервера vCD в группе. Подключив к нему ресурсы vSphere(vCenter, vSheild) мы получим, в терминологии VMware –ячейку (vCloud Cell). Облако, может состоять всего из одной такой ячейки или из множества(несколько vCD в группе). Ячейки могут быть разнесены территориально или географически но подключаются к единой БД и действуют как «единое целое». Архитектуре, а так же техническим особенностям vCD будут посвящены следующие статьи.