Virtuozzo – облачная платформа нового поколения

 
На правах рекламы

Прежде чем говорить о конкретном продукте — Virtuozzo — следует хотя бы в общих чертах обрисовать ситуацию с технологиями виртуализации и облаками. Собственно говоря, без виртуализации, позволяющей эффективно использовать аппаратные ресурсы, нагружая их по максимуму и вместе с тем так или иначе изолируя их пользователей (в данном случае ОС или ПО), не было бы и облаков. А если бы не было облаков, то не было бы… да, как ни странно, очень и очень многих сервисов, появившихся в последние годы — все они или использовали на ранних стадиях, или используют облака до сих пор. Почему так произошло? Потому что изменился сам подход к разработке и дистрибуции таких сервисов. За счёт облаков появилась возможность быстро и недорого создать и протестировать прототип, а затем последовательно улучшать его и легко масштабировать с ростом нагрузки. Впрочем, и оффлайн-компании без облаков сегодня жить не могут, достаточно посмотреть списки самых значимых клиентов известных облачных провайдеров: AWS, Azure, GCC, Rackspace. И это мы ещё не упоминали частные облака и классические хостинг-компании.

Две основные, но не единственные, технологии виртуализации в облаках — это собственно виртуальные машины (ВМ) и контейнеры. Виртуальные машины полностью эмулируют всю аппаратную часть, позволяя запускать внутри любую ОС и ПО. Их несомненным плюсом является хорошая изоляция виртуализированного окружения от основной системы и других ВМ. К недостаткам стоит отнести не всегда лучшую производительность, а также некоторую «тяжеловесность» — если необходимо запустить сразу несколько копий одного и того же окружения в ВМ, то они по большей части будут дублироваться. Этих недостатков лишены контейнеры, которые, по большому счёту, являются всего лишь ещё одним деревом процессов для ядра ОС основной системы. За счёт этого они чаще всего быстрее ВМ и более «легковесны», имеют более простую дистрибуцию. Недостатками контейнеров являются их более слабая изоляция друг от друга, отсутствие прямого доступа ко многим типам ресурсов (полноценная работа с дисками, сетью, памятью и рядом API). Кроме того, контейнеры позволяют работать только с той ОС, на ядре которой они запущены, и нередко требуют доработки приложений для запуска в такой среде.

Слева — схема работы ВМ и гипервизора, справа — схема контейнерной виртуализации

Слева — схема работы ВМ и гипервизора, справа — схема контейнерной виртуализации

Впрочем, сейчас нередко используется гибридный подход. В облаках — неважно, частных или публичных — запускаются ВМ, а внутри них разворачиваются контейнеры, либо же создаются хитрые контейнеры для ОС. Это позволяет соблюсти хоть какой-то баланс между достоинствами и недостатками обеих технологий. При этом практические реализации или скорее идеологический подход к ним отличается. Например, популярный продукт Docker предлагает концепцию «одно приложение в одном контейнере». Более экстремальными вариантами, не относящимися, правда, непосредственно к облакам, являются концепции переноса вообще любых приложений в раздельные контейнеры или даже запуск приложений в отдельных ВМ. Альтернативный путь — использование сверлёгких ОС в ВМ для последующего запуска в них контейнеров. Крайний вариант такого подхода — это отказ от ОС как таковой и создания компактного «комплекта» из урезанного ядра, минимально необходимого набора драйверов и библиотек и непосредственно исполняемого приложения. Такая концепция unikernel позволяет повысить скорость выполнения «комплектов» в ВМ или прямо на «железе», но очевидно лишена хоть какой-то гибкости.

Virtuozzo предлагает контейнеры с ОС

Virtuozzo предлагает контейнеры с ОС

Тем не менее, все вышеназванные подходы далеки от идеала. Хотелось бы получить безопасность как в ВМ и вместе с тем быстроту запуска с простотой создания как у контейнеров. И такие проекты по смешиванию этих технологий уже есть — например, LXD, ClearLinux и, наконец, Virtuozzo. Собственно говоря, Virtuozzo предлагает и классические ВМ, и запуск полноценной ОС внутри контейнера. Таким образом, сохраняется универсальность вкупе с быстротой и гибкостью. Очевидным ограничением ОС-контейнеров является то, что возможна работа только с ядром той ОС, на которой они запускаются. Впрочем, Virtuozzo — это не просто средство для виртуализации, а комплексный продукт, включающий в себя множество компонентов. Разработка его ведётся уже более 15 лет. Летом 2015 года два проекта — открытый OpenVZ и собственно Virtuozzo — были объединены, а сама платформа тоже стала открытой. Так что теперь каждый может опробовать её, а за ряд дополнительных функций, не являющихся обязательными, придётся заплатить. На текущий момент имеются следующие компоненты: платформа виртуализации Virtuozzo, система хранения данных (SAN) Virtuozzo Storage, система администрирования Virtuozzo Automator и собственный дистрибутив Virtuozzo Linux.

Сравнение производительности контейнеров Virtuozzo и гипервизоров ВМ (Источник)

Сравнение производительности контейнеров Virtuozzo и гипервизоров ВМ ( Источник)

Одной из ключевых особенностей Virtuozzo, которая делает её идеальной для создания облачных сред, является «умное» разделение ресурсов физических серверов между виртуальными окружениями. Каждый ОС-контейнер получает свои собственные, изолированные от других контейнеров управление процессами и пользователями, root-доступ, полный доступ к сети и системным библиотекам и так далее — в общем, для пользователя виртуализированного окружения оно выглядит так, будто это полноценный сервер. При этом для каждого из них можно динамически управлять ресурсами, не вызывая проблем ни в самом контейнере, ни у его соседей. В режиме реального времени можно увеличить или уменьшить объём RAM, ресурсы CPU, дисковые квоты (объём и ввод-вывод, IOPS), параметры сетевого подключения. При этом доступны различные варианты распределения ресурсов — минимальные гарантированные и максимально допустимые лимиты, выделение долей или иные, более сложные алгоритмы. Также доступны функция burst (ускорение), которая при наличии незанятых ресурсов на сервере отдаёт их на время в распоряжение клиентов, и приоритизация ресурсов.

Сравнение времени недоступности сервера с контейнерами и ВМ при обновлении (с вынужденной перезагрузкой и без неё) (Источник)

Сравнение времени недоступности сервера с контейнерами и ВМ при обновлении (с вынужденной перезагрузкой и без неё) ( Источник)

Virtuozzo также предлагает возможность живой миграции контейнеров и обновление системы без перезагрузки. Другая уникальная функция Virtuozzo заключается в особенностях работы с памятью и хранения данных. Система умеет искать дубликаты файлов, которые находятся в разных контейнерах, и кэшировать их, снижая таким образом нагрузку на память и число операций ввода-вывода. В Virtuozzo используются ещё две хитрые технологии — Vswap и ploop. Они позволяют эффективно управлять памятью контейнеров и их данными. За счёт последней можно очень быстро создавать новые и перемещать существующие контейнеры, а также делать их резервные копии. Для упрощения работы разработчики подготовили базовые сборки различных ОС и приложений, а также заключили соглашение с компанией Bitnami, которая предоставляет ещё больше готовых шаблонов. Недавно была анонсирована поддержка популярных контейнеров Docker.

Virtuozzo logo

В целом, Virtuozzo — это современная платформа для создания легкомасштабируемых облачных сред с высокой плотностью размещения виртуализированных окружений, которая обладает рядом уникальных возможностей. Естественно, её разработка не стоит на месте. В ближайших планах создателей стоит повышение совместимости с другими платформами и технологиями. В частности, появятся полноценная поддержка Docker, соответствие стандартам Open Container Initiative (OCI), а также совместимость с распространёнными API и облачными системами — например, libvirt и OpenStack. Также ожидается появление новой собственной панели управления. Но самое главное, что разработчики планируют перейти от использования контейнеров с ОС к сверхлёгким виртуальным машинам! При этом новые ВМ будут безопаснее за счёт лучшей изоляции и универсальнее, но сохранят производительность сравнимую с таковой у контейнеров и получат технологию дедупликации памяти. Ну, и, как обычно, в новом поколении Virtuzzo появятся интересные возможности, о которых разработчики пока что публично не говорят. 

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Постоянный URL: https://servernews.ru/931650
Поделиться:  
Система Orphus