контейнеры LXC

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 12706
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: контейнеры LXC

Непрочитанное сообщение Olej » 09 дек 2015, 21:39

Olej писал(а):Интересное, как мне кажется, применение LXC контейнеров показано в теме TOR сеть, где:
Для гибкой организации таких схем не хватает ещё нескольких деталей работы с контейнерами LXC.
Проверяю:

Удаление контейнера.
Например, когда в эталонный контейнер для клонирования (C1 в примерах выше) доставляются какие-то программные пакеты, и хотелось бы, чтобы клонируемые контейнеры (C2 в примерах выше) тоже содержали такое ПО (а не инсталлировать в каждом отдельно).
Описано здесь, например:
Использование контейнеров LXC в Debian/Ubuntu
Как навсегда удалить виртуальную машину
Останавливаем виртуальную машину и используем команду lxc-destroy
sudo lxc-destroy -n vm0
Она удалит все файлы из /lxc/vm0, так сказано в документации, но она не удалила
файлы из каталога поэтому пришлось удалять самому.
Проверяю:

Код: Выделить всё

igor@igor-PC ~ $ sudo lxc-ls --fancy
NAME  STATE    IPV4  IPV6  AUTOSTART
------------------------------------
C1    STOPPED  -     -     NO
C2    STOPPED  -     -     NO

igor@igor-PC ~ $ sudo lxc-start -n C1 -d

igor@igor-PC ~ $ sudo lxc-ls --fancy
NAME  STATE    IPV4       IPV6  AUTOSTART
-----------------------------------------
C1    RUNNING  10.0.3.56  -     NO
C2    STOPPED  -          -     NO

igor@igor-PC ~ $ sudo lxc-destroy -n C2

igor@igor-PC ~ $ sudo lxc-ls --fancy
NAME  STATE    IPV4       IPV6  AUTOSTART
-----------------------------------------
C1    RUNNING  10.0.3.56  -     NO

Аватара пользователя
Olej
Писатель
Сообщения: 12706
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: контейнеры LXC

Непрочитанное сообщение Olej » 09 дек 2015, 21:53

Olej писал(а): Для гибкой организации таких схем не хватает ещё нескольких деталей работы с контейнерами LXC.
Проверяю:
Организовать автостарт LXC контейнеров.
Так, чтобы при загрузке хостового Linux стартовали все (или некоторые) контейнеры LXC.

Описано, например, здесь: LXC 1.0
Автозагрузка.

Как реализована сейчас автозагрузка контейнера? Каждый контейнер описывается своим конфигурационным файлом в /var/lib/lxc/имя-контейнера/config, в котором можно видеть строки
ключ = значение
Все значения можно прочесть в lxc.conf(5).

Значения, связанные с автостартом контейнера:
lxc.start.auto = 0 (выключено) или 1 (включено)
lxc.start.delay = 0 (задержка в секундах до автостарта контейнера)
lxc.start.order = 0 (приоритет контейнера, чем выше значение, тем раньше стартует контейнер)
lxc.group = group1,group2,group3,… (членами каких групп является контейнер)
Когда стартует хост-машина, init скрипт lxc-autostart запустит все контейнеры, у которых не указана группа, в правильном порядке и через определённое ими время, но в конфиге контейнера указано lxc.start.auto=1.
Чтобы показать работу механизма автостарта. Поправим /var/lib/lxc/p1/config и внесём:
lxc.start.auto = 1
lxc.group = ubuntu
В /var/lib/lxc/p2/config внесём:
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100
Проверяю...

Код: Выделить всё

nvidia lxc # ls -l /var/lib/lxc
итого 8
drwxrwx--- 3 root root 4096 Дек  1 23:44 C1
drwxrwx--- 3 root root 4096 Дек  9 02:39 C2

nvidia lxc # du -hs C1/rootfs/
764M    C1/rootfs/
    
nvidia lxc # du -hs C2/rootfs/
764M    C2/rootfs/
/var/lib/lxc/C1 дописываем:

Код: Выделить всё

lxc.start.auto = 1
lxc.start.delay = 1
/var/lib/lxc/C2 дописываем:

Код: Выделить всё

lxc.start.auto = 1
lxc.start.delay = 2
В итоге ... то что доктор прописал ;-) :

Код: Выделить всё

olej@nvidia ~/2015_WORK/HISTORY.nvidia/12/08 $ sudo lxc-ls --fancy
NAME  STATE    IPV4        IPV6  AUTOSTART  
------------------------------------------
C1    RUNNING  10.0.3.176  -     YES        
C2    RUNNING  10.0.3.85   -     YES        

Аватара пользователя
Olej
Писатель
Сообщения: 12706
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: контейнеры LXC

Непрочитанное сообщение Olej » 11 фев 2016, 20:30

Хорошая справочная статья по LXC
LXC (Linux Containers) — механизм виртуализации на уровне операционной системы, позволяющий исполнять множество изолированных Linux-систем (контейнеров) в одной системе.

Ядро Linux может изолировать ресурсы (процессор, память, ввод/вывод, сеть и так далее) при помощи cgroups, не прибегая для этого к использованию виртуальных машин. Посредством cgroups изолируются так же деревья процессов, сеть, пользователи и файловые системы.
Изображение
Особенно полезны могут быть управление квотами для LXC:
5 Ограничение ресурсов
5.1 Память
5.2 CPU
5.3 Дисковые квоты: использование loopback-устройств

Аватара пользователя
Olej
Писатель
Сообщения: 12706
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: контейнеры LXC

Непрочитанное сообщение Olej » 15 янв 2017, 18:11

Очень интересное применение контейнеры LXC могут найти в области обеспечения безопасности компьютерных систем от внешних вторжений. И такой способ стал заметно обсуждаться в публикациях последнего года издания.

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

Подробнее это всё обсуждается в отдельной, тому посвящённой, теме: Безопасность.

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость