Администрирование
виртуализация
Визитка
ДЕНИС СИЛАКОВ, к.ф.-м.н., старший системный архитектор Odin (подразделение компании Parallels, объединяющее решения для оказания облачных и хостинговых сервисов), dsilakov@odin.com
Промышленная виртуализация
с помощью Virtuozzo 7
Наработки компании Parallels, уже давно доступные в рамках открытого проекта OpenVZ, наконец-то находят свой путь в основной код ядра Linux к общей выгоде сообщества и разработчиков
В последние годы контейнерная виртуализация в Linux переживает настоящий бум, открывая миру все новые технологии и продукты – LXC, Docker, Rocket и прочие. Создание всех этих продуктов стало возможным благодаря новой функциональности, появившейся в основной ветке ядра Linux. Многие из этих новшеств – это результат труда отечественных разработчиков, уже долгие годы предоставляющих средства виртуализации на основе Linux под брендами OpenVZ и Virtuozzo. В статье двухлетней давности [1] мы рассмотрели некоторые теоретические основы создания виртуальных окружений и принципиальные сложности, с которыми столкнулись разработчики средств виртуализации для платформ x86. Один из способов борьбы с этими сложностями – использование виртуализации на уровне ОС, когда одно и то же ядро используется несколькими виртуальными окружениями. Именно этим путем пошла в начале текущего века компания Odin (тогда еще под названием SWsoft и позже Parallels), предложившая миру Virtuozzo – средство виртуализации на основе ядра Linux, позволявшее запускать множество экземпляров этой ОС на одной физической машине и предоставившее набор инструментов для удобного управления такими виртуальными средами. За прошедшие полтора десятка лет как сама компания, так и ее продукты претерпели череду реорганизаций, переименований и прочих трансформаций, неизбежно сопутствующих многим активно развивающимся проектам. Портфолио продуктов и их возможности со временем только расширялись, и сегодня Virtuozzo – это уже не только легковесная виртуализация на уровне ОС, но и полноценные виртуальные машины, а также различные сопутствующие продукты и сервисы. Кроме того, наработки компании, уже давно доступные в рамках открытого проекта OpenVZ, наконец-то находят свой путь в основной код ядра Linux к общей выгоде сообщества и разработчиков. Очередная версия продукта, находящаяся сейчас в стадии разработки, – Virtuozzo 7 – во многом основывается на открытых технологиях, которые в сочетании с уникальными технологиями
4
компании призваны предоставить пользователям многофункциональную, но в то же время надежную платформу виртуализации. Впрочем, обо всем по порядку.
Немного истории История нынешнего проекта Virtuozzo началась более 15 лет назад, когда компания занялась разработкой инструментария контейнерной виртуализации для Linux. В 2001 году был представлен промышленный продукт Virtuozzo, быстро завоевавший популярность у хостинг-провайдеров благодаря высокой плотности виртуальных окружений и низким накладным расходам, сочетавшимся с хорошей изоляцией окружений друг от друга. Virtuozzo изначально был проприетарным продуктом, однако с 2005 года многие наработки компании стали доступны всем желающим в рамках Open Source проекта OpenVZ. Проект предоставлял сборки Linux-ядра с наложенными патчами для контейнерной виртуализации и утилиту для управления контейнерами. На ранних этапах развития эти патчи в основную ветку Linux-ядра интегрировалиcь. Как следствие, размер патчей со временем только увеличивался, а затраты на портирование на новые версии ядер возрастали. Способ борьбы с этой проблемой был достаточно очевиден – необходимо переносить нужные патчи в основную ветку разработки ядра. Поэтому в 2007 году компания приняла стратегическое решение по интеграции наработок в «ванильное» ядро, и первые успехи не заставили себя ждать: совместно с разработчиками из IBM в основную ветку была добавлена реализация пространства имен PID, и в том же году разработчик OpenVZ добавил поддержку пространства имен для сети [2]. Интеграция крупных изменений в ядро Linux не всегда проходит гладко, ведь необходимо выработать решение, устраивающее всех участников разработки. А многие из этих участников не всегда соглашаются с востребованностью той или иной функциональности либо имеют свое видение, как решать определенную проблему. Поэтому этот
декабрь 2015 системный администратор