Как установить много Linux в одном дистрибутиве с помощью LXC
LXC (Linux Containers) — легкая и простая в использовании система виртуализации, позволяющая одновременно использовать несколько изолированных друг от друга операционных систем на одном компьютере.
Отличается LXC от других систем виртуализации (VirtualBox, KVM, Vmware) тем, что гостевые операционные системы работают на том же ядре, что и основная система (host), виртуальная машина при этом не используется, что позволяет существенно экономить ресурсы и получить полностью изолированные экземпляры операционных систем.
Как установить LXC
Откройте терминал и впишите следующие команды:
sudo apt-get install lxc lxctl lxc-templates
sudo lxc-checkconfig
Первая команда установит LXC, программы управления контейнерами и готовые шаблоны, которые облегчают установку гостевой операционной системы. Вторая команда проверит конфигурацию вашей основной системы на соответствие требованиям LXC.
Создание контейнера с операционной системой в LXC
Проще всего воспользоваться готовыми шаблонами lxc-templates, которые содержат все необходимые сведения для установки Ubuntu, Debian, Fedora, openSUSE, Gentoo и других дистрибутивов. Полный список поддерживаемых систем можно посмотреть следующей командой в терминале:
ls /usr/share/lxc/templates/
Создается контейнер всего одной командой. Например, установка Ubuntu в LXC выполняется так:
lxc-create -n ubuntu01 -t ubuntu
Где опция -n отвечает за имя контейнера, а -t — за используемый шаблон. Далее LXC скачает и установит нужные ISO и пакеты. Вмешательство пользователя не требуется. В заключении пользователю будет сообщен пароль для входа в установленную систему (в данном случае: ubuntu/ubuntu).
Запуск LXC-контейнеров
Когда контейнер с системой готов, можно перейти к его запуску. Для этого введите следующие команды:
lxc-start -n ubuntu01 -d
lxc-console -n ubuntu01
Легко догадаться, что lxc-star запускает контейнер, а lxc-console открывает консоль управления к нему. Останавливаются контейнеры командой lxc-stop:
lxc-stop -n ubuntu01
Установить можно любое количество операционных систем. Сколько из них сможет работать одновременно зависит только от количества свободных ресурсов компьютера.
Преимущества использования LXC
Помимо основного предназначения — создания изолированных сред — LXC позволяет использовать все преимущества виртуализации. А именно:
Клонирование операционных систем
lxc-stop -n ubuntu01
lxc-clone ubuntu01 ubuntu02
Создание снэпшотов (снимков)
Снэпшот позволяет зафиксировать текущее состояние операционной системы в контейнере и легко к нему вернуться, если что-то пойдет не так:
lxc-stop -n ubuntu01
lxc-snapshot -n ubuntu01
Управление контейнерами дистанционно, через web-интерфейс
Для этого потребуется установить lxc-webpanel:
wget http://lxc-webpanel.github.io/tools/install.sh -O - | bash
После этого становится доступным управление прямо из браузера:
Комментарии
pomodor
7 августа, 2014 - 16:47
Может оказаться очень неплохой штукой. Например, можно поставить глючную Убуку, но все важные сервисы держать в контейнере под Debian. Или в Debian можно запилить контейнер с Kali на тот случай, когда требуется пошалить.
Да и вообще, изоляция — это прекрасно. По идее, любую сетевую службу нужно изолировать. Даже если каккер своим эксплоитом замогилит, например, Apache или Postfix, поиметь основную систему он все равно не сможет.
Texnoline
9 августа, 2014 - 18:59
Тут интересны несколько моментов:
1. Замогилили модули ядра базовой системы, и что будет с контейнерами?????
2. Как с реальной,
не сферовакуумной:(, производительностью при таком подходе, ведь может быть и ситуация, что даже многими не любимая Бунта и «святой и быстрый":)... Дебиан, будут тупо тормозить и с полным отсутствием профита в реальных задачах...????:(P.S. В Европе сейчас пилять системы с экзоядрами, полной изоляцией от слоя приложений, думаю что — это на данный момент более реальный вариант, к примеру — arrakis-release-2014-05-14!?
pomodor
9 августа, 2014 - 21:43
Атаки на ядро будут иметь последствия. Но дырки в сервисах находят значительно чаще, чем в ядре.
Мне тоже это интересно. Если буду использовать LXC, проведу замеры. Но интуиция подсказывает, что с производительностью все в порядке. Во-первых, LXC работает поверх cgroups, а к этой технологии претензий по производительности нет. Во-вторых, неслучайно же контейнеры LXC называются легковесными.
Комментировать