Релиз OpenVZ 7.0

2016-07-25

Компания Virtuozzo представила финальную версию OpenVZ 7.0. Теперь все желающие получили возможность промышленного использования последней версии контейнеров OpenVZ. OpenVZ 7.0 - это продукт, получившийся в результате слияния кодовых баз открытой системы контейнерной виртуализации OpenVZ и коммерческого продукта Virtuozzo (Parallels Cloud Server). Исходный код новой версии полностью открыт и доступен в публичном репозитории и зеркале на GitHub.

Основные изменения по сравнению с предыдущей версией OpenVZ, базирующейся на ядрах 2.6.32 и 2.6.18:

  • Новая версия OpenVZ представляет собой законченное решение для виртуализации и предлагается в виде Linux-дистрибутива, готового для установки на «голое» железо. Для этой версии не предоставляется поддержка установки компонентов OpenVZ поверх других дистрибутивов.
  • Ядро Linux базируется на последней версии ядра от Red Hat — RHEL7 (3.10+). Размер патча по сравнению с ядрами RHEL5 и RHEL6 был существенно уменьшен (см. слайды). Это достигнуто за счет активного использования технологий из основной ветки ядра Linux.
  • Добавлено online-управление памятью контейнеров и виртуальных машин с помощью подсистемы memory cgroups в ядре Linux и сервиса vcmmd.
  • Гарантированные лимиты памяти для виртуальных машин и контейнеров.
  • Функциональность для более эффективного использования оперативной памяти, доступной на физическом сервере: KSM (kernel same-page merging).
  • Проприетарный гипервизор Parallels был заменён на гипервизор KVM/QEMU.
  • Добавлена возможность интеграции с libvirt с помощью отдельного драйвера virtuozzo. Драйвер позволяет управлять контейнерами и виртуальными машинами OpenVZ с помощью стандартных утилит virsh, virt-install, GUI оболочку virt-manager и другие приложения, интегрированные с LibVirt. Все изменения, необходимые для Virtuozzo, были приняты в основную ветку проекта LibVirt. Помимо LibVirt API в OpenVZ 7.0 появилась возможность использования storage pools, что позволит использовать не только ploop и simfs, но и другие бэкенды хранения данных для контейнеров.
  • «Живая» миграция для контейнеров реализована с помощью инструментария CRIU и P.Haul («пихль») вместо использования кода «заморозки»/«разморозки» процессов, реализованного в ядре vzkernel в предыдущих версиях OpenVZ
  • Упрощена возможность обновления с бесплатной версии OpenVZ на платную - достаточно установить дополнительные пакеты и активировать лицензию.
  • Для новой версии доступна полноценная документация
  • Переход на шаблоны EZ для контейнеров. Как следствие, управление шаблонами стало проще.
  • Для OpenVZ 7.0 доступна интеграция с OpenStack (настроить и попробовать)

До сих пор в предыдущих версиях OpenVZ и коммерческом продукте Virtuozzo утилита vzctl разрабатывалась независимо. В OpenVZ/Virtuozzo 7.0 было решено оставить версию из коммерческого продукта, поэтому совместимость vzctl была нарушена. Для управления контейнерами и виртуальными машинами рекомендуется использовать утилиту prlctl. Для начала работы с новой утилитой можно воспользоваться «шпаргалку» с синтаксисом популярных команд. В последующих версиях планируется отказаться от утилиты vzctl и использовать prlctl как основную утилиту.

Для установки OpenVZ 7.0 доступен установочный образ, который можно загрузить с одного из основных серверов OpenVZ или с одного из зеркал проекта. Также опубликован скрипт для облегчения миграции контейнеров с предыдущей версии OpenVZ на OpenVZ 7.0.

Полный текст анонса (на английском языке)