CloudStack 4. Создание и запуск виртуальных машин

После того как выполнена установка и базовая настройка облака под управлением CloudStack самое время посмотреть на него в работе запустив парочку другую виртуальных машин(далее ВМ) и понаблюдать за их работой.

CloudStack, это высокоуровневая система управления гетерогенной виртуальной инфраструктурой, которая разработана для удобного управления средами с большим количеством различных гипервизоров, предоставляя удобные механизмы управления.  Архитектура CloudSack, изначально сделана многоуровневой и масштабируемой по этому даже для запуска всего одной ВМ необходимо иметь сконфигурированную Зону(Zone), Стойку(Pod), Кластер(Cluster), хотя бы один Хост(Host) в кластере а так же по одному Первичному(Primary) и Вторичному(Secondary) хранилищу.

Перед тем как будет создан и запущен первый instace(ВМ в терминологии CloudStack), стоит отметить, что если все было сделано как в предыдущей статье, то в вашем облаке уже работает несколько ВМ. Эти ВМ-призраки которые не отображаются в разделе Instance являются служебными и увидеть их можно в разделе Infrastructure пункт System VMs. Скорей всего, будут доступны две ВМ тип(Type) у которых будет Console Proxy VM и Secondary Storage VM. Эти служебные ВМ разворачиваются CloudStack’ом из служебного шаблона SystemVM Template(доступен в разделе Templates) по мере необходимости для выполнения тех или иных служебных и фоновых задач. Например ВМ Secondary Storage VM обслуживает все операции связанные с Вторичным хранилищем(Secondary storage) и непосредственно участвует при загрузки новых шаблонов и ISO-образов в CloudStack. Что либо делать с системными ВМ не рекомендуется. CloudStack сам принимает решение когда какая то из ВМ не нужна или наоборот необходимо несколько. Убедитесь, что Secondary Storage VM работает(в сотоянии Running) т. к. без нее загрузка шаблонов и ISO-образов будет не возможной!

SystemVM Template — это шаблон в основе которого лежит 32-битный Debian 6.0 Squeeze  c ядром 2.6.32 с последними обновлениями безопасности и минимальным колличеством устаноленных пакетов. Так же в шаблон включены самые свежие драйвера для виртуального оборудования KVM(virtio drivrs), XEN(PV drivers) и VMware tools.

Новая ВМ может быть развернута из шаблона или может быть выполнена чистая установка с помощью загрузочного ISO-образа. Шаблон ВМ может быть «снят» с уже существующей ВМ а может быть загружен из стороннего места. Шаблоном ВМ является образ диска ВМ(qcow, VHD или VMDK в зависимости от типа гипервизора). Загрузка шаблонов в и ISO-образов в CloudStack производится только по HTTP. В случае если есть необходимость зарегистрировать множество различных ISO-образов, есть смысл поднять в сети локальный web-сервер и опубликовать на нем каталог с образами и шаблонами. Все зарегистрированные и загруженные ISO-образы а так же шаблоны ВМ хранятся на вторичном(Secondary) хранилище(NFS).

1. Регистрируем ISO-образ в CloudStack

В разделе Templates в верхнем выпадающем меню Select view: выбераем «ISO» и жмем + Register ISO(Рис.1.).
Рис. 1. Регистрация ISO-образа

При регистрации нового ISO указываем имя отображаемое в интерфейсе, описание, URL(прямая ссылка на образ), Зону  в которой будет зарегистрирован образ а так же тип операционной системы. Кроме параметров описанных выше, при регистрации образа доступны флажки Bootable(является загрузочным), Extractable(функция этой опции честно говоря не понятна), Public(сделать доступным в списке выбора при установке новой ВМ), Featured(добавить в избранное)

В случае если регистрируемый образ загружается с внутреннего/локального web-сервера, как в моем случае, то необходимо его(web-сервер) или всю подсеть указать в параметре secstorage.allowed.internal.sites раздела Global Settings (Рис.2.).
Рис.2. Разрешаем внутренний web-сервер.

После регистрации нового образа, потребуется некоторое время для его загрузки. При нажатии на имя образа в списке образов, откроется панель свойств. Когда в поле Ready будет Yes, образ можно использовать. При нажатии кнопки Refresh в верху панели свойств можно наблюдать процесс загрузки образа в поле Status.

2. Создание нового инстанса(ВМ)

В разделе Instance жмем +Add Instance и вызываем мастера создания нового инстанса(ВМ).
Рис.3.Мастер создания нового инстанса(ВМ)

На первом шаге необходимо выбрать Зону в которой будет зарегистрирован новый инстанс а так же вариант создания из шаблона или как в моем случае с помощью ISO-образа. На втором шаге, выбираем один из ранее загруженных ISO-образов. Третьим шагом будет выбор Compute offerings(Рис.4.). Здесь стоит остановится по подробнее.

В отличии от привычных платформ виртуализации типа XenServer или Proxmox, в CloudStack  параметры ВМ не определяются произвольно для каждой ВМ при ее создании путем передвижения флажка оперативной памяти и указания количества CPU. В CloudStack используются шаблоны (Offerings).

Offerings — это своего рода предустановки, шаблоны ограничений на тот или иной вид ресурса. Существуют несколько категорий шаблонов; System Offerings, Compute Offerings, Disc Offerings и Network Offerings.

Compute Offerings — описывает основные ресурсы ВМ, такие как максимальная чистота и количество CPU, объем ОЗУ место хранения ВМ(локально или на общем хранилище).

System Offerings – описывает наборы ресурсов для системных ВМ(System Vms) нескольких типов; System Offering For Secondary Storage VM, System Offering For Console Proxy, System Offering For Software Router, System Offering For Elastic LB VM

Disc Offerings — предустановки для дисков ВМ. Размеры и описание.

Network Offerings — это своего рода шаблон с правилами фаервола и сетевыми ограничениями для ВМ. Здесь можно описать шаблоны ограничивающие пропускную способность, VLAN’ы а так же разрешить или запретить те или иные типы трафика.

При создании новой ВМ в CloudStack к ней применяются несколько шаблонов описывающих ее ресурсы. По умолчанию, в CloudStack уже существует несколько предустановленных шаблонов разных категорий. Свои шаблоны в любой из категорий можно описать в разделе System Offerings. После описание шаблона ресурсов, его можно выбрать при создании новой ВМ.
Рис.4. Выбираем шаблон ресурсов ВМ

Третий и четвертый пункт будет заключаться в выборе предустановленных(описанных ранее)шаблонов ресурсов для ВМ и ее диска. На пятом шаге мастера нужно выбрать Security Groups для новой ВМ. Security Groups — это шаблон со стандарнтными правилами фаервола для исходящего и входящего трафика. Создать свой собственный шаблон с особыми правилами можно в разделе Network далее Select view: Security Groups. Здесь, можно создать новую группу, задать для нее произвольное имя и создать любое колличество правил для исходящего и входящего трафика. После создания Security Group, в нее можно включать свои собственные ВМ. Если при создании ВМ не добавить ее в одну из своих Security Group то ВМ будет включена в группу по умолчанию в которой разрешен исходящий но запрещен любой входящий трафик.  Шестой шаг мастера — заключительный, задать имя новой ВМ а так же просмотреть указанные на шагах ранее параметры и при необходимости изменить их. Если все информация собрана мастером верно, то жмем Launch VM.

После того как ВМ заданной конфигурации будет создана, она сразу же будет запущена. В момент создания новой ВМ, CloudStack в дополнение к указанному нами имени присвоит ей внутренне имя вида i-15-28-VM, где 28 — это уникальный идентификатор ВМ. По этому идентификатору можно легко найти образы дисков ВМ в списке образов. Имена всех новых образов ВМ стандартны — ROOT-<id> и DATA-<id>. Данные ВМ хранятся на диске с префиксом DATA. Для чего используется диск с префиксом ROOT объемом в ~136 Кб я к сожалению выяснить не смог не из документации не из сторонних источников. Расположение образов ВМ на том или ином Первичном(Primary) хранилище(если таковых несколько)выберает CloudStack автоматически. При создании нового виртуального диска в разделе Storage, мы можем указать произвольное имя для нового диска и прикрепить диск(Attach Disc)к любой из зарегистрированных МВ но, выбрать в какое из нескольких хранилищ будет помещен новый образ диска мы, к сожалению не можем. Перемещение образа на другое хранилище после его создания, так же не возможно.

При выборе работающей  ВМ в разделе Instances откроется панель действий и свойств ВМ где мы можем выполнять стандартные операции;Остановить ВМ через ACPI(Stop instance), Перезагрузить ВМ через ACPI(Reboot instance), Принудительно остановить ВМ(Destroy instance), Изменить некоторые свойства(Edit) такие как OS Type, Display name и.т.д. Так же можем Подключить один из зарегистрированных ISO-образов(Attach ISO), Сбросить пароль(Reset password), Сменить шаблон ресурсов(Change service), Мигрировать ВМ на другой хост кластера(Migrate instance) и Запустить консоль(View console).

Для чего нужна функция Reset password, я к сожалению так и не узнал. В документации упомянуты все действия с ВМ описанные выше, а о Reset password почему то не слова. Если у вас есть какие либо предположения, пожалуйста пишите.
Рис. 5. Панель действий и свойств работающей ВМ

На вкладке Monitor можно просмотреть все разом или выбрать один конкретный график производительности ВМ.
Рис. 6. Список доступных графиков производительности.
Рис. 7. График производительности CPU

При необходимости, данные мониторинга в формате RRD можно загрузить единым архивом и построить графики сторонними средствами на пример при помощи Cacti.

На вкладке Statistics, можно посмотреть текущую утилизацию CPU а так же объем использованного трафика(Network Read, Network Write).

Теперь, запускаем консоль ВМ(View console) которая кстати сказать работает через служебную ВМ  Console Proxy VM по защищенному каналу(SSL) и использует подписанный сертификат, так что проблем с безопасностью в браузере быть не должно.