Nutanix: Project Acropolis — KVM Management Tool
Наш проект, носящий название Acropolis (др.-греч. ἀκρόπολις — верхний город, обычно крепость на вершине холма в греческом городе, контролирующая все окрестности ввиду своего положения) был начат еще в прошлом году, и вскоре уже по-максимуму использовался для внутренних задач компании Nutanix. Лучший способ разработать что-то качественное — самим активно пользоваться своим продуктом. Практически вся внутренняя IT инфраструктура (включая «святая святых» — разработку самого продукта) работает на Acropolis уже весьма продолжительное время.
В течение прошлого года мы уже показывали и немного рассказывали о проекте, вернее о его пред-релизной версии. Например, участвовавшие в конференции HighLoad++ 2014 возможно слышали наш рассказ о том, что это такое и куда планируется развиваться, там же на стенде можно было посмотреть на продукт «вживую» (правда, только CLI управление). И вот, наконец, в январе, в одном из обновлений Nutanix OS (NOS 4.1.1) разработчики компании выпустили первую публичную версию Acropolis (или как он сейчас будет официально называться KVM Management Tool) «в апстрим».
Технически, Acropolis / KVM Management Tool — это служба, работающая внутри наших CVM (Controller VM), как следствие — кластеризованная, распределенная, доступная на всех нодах (серверах) одновременно, линейно масштабируемая вслед за ростом облака система управления, и на данный момент не имеющая прямых аналогов на рынке система управления открытым гипервизором KVM, встроенным в ядро Linux (у нас — CentOS 6).
KVM Management Tool не имеет ахиллесовой пяты практически всех существующих на сегодня средств управления гипервизорами / облаками (включая OpenStack) —, а именно использования SQL-серверов для хранения конфигураций VM и кластера, что влечет за собой массу ограничений (например ограничение размера кластера, количества VM в облаке и т.д.) вкупе с проблемами надежности и производительности.Иначе говоря, вместо выделенных серверов / сервисов управления кластером, каждый нод является равноценным элементом единой системы управления.
Как результат, Acropolis способен без проблем масштабироваться практически безлимитно (что особенно важно для Nutanix, так как масштабируемость, scale-out — наша ключевая фишка решения), обладает крайне высокой скоростью работы (сотни тысяч и миллионы VM — не проблема, включая полный мониторинг и все метрики производительности на каждую VM) и способен выдерживать множественные отказы оборудования.
Например — всего при 5 узлах (серверах, нодах) в кластере — любые два могут отказать одновременно, что является для традиционных решений аналогом одновременного отказа 2-х SQL и управляющих серверов одновременно. Более того — при 12 узлах (3-х блоках) — может отказать целиком один блок (т.е. 4 управляющих сервера).Другими словами, мы способны выдержать одновременный отказ двух и более «vCenter-аналогов» и БД серверов, причем это встроено и доступно изначально, при этом не требуя никакой дополнительной особой конфигурации.
Не лишним будет напомнить, что подавляющее большинство частных облаков на сегодняшний день обычно имеют только один SQL сервер (vCenter в том числе) ввиду сложности и дороговизны резервирования баз данных (Oracle RAC или IBM DB2 PureScale — обычно речь идет о десятках или сотнях тысяч долларов только на лицензии).
Если вы размышляете о том, что было бы неплохо перейти с крайне охочей до ваших денег vSphere, при всех плюсах оной как продукта, на что-то куда более свободное — посмотрите на Nutanix + KVM + KVM Management Tool.Особенно это может быть интересно для компаний, рискующих попасть под падающий топор сами знаете чего и всей сопутствующей этому головной боли для IT-отдела.
Версия KVM, которую мы применяем — полностью открыта (в том числе для сертификации в РФ по высшему уровню) и базируется на QEMU из Centos 6.x (в ближайшее время переходим на 7.x), что позволяет говорить об «импортозамещении» — точнее переходе, в значительной степени, на открытый код и полностью открытый (в том числе документированный) формат хранения всех данных (Nutanix — одна из немногих компаний, которая последовательно и открыто публикует подробности внутреннего устройства своего продукта, (смотрите Nutanix Bible), а автор ее — Steven Poitras — один из разработчиков в компании)Очевидно, что это является крайне ценным прежде всего для государственных органов, корпораций и прочих структур, но в том числе и для многих коммерческих компаний.Например, наш первый крупный клиент, перешедший на Акрополис — крупная Швейцарская компания, один из лидеров индустрии в DACH регионе, осуществили полную миграцию и крайне довольны результатом.
Переход с ESXi при этом очень прост и фактически является простым копированием VMDK файла с инсталляцией QEMU-tools вместо vmware-tools на ваши VM (что можно сделать до миграции), причем это требуется только для windows машин.
Вы можете скопировать виртуальный диск (или диски) вашей виртуальной машины c ESXi на Nutanix (подмонтировав по NFS на ESXi хосте), непосредственно его использовать для создаваемой VM в KVM, и прямо с такого диска запуститься.KVM умеет конвертировать VMDK в raw (это делается буквально одной командой — qemu-img).Процесс этот может быть автоматизирован, и мы собираемся включить полную автоматизацию процесса в скором будущем в наш Prism UI (графический интерфейс администрирования кластера Nutanix).
Таким образом, перенести тысячи VM из VMware в KVM за несколько дней — совершенно не проблема.
В KVM могут работать самые разные OS (не только Linux). — практически все Windows, разумеется Linux, разные *nix (включая FreeBSD и Solaris). Список поддерживаемых OS тут.
Среди важных и удобных встроенных «фишек» — управление сетью (распределенным коммутатором) и встроенный IPAM (IP Address Management).Фактически у вас есть бесплатный распределенный виртуальный коммутатор (который у других вендоров доступен обычно только в Enterprise-редакциях с соответствующими уровню лицензии ценами), с управлением VLAN, интерфейсами, назначением IP адресов для VM (статических или динамических).
Картинки всегда лучше тысяч слов, поэтому постараюсь вместо долгого и утомительного рассказа показать скриншотами все то, что сегодняшняя версия умеет.
После обновления Nutanix OS, внутренней OS кластера и CVM, Controller VM, до версии 4.1.1 (происходит это, кстати, без прерывания доступности ваших VM) сервис KVM Management Tool, при использовании KVM как установленного гипервизора, автоматически запущен и доступен.
Стартовая страница Prism UI, админского интерфейса Nutanix Cluster, выглядит примерно как на скриншоте. В левом верхнем углу мы видим, что используется гипервизор KVM, слева внизу — что работает он на 4-нодовом NX-3460 (2U стойко-места, 1.3kW потребления, его хватает для работы сотни VM).
Перейдем в панель управления виртуальными машинами (VM). Справа вверху мы видим две раздела — создание сети (виртуального сетевого коммутатора) и создание VM.
Начнем с настроек распределенного коммутатора (поддерживается Open vSwitch). Создадим VLAN для нашей VM.
Когда сетевой коммутатор и VLAN настроены, можно приступать к созданию VM.
Нажмем на »+ Create VM».
В простой панели зададим желаемые параметры VM: Число vCPU, памяти, дисков, и сетевых адаптеров. Кроме vCPU и памяти в дальнейшем эти параметры можно поменять «на горячую».
Укажем желаемый VLAN (L2 или L3 в случае managed сети с IPAM) и нужное число дисков и CDROM.
Почти готово. Запускаем на создание.
Наша машина создана и находится в выключенном состоянии. Включим ее.
Отсюда же можно проделать с VM разные действия. Смигрировать VM на определенный хост, сделать снэпшот, включить-выключить-перезагрузить, а также склонировать данную VM в ее клон-копию.
Как получить доступ к консоли нашей VM? Для этого можно щелкнуть на ссылку Launch Console. При этом запустится VNC viewer под названием noVNC, написанный на чистом HTML5 (не требуются привычные Flash / Java), и работающий прямо в окне браузера. Напомню, мы тут все еще в браузере, в котором открыли Prism UI, никакого стороннего «VM Client» нам не надо, все в простом web-браузере. У меня, как видите, IE11, но конечно работает в любом современном браузере с поддержой HTML5, хоть в Firefox, хоть в Chrome, хоть в Safari на Mac.
Обратите внимание, что соединение криптуется, а также, что достаточно уникально для VNC клиентов, поддерживаются множество расскладок клавиатуры (включая русскую).
Если бы у меня был на VM смонтирован ISO с дистрибутивом, то началась бы установка, а без него…
Кроме этого, в Prism UI есть множество богатых возможностей по мониторингу и алертам, полезным в нашей админской службе.
Но что делать, если вы олдскул админ, предпочитающий командную строку всей этой «мышиной возне»? Отличные новости: есть полнофункциональный командлайн интерфейс, вызываемый из консоли любого CVM командой acli.Неймспейсы, онлайн-подсказки, дополнение по табу — есть. Все возможости управления доступны как из CLI, так и из GUI. Кто-то из клиентов говорит что очень напоминает старый-добрый Cisco IOS, быстро для освоения и весьма удобно.
А если вы планируете встроить KVM с Acropolis в вашу внешнюю систему управления «облаком», то вам пригодится наличие полноценного RESTful API, из которого VM / облаком можно управлять также, как и всем остальным Nutanix.
Это все, напоминаю, первая публичная версия. Развитие проекта продолжается, много интересных фич запланировано к выходу в ближайшее время, по мере их появления в релизе будем показывать и рассказывать.
Поскольку я запостил эту заметку в несколько хабов, то, если вы читаете ее не у нас в корпблоге, для ясности коротенький FAQ в заключение:
Q: Вы вообще кто? A: Мы — компания Nutanix, разработчик и производитель гиперконвергентной платформы (сервер+сторадж) для работы различных гипервизоров, VM и приложений под ними. Пишем тут свой блог по адресу: http://habrahabr.ru/company/nutanix/
Q: Это все работает только на вашей платформе? A: Это софтверное решение, но пока оно работает только внутри нашего продукта — Nutanix OS
Q: А будет открытое решение, доступное отдельно, для всех желающих? A: Такая возможность совсем не исключена, как говорят в таких случаях «следите за рекламой».