imageМы в бизнес-подразделении Odin* компании Parallels занимаемся разработкой технологий виртуализации с 1999 года. За прошедшие 15 лет мы превратили концепт в платформу для гипервизорной и контейнерной виртуализации Virtuozzo. Всё это время параллельно с коммерческим продуктом развивался открытый проект OpenVZ, в рамках которого разрабатывались компоненты для создания и управления контейнерами, а исходный код был доступен под лицензией GPL. И, несмотря на то, что проект сильно проигрывал коммерческому продукту по объёму функциональности и производительности, вокруг него сформировалось активное и открытое сообщество пользователей.

Нас часто спрашивали почему процесс разработки закрыт и почему компания так недружелюбна к контрибьюторам. Принимая во внимание эти просьбы и интерес к нашим технологиями со стороны сообщества мы открываем часть компонентов Virtuozzo, предоставляя доступ к исходному коду этих компонентов, и открываем процесс разработки. Это позволит всем, заинтересованным в наших технологиях, свободно использовать наши наработки и принять участие в разработке новой версии Virtuozzo.


Вторая важная проблема, которую мы решаем, делая разработку открытой и объединяя кодовые базы — это совместимость открытой и коммерческой версий продукта. Часто наши потенциальные покупатели сначала смотрели на открытый проект, и даже запускали на нем коммерческие сервисы. Однако когда они решали перейти на коммерческую версию, то сталкивались с тем, что обновление с OpenVZ на Virtuozzo неудобно, и порой переход на него даже сложнее, чем с других коммерческих решений виртуализации.

Сейчас пользователи открытого OpenVZ получат возможность простого обновления до коммерческой версии (для чего раньше потребовалось бы покупать отдельный продукт Virtuozzo), а плюс к этому — качественно протестированный код и дополнительные возможности и функции, включая техническую поддержку.

Теперь о деталях. Репозиторий с исходным кодом Linux ядра версии 3.10 свободно открыт для всех желающих, и вы можете как пассивно наблюдать за работой над ядром, так и подключиться к разработке. Документация, описывающая правила приёма патчей, находится в состоянии оформления, но в целом мы будем придерживаться общепринятых правил разработки Linux-ядра, поэтому соблюдайте стандарты кодирования и правила приёма патчей, принятые в сообществе. Процесс разработки ведётся в почтовой рассылке devel@openvz.org, на которую может подписаться любой желающий.

Важное замечание — ядро находится в стадии разработки, оно не готово к промышленному применению, и возможны проблемы совместимости со старыми версиями. Например одним из существенных временных ограничений является отсутствие совместимости ядра со старой версией утилиты для управления контейнерами vzctl, вследствие изменения API для управления контейнерами. Исходный код новой версии утилиты vzctl, совместимой с ядром 3.10, мы также опубликуем, но чуть позднее.

Следующий шаг, который мы сделаем, это открытие исходного кода пользовательских утилит для работы с контейнерами, создания темплитов и т.д. Следите за новостями о проекте в социальных сетях.



* С марта 2015 года бизнес-подразделение компании Parallels, которое занимается продуктами для сервис-провайдеров и решениями серверной виртуализации, работает под новым брендом — Odin.

Комментарии (16)


  1. kDas
    27.04.2015 15:41
    -5

    Друзья, ну вы что-то затянули. Я понимаю, что LXC на пятки наступает, но вполне возможно благодаря открытию разработки сообществу несколько лет назад, в Docker возможно использовались бы ваши технологии.


    1. lolipop
      27.04.2015 16:57
      +1

      Cогласен, индусы из ibm захватили своим lxc всё, что так долго завоевывалось openvz. Хотя я пользуюсь и lxc, и openvz, openvz мне более симпатичен.


    1. symbix
      27.04.2015 19:18
      +5

      Не понимаю сравнений openvz с lxc. Openvz — прежде всего ядро, lxc можно сравнивать с vzctl.

      Что касается докера — в libcontainer вторым по вкладу вижу сотрудника parallels.


    1. k001
      28.04.2015 00:43
      +6

      Боюсь вас разбудить, но Docker и LXC именно наши технологии и используют — те, что мы влили в ванильное ядро (network namespace, pid namespace, IPC namespace, разные улучшения для cgroups и так далее — всего около 2000 патчей).

      Ваш К.О.


      1. k001
        28.04.2015 00:51
        +1

        пардон, около 3000


  1. amarao
    27.04.2015 16:08
    -7

    Остался главный вопрос: почему вы ведёте разработку в отдельном репозитории, а не в апстриме? Боитесь язвительных комментариев из LKML?


    1. estet Автор
      27.04.2015 16:18
      +12

      Конечно же нет. Мы разрабатываем ядро в отдельном репозитории просто потому что так удобнее. Все свои изменения мы пытаемся добавить в апстримное ядро, но так как процесс этот не быстрый, то проще вести разработку в своём репозитории и параллельно вести работу с апстримом.
      Вот, к примеру, патчи от проекта CRIU (Checkpoint and Restore in Userspace) — http://criu.org/Upstream_kernel_commits. Вот патч от нашего разработчика, который делает новый memory management для конетйнеров в 3.10 — https://lkml.org/lkml/2015/2/11/347. Остальные примеры вы можете сами найти.

      P.S. есть ещё отчет о контрибьюторах в Linux ядро от Linux Foundation


    1. k001
      28.04.2015 00:50
      +2

      Не боимся, у нас уже около 3000 коммитов в ядро.

      $ cd git/linux
      $ git pull
      $ git log --format=oneline --author='@openvz.org|@parallels.com|@sw.ru|@swsoft.com|@sw.com.sg|kuznet@|gorcunov@' -E | wc -l

      2739

      Ваш К.О.


  1. pavelodintsov
    27.04.2015 16:51
    +1

    Крутейшая новость :) Интересно, а код настоящей итеративной live миграции откроют или нам придется подтянуться и выложить свою реализацию для нее в user space? :)


    1. estet Автор
      27.04.2015 17:58

      Код уже открыт: это проекты CRIU (Checkpoint and Restore in Userspace) и p.haul.


      1. pavelodintsov
        27.04.2015 18:02

        Я про 2.6.32 ядро, где все закрыто :)


  1. allexx
    27.04.2015 17:11

    отсутствие совместимости ядра со старой версией утилиты для управления контейнерами vzctl, вследствие изменения API для управления контейнерами

    это как раз то, чего когда-то не хватало LXC, а теперь наоборот github.com/lxctl/lxctl.


    1. estet Автор
      27.04.2015 18:01

      Это временная несовместимость. Мы не можем сделать всё и сразу, поэтому совместимости пока нет. Но в планах есть пункт с починкой этой совместимости. Кстати, если у вас есть опыт разработки, то можете заняться. У нас очень дружелюбные разработчики и если где-то будет непонятно, то они направят и помогут. :)


    1. k001
      28.04.2015 00:52
      +1

      Так мы тоже умеем: openvz.org/Vzctl_for_upstream_kernel


  1. symbix
    27.04.2015 18:17
    -1

    Что-то по ссылке на репозиторий ядра открывается вики.

    Дайте угадаю, поменяли в конфиге веб-сервера listen local_ip:80 на listen 80 и сделали не restart, а reload? :)


    1. estet Автор
      27.04.2015 18:30

      Нет, вы не угадали. Вот ссылка на репозиторий ядра https://src.openvz.org/projects/OVZ/repos/vzkernel/browse.