OpenVZ7

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Внимание! В разработке! Статья не закончена! Инструкции неполные!


Установка (только ветки p9, Sisyphus)

# apt-get update
# apt-get install update-kernel vzctl vztt vzstat
# update-kernel -t ovz-el7
# systemctl enable vz.service
# systemctl enable vzevent.service

При этом установятся ядро с поддержкой vz7 и необходимые утилиты и службы; далее необходимо перегрузить систему и при загрузке выбрать ядро -ovz-el7. В ветке p9 используется стабильное ядро, основанное на RHEL 7.6 (3.10.0-957), в Sisyphus устанавливается активно изменяемое ядро из RHEL 7.7 (3.10.0-1062). Утилита vzstat - это аналог top для наблюдения за активностью контейнеров. В пакет vztt входят утилиты для работы с шаблонами контейнеров (специально преобразованные rootfs образы операционных систем, которые будут запускаться в контейнерах). Пакет vzctl содержит основные команды для управления контейнерами: vzctl и vzlist, а также необходимые для работы контейнеров скрипты, службы и библиотеки.

Создание шаблонов контейнеров

TODO:
Указать источник rootfs образов для создания шаблонов.


Формат имени архива для конвертирования в шаблон контейнера фиксирован: DISTRIBUTION-VERSION-ARCH[-NAME].tar.gz, где DISTRIBUTION - имя дистрибутива (в нашем случае - alt); VERSION - версия, ветка; ARCH - архитектура (поддерживается только x86_64 и x86); NAME - дополнительное имя, позволяющее иметь несколько различных шаблонов для данного набора дистрибутив-ветка-архитектура (см. подкаталоги в /var/lib/vz/template/alt/). Архив должен быть именно tar.gz!

# mv base-20190912-x86_64.tar.gz alt-p9-x86_64-sysv.tar.gz
# mkdir -p /var/lib/vz/tmp
# TMPDIR=/var/lib/vz/tmp /usr/libexec/ovz-template-converter alt-p9-x86_64-sysv.tar.gz
# vzpkg list
alt-p9-x86_64-sysv                 2019-09-12 16:13:50

Теперь в каталоге /var/lib/vz/template/cache/ появился архив alt-p9-x86_64-sysv.plain.ploopv2.tar.lz4, из которого будут разворачиваться новые контейнеры.

Создание контейнера

# vzctl create 10110 --ostemplate alt-p9-x86_64-sysv --config vswap.1024MB \
  --ipadd 192.168.1.10 --name test-sysv-etcnet
# vzctl set 10110 --diskspace 20G --nameserver 8.8.8.8 --nameserver 8.8.4.4 --cpus 2 --ram 1G --save

Создаём из шаблона alt-p9-x86_64-sysv с образцом конфига из /etc/vz/conf/vswap.1024MB.conf-sample контейнер под именем test-sysv-etcnet, назначаем IP адрес 192.168.1.10, устанавливаем размер диска в 20ГБ, ограничиваем ресурсы (CPU - 2 ядра, память - 1ГБ) и настраиваем DNS (будут использованы публичные сервера Google). Обязательно указываем в команде vzctl set аргумент --save, чтобы сохранить все изменения в конфигурационном файле.

Примечание: Внимание! В каталоге /etc/vz/conf/ содержатся символические ссылки на конфигурационные файлы контейнеров, сами файлы находятся в /var/lib/vz/private/XXX/ve.conf, где XXX - идентификатор контейнера. При ручном редактировании этих файлов не удалите случайно ссылки!


Запуск контейнера

# vzctl start 10110
# vzlist -o ctid,numproc,status,ip,name,hostname,onboot
 CTID      NPROC STATUS    IP_ADDR         NAME                          HOSTNAME         ONBOOT
10110         10 running   192.168.1.10    test-sysv-etcnet              -                yes

Использование NFS внутри контейнера

Чтобы добавить возможность монтировать NFS внутри контейнера, необходимо включить нужную FEATURES:

# vzctl set 10110 --features "nfs:on" --save [--setmode restart]

после чего перезапустить контейнер (vzctl restart или --setmode restart).

Внутри контейнера устанавливаем необходимые пакеты и монтируем NFS:

# vzctl enter 10110
CT-10110 /# apt-get install nfs-clients
CT-10110 /# mkdir /NFS
CT-10110 /# echo '192.168.1.1:/nfs/export /NFS nfs \
noauto,ro,noexec,nosuid,nodev,nolock,x-systemd.automount,_netdev,soft,intr,nfsvers=3' >>/etc/fstab
CT-10110 /# mount /NFS