Компания Parallels открыла ядро, используемое в продукте Virtuozzo

В рамках инициативы по объединению кодовых баз открытой системы контейнерной виртуализации OpenVZ и коммерческого продукта Virtuozzo (Parallels Cloud Server), компания Parallels ввела в строй общедоступный Git-репозиторий, в котором опубликованы исходные тексты модифицированного ядра Linux 3.10, основанного на пакете с ядром из RHEL7 и включающего дополнительные патчи для обеспечения контейнерной виртуализации. Кроме того, разработка ядра Virtuozzo теперь открыто для всех желающих — сторонние разработчики получили возможность присылать патчи, участвовать в технических обсуждениях и рецензировать код через рассылку OpenVZ (devel at openvz.org). Ожидается, что открытие кода продукта Virtuozzo, объединяющего контейнерную и гипервизорную виртуализацию с распределенным хранилищем данных, и объединение процесса разработки c OpenVZ снизит трудозатраты персонала за счёт избавления от раздельной работы над Virtuozzo и OpenVZ, позволят привлечь к разработке независимых участников из сообщества и упростят процесс портирования специфичных для Virtuozzo и OpenVZ патчей для новых выпусков основного ядра Linux. Для выполнения требований лицензии GPLv2, развиваемое для продукта Virtuozzo ядро публиковалось под эгидой проекта OpenVZ, но построенные поверх ядра компоненты в корне отличались и развивались для Virtuozzo в качестве закрытого проприетарного продукта.

Код дополнений к ядру был открыт, но распространялся формально в виде одного архива, что создавало проблемы при желании отслеживать сделанные изменения и предложить свои изменения. Создание открытого репозитория должно изменить текущее положение вещей: все изменения станут доступны в режиме реального времени, а заинтересованные разработчики смогут влиться в процесс разработки, получая текущую версию исходного кода, не дожидаясь очередного релиза ядра. Объединение OpenVZ и кодовой базы Virtuozzo также позволит решить проблему с совместимостью открытого и проприетарного решения. Системы на базе OpenVZ смогут быть легко переведены на Virtuozzo. Cовместимость OpenVZ с Virtuozzo будет обеспечена на всех уровнях, начиная от пользовательского инструментария и заканчивая API для взаимодействия с компонентами ядра.

В дальнейшем, разработчики Virtuozzo намерены продолжить тактику продвижения возможностей в основное ядро и уменьшение объёма внешних патчей, так как это существенно снимает нагрузку с разработчиков при адаптации системы к основному ядру Linux, код которого очень сильно меняется от выпуска к выпуску. В настоящее время ядро Virtuozzo основывается на наработках основного ядра 3.10, которое соответствует ядру из состава RHEL7. При подготовке данного ядра разработчики Virtuozzo уже избавились от набора патчей, которые добавляли поддержку NFS в контейнерах, заменили старый код управления памятью на новый на базе memcg и планируют использовать cgroups вместо beancounters, везде, где это возможно.

Следующим шагом станет публикация кода компонентов Virtuozzo, работающих в пространстве пользователя, и создание общедоступной унифицированной системы отслеживания ошибок, построенной на базе движка Atlassian Jira. Для совместимости OpenVZ с ядром 3.10 будет подготовлен новый вариант инструментария vzctl, который будет опубликован после открытия кода утилит Virtuozzo. Поддержка старого ядра OpenVZ, построенного на основе ядра RHEL6, будет сохранена, как продолжит поддерживаться и старый набор утилит vzctl.

Алексей Кобец, вице-президент департамента серверной виртуализации бизнес-подразделения Odin, прокомментировал открытие кода Virtuozzo: «Часто наши потенциальные покупатели Virtuozzo сначала смотрят на открытый проект и даже начинают запускать на нем коммерческие сервисы. Достигнув определенного понимания, они решают перейти на коммерческую версию и сталкиваются с тем, что обновление с OpenVZ на Virtuozzo неудобно, и порой переход на него даже сложнее, чем с других коммерческих решений виртуализации. Принимая во внимание просьбы клиентов и интерес к нашим технологиями со стороны сообщества, мы решили открыть процесс разработки и часть компонентов Virtuozzo, предоставляя доступ к их исходному коду. Этот шаг позволит всем, заинтересованным в наших технологиях, свободно использовать их и принимать участие в разработке новой версии Virtuozzo».

©  OpenNet