LXC Linux Containers часть №2. Установка

Оглавление

Одно из главных преимуществ LXC, это присутствие его базовых блоков (cgroups и namespaces) практически во всех современных ядрах Linux. Это означает что нет необходимости что-то компилировать или использовать стороннее ядро, как в случае с OpenVZ. Единственное, что необходимо установить, это пакет утилит управления. В моем случае использовался Ubuntu Linux 13.10 как дистрибутив с наиболее свежей пакетной базой. Все проделанные в этой статье манипуляции будут проводиться на его примере.

Я не стану описывать процесс установки этого дистрибутива, так как он примитивен и не требует пояснений. Единственное, о чем стоит сказать, так это о разметке и распределении пространства на жестких дисках. По умолчанию каталог в котором будут храниться контейнеры и их конфигурация монтируется в /var/lib/lxc. Так же, в директорию /var именно в /var/cache/lxc помещается кэш шаблонов. По этому, при установке, имеет смысл указать для этой точки монтирования, отдельный раздел, жесткий диск или RAID-массив достаточного объема. Параметры монтирования для указанных каталогов LXC можно будет изменить и после установки системы, но лучше об этом задуматься сразу. Объем одного контейнера составляет примерно 250-300 Мб на диске.

LXC installРис 1. Пример разметки дисков

На рисунке 1, раздел, выделенный для директории /var, находится на отдельном диске и отформатирован в файловую систему Btrfs. Этот выбор не случаен. Утилиты LXC совместимы с Btrfs и способна ее средствами создавать моментальные снимки файловой системы и отдельных контейнеров в частности. Такая техника позволяет выполнять быстрое клонирование и резервное копирование с помощью снапшотов.

После того как система установлена и настроена сеть, можно приступать к установке LXC.

Далее по тексту подразумевается, что вы используете Ubuntu. Для получения последних, ежедневно обновляемой версий LXC для Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04 можно использовать PPA-репозиторий:

$ sudo apt-add-repository -y ppa:ubuntu-lxc/daily
$ sudo apt-get update --quiet

И устанавливаем :

$ sudo apt-get install lxc

Каких либо требований к системе или подготовительных мероприятий не требуется, по этому все должно пройти гладко. Будет загружено порядка 25 мегабайт.

По завершению процесса установки, можно будет найти следующие, служебные каталоги и конфигурационные файлы:

/var/lib/lxc/ — хранилище контейнеров по умолчанию.
/var/lib/lxcsnap/ — хранилище снимков.
/var/cache/lxc/ — пакетная база шаблонов.
/etc/default/lxc — конфигурационный файл LXС.
/etc/default/lxc-net — в этом файле задается конфигурация моста LXC (lxcbr0), его IP-аддрес и прочие параметры,
/etc/lxc/default.conf — если при создании нового контейнера не указывается конфигурационный файл, будет использоваться этот.
/usr/share/lxc/templates/ — каталог с шаблонами различных дистрибутивов, которые могут быть использованы при создании новых контейнеров.
/etc/apparmor.d/lxc/lxc-default — здесь задается профиль доступа Apparmor по умолчанию, который обеспечивает защиту хост-системы от контейнеров.

В принципе, при типичном использовании нет необходимости вносить какие-то изменения в приведенные выше конфигурационные файлы. Все уже настроено и готово к использованию. Единственно, что может понадобится изменить, так это параметры упомянутого выше сетевого моста или задать использование стороннего моста.

lxcbr0 создается в процессе старта хост-системы. За это отвечает параметр USE_LXC_BRIDGE имеющий значение true в файле /etc/default/lxc-net. Этому мосту по умолчанию устанавливается частный IP-адрес 10.0.3.1, а контейнеры его использующие получат адреса из это го же диапазона 10.0.3.0/24. Если, в системе присутствует другой мост, то его можно указать в конфигурационном файле контейнера или в конфигурации контейнера по умолчанию /etc/lxc/default.conf параметр lxc.network.link. Далее, сетевая конфигурация будет разобрана более подробно.