Гипервизоры, платформы виртуализации, облачные платформы

Статья была написана 24 ноября 2012 г. Перенесена из старого блога.

Еще лет 5-ть назад, какого нибудь не продвинутого ИТ-шника можно было запросто поставить в тупик словами типа, «виртуализация», «гипервизор». Несколько лет назад пугали не особо известными платформами виртуализации класса Proxmox и XenServer. Сейчас же очень круто пугать ИТ-шников новомодными названиями платформ для построения облаков типа OpenStack и CloudStack.
Хочу утрясти информацию в собственной голове и в головах тех кто еще не понимает, что есть что и с чем его едят. А так же заложить базу для последующих статей которые будут значительно понятнее и полезнее понимая изложенный в этой статье материал.

Гипервизор — ядро платформы виртуализации

Сейчас о гипервизорах как таковых почти не говорят и с пеной у рта не спорят какой лучше т. к. свои прямые обязанности современные гипервизоры выполняют примерно одинаково а исход битвы между платформами виртуализации решается на более высоком уровне а именно на уровне функционала дополнительных утилит и средств управления всем этим хозяйством. По большому счету, гипервизор — это прослойка программного обеспечения, или даже микро операционная система лежащая между физическим оборудованием и виртуальными «коробочками» с виртуальным(эмулированным) железом в рамках которых запускаются операционные системы чувствующие себя в этих виртуальных коробочках как на железных серверах. Гипервизор выполняет функции контроля и распределения физических ресурсов между виртуальными машинами а так же обеспечивает изоляция множества операционных систем друг от друга(каждая в своей коробочке). Так же, сейчас в некоторых случаях уже можно считать обеспечение сетевого взаимодействия, безопасности и защиты виртуальных машин одними из функций гипервизора. На сегодняшний день, наиболее функциональными и распространенными гипервизорами являются ESXi(VMware), Xen(Citrix), Hyper-V(Microsoft) и KVM(RedHat). Каждый из перечисленных гипервизоров лежит в основе различных платформ виртуализации. Популярный OpenVZ не привожу в качестве гипервизора т.к. На мой взгляд это все таки немного другое.

Дополнительные утилиты

Гипервизор сам по себе, почти бесполезная вещ. Например эмуляция многочисленного виртуального оборудования в гипервизоре KVM выполняется пакетом QEMU, а реализация сетевой подсистемы представленной в виде виртуального многоуровневого коммутатора занимается открытый пакет под названием Open vSwitch. Open vSwitch так же лежит и в основе сетевой подсистемы в Xen Server и десктопного VirtualBox’a. Дополнительными утилитами так же можно считать программное обеспечение позволяющее интегрироваться с службами каталогов типа Active Directory а также различной реализации средства мониторинга, резервного копирования и средства работы с сетью и системами хранения данных типа NAS, SAN. Эти и многие другие примочки дополняют функции гипервизора а иногда являются его частью предоставляя нам дополнительные удобства и средства контроля.

Платформы виртуализации

Платформа виртуализации – это связка гипервизора, дополнительных компонентов и удобных средств развертки, настройки и управления всем этим хозяйством. Под средствами управления и настройки я понимаю программное обеспечение типа vSphere Client или vCenter Server для централизованного управления ESX/ESXi, XenCenter для XenServer, Proxmox с KVM на борту а так же oVirt который основан на библиотеке libvirt и способен управлять множеством гипервизоров но в основном конечно открытые KVM и Xen. Сущестует еще множество систем управления теми или иными гипервизорами а так же WEB-управлялок и консольных утилит типа того же libvirt. Совокупность гипервизора, дополнительных утилит, средств централизованного объединения и управления, мониторинга и обслуживания виртуальной инфраструктуры(в основном на базе одного гипервизора) представляет собой платформу виртуализации. На сегодняшний день, наиболее развитыми, популярными в различных сегментах можно считать; VMware vSphere(на базе ESX/ESXi), XenServer(на базе Xen), RHEV(на базе KVM), Hyper-V(понятно на чем) а так же открытые ProxmoxVE (на базе KVM), хоть и не особо развитый и популярный но подающий надежды oVirt(на базе KVM,Xen …).

Облачные платформы (Наиболее интересная часть статьи)

Платформы для построения облаков предоставляют нам дополнительный уровень иерархии позволяя абстрагироваться не только от физического оборудования но и от различных гипирвизоров совместно используемых в единой инфраструктуре. Облачные платформы не отменяют и не заменяют полностью, привычные средства управления а вводят новые понятия и предоставляют новые возможности делая работу с огромными инфраструктурами проще и логичнее не только для администраторов но и для простых пользователей которые являются неотъемлемой частью концепции облаков. Платформы «облачного» класса позволяют объединить обычно не совместимые между собой платформы виртуализации а так же различные ресурсы в единый пул, предоставляя удобный, централизованный интерфейс управления, распределения и контроля. При чем некоторая часть возможностей управления своей маленькой частью большого облака делегируется пользователям/владельцам.

Основные(на мой взгляд) критерии облачной платформы:

  • Портал самообслуживания

Пользователи/клиенты должны иметь возможность самостоятельно создавать, запускать/останавливать инcтансы. При этом должна быть возможность определить лимиты пользователя. Например: не более 2-х инстансов/не более 2-х публичных IP/не более 6-и снапшотов и т.п.

  • Настраиваемые шаблоны инстансов

Все инстансы, в идеале должны разворачиваться из шаблонов за раннее определенных администратором инфраструктуры. Напрмер: Smal Instance = 1 Core/ 500 MHZ/ 512 MB/20 GB; Medium Instance = 1 Core/ 1GHZ/ 1GB/50 GB и.п.
В таком случае, создание нового инстанса сводится к простому выбору шаблона с понятным именем. Также, шаблоны не позволяют выделить для нового инстанса больше ресурсов чем определено в шаблоне, что в некоторых случаях обезопасит от перерасхода ресурсов.

  • Проекты/Виртуальные дата-центры

В случае с Iaas, должна быть возможность выделить пользователю/клиенту некий пул ресурсов над которым ему делегируется управление. Доступ к этим выделенным ресурсам осуществляется через упрощенный административный интерфейс. В таком пуле ресурсов(в CloudStack наывается проэктом) пользователь/клиент сам способен определять шаблоны инстансов, изменять конфигурацию сетевого взаимодействия между своими инстансами и прочее.

  • Гибкое управление правами учетных записей

Тесная интеграция с службами каталогов типа Active Directory и возможность гибко разграничивать возможности администраторов, пользователей и групп пользователей.

  • Скрытие внутренней архитектуры от пользователей/клиентов облака

В портале самообслуживания или в админке проекта/вирт.датацентра пользователю не должно быть видно внутреннее устройство облака. Пользователь видит абстрактные ресурсы и пользуется ими как угодно не подозревая на чем именно все работает и как взаимодействует.

  • Не обязательно поддержка множества гипервизоров(KVM, ZEN, ESXi и.д.)

Конечно, чем больше поддерживается платформ виртуализации тем продукт будет популярнее. Так же в плюсы можно добавить возможность создания архитектуры на базе разных продуктов задействовав сильные стороны каждого из них. Например ProxmoxVE, предлагает более эффективную контейнерную виртуализацию на базе OpenVZ на ряду с полной виртуализацией KVM в случаях когда о контейнерах не может идти и речи, например при виртуализации Windows систем. Но тем не мене, чаще всего компании, внедряющие у себя или где либо технологии виртуализации, останавливаются на выборе одного продукта для всех случаев. Одна платформа значительно сокращает количество проблем и сложностей при внедрении и дальнейшей поддержке.

На сегодняшний день, если брать за основу описанные выше критерии то облачными платформами можно считать VMware vCloud Director, Xen Cloud Platform, CloudStack, OpenNebula, Eucalyptus и с натяжкой активно развивающийся но все еще очень сырой и не пригодный к использованию OpenStack. Выше описанные критерии составлены из опыта работы с CloudStack и OpenNebula показавшие себя как вполне зрелые для развертки платформы. Хотя, мое мнение, что все опенсорсное еще очень и очень сырое….

Комментарии и дополнения приветствуются).