The OpenNET Project / Index page

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

21.02.2014 19:41  Релиз LXC 1.0, системы управления изолированными контейнерами Linux

Представлен первый стабильный выпуск инструментария LXC 1.0, официально объявленный пригодным для промышленного применения. В рамках проекта развивает набор выполняющихся в пространстве пользователя инструментов для организации работы изолированных контейнеров, позволяющих изолировать процессы и ресурсы при помощи штатных механизмов ядра Linux, таких как пространства имён (namespaces) и группы управления (cgroups). Поддержка выпуска исправлений для ветки LXC 1.0 будет осуществляться в течение пяти лет. Готовые пакеты с LXC 1.0 подготовлены для Ubuntu Linux.

В отличие от технологий виртуализации на основе гипервизоров, контейнеры выполняются под управление единого ядра Linux, без необходимости запуска отдельного ядра и набора драйверов в каждом окружении. По своим возможностям контейнеры занимают нишу между изоляцией при помощи chroot и полноценными средствами виртуализации. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования.

Для изоляции процессов, сетевого стека ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Кроме того, для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.

Ключевые улучшения в LXC 1.0:

  • Поддержка полностью непривилегированных контейнеров, работающих без возможности получения прав суперпользователя внутри;
  • Стабилизация API (liblxc1) для создания и управления контейнерами;
  • Поставка официальных биндингов для использования API в программах на языках python3, lua, ruby и Go;
  • Гибкая система размещения контейнеров в различных типах хранилищ. Поддерживается размещение контейнеров в обычном дереве директорий, в ФС btrfs и zfs, в lvm, loop-устройствах, aufs и overlayfs;
  • Поддержка клонирования работающих контейнеров и возможность заморозки их состояния через создание снапшотов;
  • Сокращенный, но более целостный, набор утилит;
  • Обновлённая и полноценная документация;
  • Поддержка нескольких методов создания контейнеров на основе недавно сгенерированных образов;
  • Поставка шаблонов для создания контейнеров на основе популярных дистрибутивов Linux. Шаблоны подготовлены для Alpine Linux, Alt Linux, Arch Linux, busybox, CentOS, Cirros, Debian, Fedora, OpenMandriva, OpenSUSE, Oracle, Plamo, sshd, Ubuntu Cloud и Ubuntu. В контейнере также можно запустить окружение Android;
  • Возможность запуска графического окружения внутри контейнера. Пример запуска Google Chrome, Steam и Skype в отдельных контейнерах.

Пример использования контейнеров:


   # Создадим контейнер с именем "p1", используя шаблон "ubuntu"
   sudo lxc-create -t ubuntu -n p1

   # Запустим контейнер в фоне
   sudo lxc-start -n p1 -d

   # Войдём в контейнер через консоль (для выхода нужно набрать ctrl-a + q)
   sudo lxc-console -n p1

   # Войдём в контейнер через запуск bash, минуя логин
   sudo lxc-attach -n p1

   # Войдём в контейнер через SSH:
   sudo lxc-info -n p1
   ssh ubuntu@полученный_ip

   # Заморозим состояние контейнера
   sudo lxc-freeze -n p1

   # Разморозим состояние контейнера
   sudo lxc-unfreeze -n p1

   # Пробросим устройства в контейнер
   sudo lxc-device add -n p1 /dev/ttyUSB0 /dev/ttyS0

   # Создадим снапшот (при размещении контейнера в LVM или Btrfs)
   sudo lxc-snapshot -n p1 -c snap-comment
   sudo lxc-snapshot -n p1 -L -C

   # Откатим состояние на созданный снапшот
   sudo lxc-snapshot -n p1 -r snap0
   
   # Создадим новый контейнер на основе снапшота
   sudo lxc-snapshot -n p1 -r snap0 p1-snap0

   # Завершим работу контейнера
   sudo lxc-stop -n p1

   # Принудительно закроем контейнер
   sudo lxc-stop -n p1 -k


   # Для настройки сети создадим файл конфигурации 
   cat /var/lib/lxc/p1/config
   # Проброс физического сетевого интерфейса
   lxc.network.type = phys
   lxc.network.link = eth2
   lxc.network.name = eth1
   
   # Создание виртульного сетевого интерфейса
   lxc.network.type = veth
   lxc.network.hwaddr = 00:16:3e:3a:f1:c1
   lxc.network.flags = up
   lxc.network.link = lxcbr0
   lxc.network.name = eth0


  1. Главная ссылка к новости (https://lists.linuxcontainers....)
  2. OpenNews: Выпуск CRIU 1.0, системы для заморозки и восстановления состояния процессов в Linux
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: lxc, container
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 20:06, 21/02/2014 [ответить] [показать ветку] [···]     [к модератору]
  • +1 +/
    Вообще, по-хорошему, речь идет только о наборе юзерспейсных программ, являющихся... весь текст скрыт [показать]
     
     
  • 2.4, Аноним (-), 20:39, 21/02/2014 [^] [ответить]    [к модератору]  
  • +/
    А чего конкретно сложно сделать без UID namespaces?
     
     
  • 3.9, Аноним (-), 22:25, 21/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Без UID namespaces, root из контейнера root на хосте Допустим, ФС хоста и се... весь текст скрыт [показать]
     
     
  • 4.12, Аноним (-), 22:34, 21/02/2014 [^] [ответить]    [к модератору]  
  • +/
    А можно подробнее на почитать? Получается, что все эти разговоры про контейнеры, докер, етц - пустой пиар?
     
     
  • 5.17, Аноним (-), 23:13, 21/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Нет, просто LXC-контейнеры в современном их виде - не для безопасности, а для ... весь текст скрыт [показать]
     
     
  • 6.20, Аноним (-), 08:26, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Так ведь это так и есть. Для безопасности, допустим, те же сервисов, выставленных наружу, те же cgroups без всяких контейнеров подходят лучше.
     
     
  • 7.44, Аноним (-), 20:55, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    cgroups - это только компонент контейнера Таких механизмов, как изоляция точек ... весь текст скрыт [показать]
     
     
  • 8.48, Аноним (-), 00:26, 23/02/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Зачем моему сервису, крутящемуся на моей машине, изоляция точек монтирования и с... весь текст скрыт [показать]
     
     
  • 9.51, Аноним (-), 02:09, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Зачем моему сервису, крутящемуся на моей машине, изоляция точек монтирования и сетевого стека?
    > более-менее защитить его от проламывания.

    this

     
     
  • 10.61, Аноним (-), 18:05, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    И?
    Дисковой квоты и обрезания прав недостаточно?

     
  • 9.53, Аноним (-), 06:42, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Xen.

    А нафига? KVM мало?

     
     
  • 10.62, Аноним (-), 18:06, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Медленно. Особенно в районе сети.

     
     
  • 11.63, pavel_simple (ok), 19:18, 23/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Медленно. Особенно в районе сети.

    враньё

     
  • 11.69, Аноним (-), 09:03, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Медленно. Особенно в районе сети.

    Не заметил. Virtio там есть, etc.

     
  • 9.65, pavlinux (ok), 01:19, 24/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Чё только не придумают, лишь бы маны не читать!

    > и более-менее защитить его от проламывания.

    Если ты пишешь на Опеннете, значит твой сервак нахер никому не нужен. :-P

     
  • 4.19, Аноним (-), 02:48, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Сам проверял, загрузить выгрузить ядрёный модуль тем внутренним рутом не даёт ... весь текст скрыт [показать]
     
     
  • 5.39, Аноним (-), 20:41, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Это уже давно прикрыли Но это всего лишь одна из десятков дырочек все не упо... весь текст скрыт [показать]
     
  • 5.49, Аноним (-), 01:32, 23/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Ну, если не Ubuntu, могу предложить попробовать поменять системное время в конте... весь текст скрыт [показать]
     
     
  • 6.50, Аноним (-), 01:35, 23/02/2014 [^] [ответить]     [к модератору]  
  • +/
    На Ubuntu, конечно тоже будет работать, но там есть еще и много других впечатляю... весь текст скрыт [показать]
     
  • 4.22, cadmi (?), 10:26, 22/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Например, если запустить ubuntu в lxc на убунтовом хосте, команда reboot из
    > контейнера перезагружает хост.

    Пробовал? :) Или Мойша напел?

     
     
  • 5.26, Анонимно (?), 14:26, 22/02/2014 [^] [ответить]    [к модератору]  
  • +3 +/
    Я пробовал. Ubuntu 13.10 32bit.
     
  • 4.64, Антон (??), 00:49, 24/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Что за ересь Перегружает Только не хост, а гест LXC в 12 04LTS вполне себе р... весь текст скрыт [показать]
     
  • 4.66, Ващенаглухо (ok), 10:23, 24/02/2014 [^] [ответить]    [к модератору]  
  • +/
    "команда reboot из контейнера перезагружает хост." наверно это только на убунте, на арче такого не происходит.
     
  • 2.5, ананим (?), 21:42, 21/02/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Создадим контейнер с именем p1 , используя шаблон ubuntu Войдём в к... весь текст скрыт [показать]
     
     
  • 3.8, Аноним (-), 22:23, 21/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Как?

    Легко. Например, Docker это умел еще полгода назад.

     
     
  • 4.14, ананим (?), 22:57, 21/02/2014 [^] [ответить]    [к модератору]  
  • –5 +/
    а ты ткни пальчиком, деточка, а то не видно старичку то.
     
     
  • 5.16, Аноним (-), 23:09, 21/02/2014 [^] [ответить]    [к модератору]  
  • +/
    http://docs.docker.io/en/latest/use/

    Дальше сами осилите, или мне придется еще и учить вас пользоваться браузером?

     
     
  • 6.32, ананим (?), 19:04, 22/02/2014 [^] [ответить]     [к модератору]  
  • –4 +/
    понятно, ответа нет так вот, сабж, в отличие от ваших ссылок, работает а там п... весь текст скрыт [показать]
     
     
  • 7.40, Аноним (-), 20:43, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Скорее, человек просто лень писать персонально для вас подробное руководство, и ... весь текст скрыт [показать]
     
     
  • 8.46, ананим (?), 21:17, 22/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Скорее, человек просто лень писать персонально для вас подробное руководство

    Скорее вы тролль.
    И ни разу не пробовали ни то, ни другое.
    Вывод — а напуркуа вы это всё написали?

     
  • 1.10, Miha (??), 22:30, 21/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А как у него с оверхедом, например, по-сравнению с FreeBSD Jail?
     
     
  • 2.11, Аноним (-), 22:33, 21/02/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Какой оверхед там вообще может быть? Контейнер - это просто совокупность процессов, использующих общие namespaces.
     
     
  • 3.23, Xaionaro (ok), 10:26, 22/02/2014 [^] [ответить]    [к модератору]  
  • –3 +/
    Сам вак ключенных namespace-ов, cgroup-ов и т.п. в ядре даёт overhead-ы.
     
     
  • 4.24, Аноним (-), 11:48, 22/02/2014 [^] [ответить]    [к модератору]  
  • +4 +/
    А уж ядро какие даёт оверхеды! То ли дело bare metal.
     
     
  • 5.56, Xaionaro (ok), 10:11, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > А уж ядро какие даёт оверхеды! То ли дело bare metal.

    Вы наверное удивитесь, но в разной конфигурации ядро работает с разной скоростью.

     
     
  • 6.70, Аноним (-), 09:08, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Вы наверное удивитесь, но в разной конфигурации ядро работает с разной скоростью.

    Поэтому айда програмить в досе, на голом асме. Вот там точно никакого оверхеда.


     
  • 4.35, ананим (?), 20:01, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Сам вак ключенных namespace-ов, cgroup-ов и т.п. в ядре даёт overhead-ы.

    Нет.
    Не даёт.
    Фактически это только куда смотрит как на рут граф.

     
     
  • 5.57, Xaionaro (ok), 10:13, 23/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Хм, а в документация к ядру и lwn net думают иначе 1 , насколько я помню 1 h... весь текст скрыт [показать]
     
  • 4.41, Аноним (-), 20:44, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Сам вак ключенных namespace-ов, cgroup-ов и т.п. в ядре даёт overhead-ы.

    Нет. Только отдельные контроллеры cgroups, типа memory. Но их включать не обязательно.

     
     
  • 5.58, Xaionaro (ok), 10:14, 23/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Давая контейнеру доступ ко всей памяти получается слишком плохая изоляция Получ... весь текст скрыт [показать]
     
  • 3.34, Аноним (-), 20:00, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    0.93% в среднем
     
  • 1.13, Стоян (?), 22:38, 21/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Фантастичная статья - огромное спасибо - долго искал короткое описание, как например есть у зони Соляриса - всего доброго!!!
    :)
     
     
  • 2.36, ананим (?), 20:02, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    совсем другой подход в реализации.
     
  • 1.18, Василий (??), 23:14, 21/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Стефан Грабер (Stéphane Graber), в преддверии выхода 20 февраля 2014 года релиза LXC 1.0, опубликовал цикл статей о Linux Containers.
    Рассмотрены:
    * Первый Ubuntu контейнер.
    * Второй контейнер.
    * Продвинутое использование контейнера.
    * Более углублённое использование контейнера.
    * Хранилище контейнеров.
    * Безопасность.
    * Непривилегированные контейнеры.
    * Скрипты и API.
    * GUI в контейнере.
    * Решение проблем и отладка.
    Оригинал https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series
    Перевод  http://vasilisc.com/lxc-1-0-blog-post-series
     
  • 1.21, аывыв (?), 09:48, 22/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >По своим возможностям контейнеры занимают нишу между изоляцией при помощи chroot

    намного безопаснее chroot'а?

     
     
  • 2.71, Аноним (-), 09:09, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > намного безопаснее chroot'а?

    Ощутимо - изолируется не только ФС но и иные неймспейсы, что явно лучше.

     
  • 1.25, Аноним (-), 13:41, 22/02/2014 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Когда игрался на убунте 12 4 обнаружил невозможность ограничить даже размер памя... весь текст скрыт [показать]
     
     
  • 2.27, Аноним (-), 14:56, 22/02/2014 [^] [ответить]     [к модератору]  
  • –3 +/
    Это называется resource management Отсутствует как класс в лине ... весь текст скрыт [показать]
     
     
  • 3.28, Apple (?), 15:17, 22/02/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    И давно оно стало отсутствовать? И у кого присутствует лучше?
     
     
  • 4.38, Аноним (-), 20:28, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Оно просто никогда не было написано.

    А присутствует дофига где. В Солярис 10, например. Там весьма продвинутый менеджмент ресурсов в контейнерах.

     
     
  • 5.43, Аноним (-), 20:52, 22/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > А присутствует дофига где. В Солярис 10, например. Там весьма продвинутый менеджмент ресурсов в контейнерах.

    У меня не получилось. Следовательно, в солярке тоже отсутствует как класс :)

     
  • 3.72, Аноним (-), 09:10, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Отсутствует как класс в лине.

    То-то линем все хостеры ползуются. Что для впсок на опенвзе, что для виртуалок на xen/kvm и прочих облаков.

     
  • 2.29, Apple (?), 15:26, 22/02/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Нужно пробовать на 14.04, там будет новый LXC 1.0, в 12.04.4 да, всё грустно с ним.
     
  • 2.30, CssfPZS (ok), 15:52, 22/02/2014 [^] [ответить]    [к модератору]  
  • +2 +/
    Поставь Linux и бдет тебе счастье.
    К.О.
     
     
  • 3.33, Аноним (-), 19:45, 22/02/2014 [^] [ответить]    [к модератору]  
  • –3 +/
    Подозреваю, дебиан тоже не линукс.
    На роль домашнего серверо-декстопа (с поддержкой больше 5 лет) не так уж много претендентов.
     
     
  • 4.37, CssfPZS (ok), 20:12, 22/02/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    > Подозреваю, дебиан тоже не линукс.
    > На роль домашнего серверо-декстопа (с поддержкой больше 5 лет) не так уж
    > много претендентов.

    В отличие от горбатой убунту, Debian как раз таки один из нормальных представителей Linux семейства.

     
     
  • 5.55, Аноним (-), 06:45, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > В отличие от горбатой убунту, Debian как раз таки один из нормальных
    > представителей Linux семейства.

    Вот только найти 10 отличий между ними не подсматривая в версии софта... :)

     
  • 4.45, Аноним (-), 20:57, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    К сожалению, именно у Ubuntu в частности, из-за особенностей сборки ядра и проб... весь текст скрыт [показать]
     
  • 2.42, Аноним (-), 20:51, 22/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Сравнительно старое ядро особенности убунтовой сборки Сейчас посмотрел ко... весь текст скрыт [показать]
     
     
  • 3.52, Kibab (ok), 02:49, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Если у команд управления инитом из контейнера получается убить хост-систему -- такие контейнеры не нужны, не правда ли?
     
     
  • 4.54, Аноним (-), 06:44, 23/02/2014 [^] [ответить]     [к модератору]  
  • –2 +/
    Ну да, сейчас нам бздюки дадут краткий курс использования контейнеров Правда по... весь текст скрыт [показать]
     
     
  • 5.59, Kibab (ok), 11:22, 23/02/2014 [^] [ответить]    [к модератору]  
  • +/
    >> контейнеры не нyжны, не правда ли?
    > Ну да, сейчас нам бздюки дадут краткий курс использования контейнеров.

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


    Правда почему-то
    > все хостинги поголовно на openvz сидят :). Или на виртуалзаторах типа
    > xen и kvm.

    Аг, вот мы как раз Linux и используем как хорошую запускалку виртуальных машин :-)  другого применения не находится. Так что тут соглашусь.

     
     
  • 6.73, Аноним (-), 09:24, 25/02/2014 [^] [ответить]     [к модератору]  
  • +/
    Интимные особенности работы апстарта, сигнал приезжает неожиданным маршрутом к... весь текст скрыт [показать]
     
     
  • 7.76, Kibab_not_logged_in (?), 21:31, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    >> Каким образом получается, что сигнал из контейнера вообще доходит до PID 1?
    > Интимные особенности работы апстарта, сигнал приезжает "неожиданным" маршрутом который
    > не удавили (dbus)

    Причем тут вообще апстарт??? Каким образом userland-приложение стало причиной того, что ядро ниасилило заглушить посланный тз контейнера сигнал? Тебе самому не смешно?

    >> Аг, вот мы как раз Linux и используем как хорошую запускалку виртуальных машин :-)
    > Странно что не hyper-v, было бы прикольнее смотреть как бы вы этот
    > кактус грызли.

    Я смотрю, богатый опыт у анонима в пожирании кактусов.

    >> другого применения не находится.
    > Ну а что что с проприераса взять? Он фапает на бзду но
    > грузится в макось или максималку, знаем мы это дело. Ну или
    > вот линь на виртуализаторе. Потому что toy OS и на виртуализатор
    > не тянет.

    Я уже неоднократно писал тут, какие мы продукты делаем на базе бзды, продолжайте прятать голову в песок :-)

     
  • 5.60, Аноним (-), 18:00, 23/02/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    Ну не видели люди SmartOS с нормальными Zones.
     
     
  • 6.74, Аноним (-), 09:25, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Ну не видели люди SmartOS с нормальными Zones.

    Кому было сильно надо - сто лет юзают OpenVZ в продакшне. Ну и виртуалки вот. А zones - они где? Много на них продакшнов у хостеров? Ну вот и...

     
  • 1.67, Ващенаглухо (ok), 10:29, 24/02/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Вот бы ещё эти контейнеры могли использовать KSM. 20 запущенных контейнеров сожрали 14 гигов.
    Кстати пробовал ядро с UKSM, хрень полная... не работает.
     
     
  • 2.68, Stax (ok), 18:54, 24/02/2014 [^] [ответить]    [к модератору]  
  • +/
    Ну, не просто так его до сих пор в ядро не включили :)
    KSM+KVM/QEMU хотя бы реальный эффект дают..
     
  • 2.75, Онаним (?), 10:46, 25/02/2014 [^] [ответить]    [к модератору]  
  • +/
    > Вот бы ещё эти контейнеры могли использовать KSM.

    Не секурно. Да и память нынче дешева.

     

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


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