The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

08.09.2017 22:51  Выпуск системы управления контейнерами LXC 2.1

После полутора лет разработки сформирован релиз инструментария для организации работы изолированных контейнеров LXC 2.1. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека, ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.

Ключевые изменения:

  • Поддержка ограничения ресурсов через механизм rlimit. Настройка выполняется аналогично лимитам через cgroup через директивы lxc.prlimit.имя_лимита в файле конфигурации контейнера. Например, для того чтобы снять ограничение на число процессов и установить значение nice в файл конфигурации можно добавить:
    
       lxc.prlimit.nproc = unlimited
       lxc.prlimit.nice = 4
    
  • Возможность определения виртуальных сетей openvswitch непривилегированным пользователем:
    
       lxc.net.0.type = veth
       lxc.net.0.link = ovsbr0
       lxc.net.0.flags = up
       lxc.net.0.name = eth0
    
  • Новый параметр "lxc.cgroup.dir", позволяющий указать имя родительского cgroup, к которому будет привязан cgroup создаваемого контейнера. Например, установка "lxc.cgroup.dir = mycontainers" для контейнера "lxc.uts.name = c1" приведёт к созданию cgroups "mycontainers/c1" для всех контроллеров в иерархии cgroup;
  • Поддержка гибридного режима настройки cgroup, при котором можно сочетать новую (cgroup v2) единую унифицированная иерархию cgroup и старую (cgroup v1) гибкую систему из произвольного числа иерархий cgroup. В гибридном режиме предложено ограниченное число контроллеров для распределения ресурсов CPU, регулирования потребления памяти, контроля ввода/вывода и т.п.
  • Добавлена настройка lxc.pty.max для ограничения числа псевдотерминалов (ptys), которое можно запросить из контейнера.
  • Исполняемый файл lxc-monitord переведён в разряд устаревших и больше не требуется для запуска фоновых контейнеров. Вместо lxc-monitord теперь применяется абстрактная реализация на основе пары unix-сокетов;
  • В lxc-copy обеспечено создание снапшотов в tmpfs при запуске одноразовых контейнеров (флаг "-e");
  • Переименована достаточно большая порция параметров конфигурации с целью унификации синтаксиса настроек. Параметры разнесены по категориям, например, все сетевые настройки теперь поставляются с префиксом "lxc.net". Префикс lxc.network объявлен устаревшим, для избежания разночтений все ключи из него перенесены в lxc.net. Например, вместо серии "lxc.network.name = wlp2s0; lxc.network.name = eno1" теперь нужно указывать "lxc.net.0.name = wlp2s0; lxc.net.1.name = eno1" с явным номера блока;

    Таблица соответствия старых и новых параметров настройки:

    
    lxc.aa_profile                       | lxc.apparmor.profile          |
    lxc.aa_allow_incomplete              | lxc.apparmor.allow_incomplete |
    lxc.console                          | lxc.console.path              |
    lxc.devttydir                        | lxc.tty.dir                   |
    lxc.haltsignal                       | lxc.signal.halt               |
    lxc.id_map                           | lxc.idmap                     |
    lxc.init_cmd                         | lxc.init.cmd                  |
    lxc.init_gid                         | lxc.init.gid                  |
    lxc.init_uid                         | lxc.init.uid                  |
    lxc.kmsg                             | -                             | удалён
    lxc.limit                            | lxc.prlimit                   |
    lxc.logfile                          | lxc.log.file                  |
    lxc.loglevel                         | lxc.log.level                 |
    lxc.mount                            | lxc.mount.fstab               |
    lxc.network                          | lxc.net                       |
    lxc.network.                         | lxc.net.[i].                  |
    lxc.network.flags                    | lxc.net.[i].flags             |
    lxc.network.hwaddr                   | lxc.net.[i].hwaddr            |
    lxc.network.ipv4                     | lxc.net.[i].ipv4.address      |
    lxc.network.ipv4.gateway             | lxc.net.[i].ipv4.gateway      |
    lxc.network.ipv6                     | lxc.net.[i].ipv6.address      |
    lxc.network.ipv6.gateway             | lxc.net.[i].ipv6.gateway      |
    lxc.network.link                     | lxc.net.[i].link              |
    lxc.network.macvlan.mode             | lxc.net.[i].macvlan.mode      |
    lxc.network.mtu                      | lxc.net.[i].mtu               |
    lxc.network.name                     | lxc.net.[i].name              |
    lxc.network.script.down              | lxc.net.[i].script.down       |
    lxc.network.script.up                | lxc.net.[i].script.up         |
    lxc.network.type                     | lxc.net.[i].type              |
    lxc.network.veth.pair                | lxc.net.[i].veth.pair         |
    lxc.network.vlan.id                  | lxc.net.[i].vlan.id           |
    lxc.pivotdir                         | -                             | удалён
    lxc.pts                              | lxc.pty.max                   |
    lxc.rebootsignal                     | lxc.signal.reboot             |
    lxc.rootfs                           | lxc.rootfs.path               |
    lxc.se_context                       | lxc.selinux.context           |
    lxc.seccomp                          | lxc.seccomp.profile           |
    lxc.stopsignal                       | lxc.signal.stop               |
    lxc.syslog                           | lxc.log.syslog                |
    lxc.tty                              | lxc.tty.max                   |
    lxc.utsname                          | lxc.uts.name                  |
    
  • Добавлен скрипт lxc-update-config, предназначенный для автоматического приведения старых настроек в соответствие с новыми именами параметров. При этом устаревшие имена параметров пока остаются работоспособными, т.е. обеспечена обратная совместимость со старыми файлами конфигурации.


  1. Главная ссылка к новости (https://insights.ubuntu.com/20...)
  2. OpenNews: Уязвимость в LXC, позволяющая получить доступ к файлам вне контейнера
  3. OpenNews: Выпуск системы управления контейнерами LXC 2.0
  4. OpenNews: Выпуск системы управления контейнерами LXC 1.1, со встроенной поддержкой CRIU
  5. OpenNews: Релиз LXC 1.0, системы управления изолированными контейнерами Linux
  6. OpenNews: Выпуск системы управления контейнерами LXD 2.8
Лицензия: CC-BY
Тип: Программы
Ключевые слова: lxc, container, cgroup
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, pavlinux, 00:49, 09/09/2017 [ответить] [смотреть все]
  • –2 +/
    Оно на XFS уже научилось работать?
     
     
  • 2.2, KonstantinB, 01:23, 09/09/2017 [^] [ответить] [смотреть все] [показать ветку]
  • –1 +/
    А что там не работает?  Квоты?
     
     
  • 3.3, pavlinux, 01:51, 09/09/2017 [^] [ответить] [смотреть все]
  • +1 +/
    При очень большом интенсиве, при создании каталогов хотя б скопировать исходник... весь текст скрыт [показать]
     
     
  • 4.5, gogo, 08:46, 09/09/2017 [^] [ответить] [смотреть все]  
  • –7 +/
    Голословный наезд Прям как Ежик из Смешариков - Если я вот так выгинаюсь, то у... весь текст скрыт [показать]
     
  • 4.6, KonstantinB, 11:28, 09/09/2017 [^] [ответить] [смотреть все]  
  • +/
    А багрепорты есть Я на стейдже использую на xfs Ubuntu Trusty, lxc 2 0 7 , про... весь текст скрыт [показать]
     
     
  • 5.23, pavlinux, 03:33, 25/09/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    > А багрепорты есть?

    Хуерепорты, мне своей работы мало...
    LCX Project sponsored by Canonical Ltd. Про XFS by SGI уж молчу...
    Вот и пускай сами меня ловят, за бабло будут им репорты

     
  • 4.8, Аноним, 15:00, 09/09/2017 [^] [ответить] [смотреть все]  
  • –3 +/
    А нехрен в ядро проприетарные блобы совать да-да, от Нивидии ... весь текст скрыт [показать]
     
     
  • 5.10, пох, 18:14, 09/09/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    да-да, проблемы с mkdir на xfs - это ж все из-за нвидии ... весь текст скрыт [показать]
     
     
  • 6.12, ананим.orig, 04:21, 10/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Да-да, с блобом нИвидии проблемы саморассосутся Типа нет исходников и нет пробл... весь текст скрыт [показать]
     
  • 6.20, pavlinux, 00:11, 14/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Нигадяи ... весь текст скрыт [показать]
     
  • 4.9, пох, 18:14, 09/09/2017 [^] [ответить] [смотреть все]  
  • +/
    действительно, неидиоты же используют только те тесты, которые им удобны Фигак-... весь текст скрыт [показать]
     
  • 4.15, Nicknnn, 08:04, 12/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Как это связано с LXC ... весь текст скрыт [показать]
     
     
  • 5.16, пох, 14:58, 12/09/2017 [^] [ответить] [смотреть все]  
  • +/
    > Как это связано с LXC?

    проявляется, когда исходники qt в контейнере человек копирует, или тест в нем запускает, чего непонятно?
    Еще бы ядро валилось при попытке их копировать не в контейнере...

     
  • 2.14, Nicknnn, 07:57, 12/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    а почему не должно? как связан "скрипт" для создания неймспейсов и cgroup с возможностью процессов создавать файлы на XFS?
     
     
  • 3.17, пох, 15:00, 12/09/2017 [^] [ответить] [смотреть все]  
  • +/
    > а почему не должно? как связан "скрипт" для создания неймспейсов и cgroup
    > с возможностью процессов создавать файлы на XFS?

    больше проверок - больше шансов для рейса или локапа. Ну или просто сильнее тормозит - и опять больше шансов для рейса и локапа.

    Что вам мешает самому-то потестить, если интересно?

     
     
  • 4.18, Nicknnn, 21:53, 12/09/2017 [^] [ответить] [смотреть все]  
  • +/
    > больше проверок - больше шансов для рейса или локапа. Ну или просто
    > сильнее тормозит - и опять больше шансов для рейса и локапа.
    > Что вам мешает самому-то потестить, если интересно?

    Так мне интересно, хочу постестить. Но достаточно ли просто переложить исходники?
    Очевидно нет, так как павлинукс не привёл конфига контейнера, имя исходного образа. А без этой информации мой, я уверен успешный, тест ничего не покажет. Может он там докер образ крутил, на оверлейфс поверх xfs  без ftype=2. А с этим докероговном можно всё что угодно словить.

     
     
  • 5.21, пох, 18:05, 14/09/2017 [^] [ответить] [смотреть все]  
  • +/
    > Так мне интересно, хочу постестить. Но достаточно ли просто переложить исходники?

    ну так сделайте - мы хотя бы будем знать, что в простом случае-  недостаточно. Мне вот интересно, но не настолько, поскольку для работы прям щас - не требуется.

    > Очевидно нет, так как павлинукс не привёл конфига контейнера

    как и детального описания своего железа/доступных ресурсов и много чего еще. Но нам, в конце-концов, не на его системе надо чтоб работало, а на своей.
    Ссылка на LTP ж дана - что мешает попробовать? Можно прямо во всех наличных контейнерах.

    > А с этим докерог*вном можно всё что угодно словить.

    с overlay да, можно ничего не тестировать, даже на правильной xfs или на кошерном ext4 - оно все равно рассыплется. К тому же послезавтра их новая муха укусит, и они выпустят overlay3, или сразу 30.

     
  • 1.7, Страдалец, 11:38, 09/09/2017 [ответить] [смотреть все]  
  • +/
    А stateful snapshot у кого-нибудь работает? Это там где контейнер дампится вместе с содержимым памяти включая сетевые сокеты. Уже третий год жду пока заработает из коробки. Нет, я, конечно, по инструкции CRIU какую-то ночную сборку заставил работать, но это не продакшн.
     
  • 1.11, Аноним, 21:52, 09/09/2017 [ответить] [смотреть все]  
  • +2 +/
    С btrfs всё норм работает в продакшен достаточнно давно
     
  • 1.13, via, 23:24, 11/09/2017 [ответить] [смотреть все]  
  • +1 +/
    стоп, lxc-ls, lxc-start,... - это ж набор из lxc 1.0  В двойке чистая lxc с аргументами. Главное, с возможностью работы под обычным юзером
     
     
  • 2.19, Аноним, 20:42, 13/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы путаете с lxd, там как раз lxc и работа от юзера дефолт В lxc есть работа о... весь текст скрыт [показать] [показать ветку]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor