Виртуализация на уровне ОС. Теория и практика LXC::Журнал СА 4.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 4349
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 5651
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 6881
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7272
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6345
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Виртуализация на уровне ОС. Теория и практика LXC

Архив номеров / 2014 / Выпуск №4 (137) / Виртуализация на уровне ОС. Теория и практика LXC

Рубрика: Администрирование /  Виртуализация

Александр Руденко АЛЕКСАНДР РУДЕНКО, администратор информационной безопасности, ЗАО «Молдавская ГРЭС», a.rudikk@gmail.com

Виртуализация на уровне ОС
Теория и практика LXC

Рассмотрим технические особенности широко обсуждаемой платформы Linux Containers. Выполним ее установку и настройку и обсудим проблемы и сильные стороны платформы

В этой и в следующей статьях хочется провести детальный технический разбор существующих сегодня технологий и продуктов для виртуализации на уровне ОС. Сегодня речь пойдет о наборе компонентов и функций ядра Linux под названием LXC (Linux Containers). Следующая работа будет посвящена более продвинутому и функциональному продукту под названием OpenVZ. В этих материалах постараемся, насколько это возможно, раскрыть их технические особенности, дать примеры установки и настройки. Но вначале, пожалуй, общие для всех теоретические основы.

Виртуализация на уровне ОС

Это наименее требовательная к ресурсам технология виртуализации из существующих сегодня. В отличие от уже привычного варианта, когда виртуализируется оборудование, а не только среда, тут нет гипервизора и не производится эмуляция аппаратного обеспечения. Все экземпляры ОС – контейнеры, используют единое ядро хост-системы и напрямую обращаются к одному и тому же физическому оборудованию. За счет отсутствия слоя виртуализации достигаются максимальная производительность и наивысшая плотность виртуальных серверов на одном физическом. Данная техника предоставляется только в открытых ОС – таких, как Linux (LXC, OpenVZ), FreeBSD (Jail), Solaris (Zones), т.е. этим может воспользоваться каждый, но нет поддержки закрытых ОС (Windows, MacOS). Также существует ряд проблем безопасности, которым будет посвящен отдельный раздел.

Что такое LXC

В первую очередь хочется сказать, что LXC нельзя рассматривать как законченный продукт. Фактически это набор из нескольких совершенно самостоятельных функций ядра Linux и пользовательских утилит, которые позволяют удобно создавать и управлять изолированными контейнерами. Практически вся функциональность LXC представлена такими известными механизмами ядра:

cgroups (Control Groups) – позволяет ограничить аппаратные ресурсы некоторого набора процессов. Под аппаратными ресурсами подразумеваются: процессорное время, память, дисковая и сетевая подсистемы. Набор, или, другими словами, группа процессов, может быть определен по различным критериям. Например, это может быть целая иерархия процессов, получающая все лимиты родительского процесса. Кроме этого, возможен подсчет расходуемых группой ресурсов, заморозка (freezing) групп, создание контрольных точек (checkpointing) и их перезагрузка. Для управления этим полезным механизмом существует специальная библиотека libcgroup, в состав которой входят такие утилиты, как cgcreate, cgexec и некоторые другие.

Namespaces – пространства имен [1]. Это механизм ядра, который позволяет изолировать процессы друг от друга. Изоляция может быть выполнена в шести контекстах (пространствах имен):

  • mnt – предоставляет процессам собственную иерархию файловой системы и изолирует ее от других таких же иерархий. По аналогии с chroot;
  • pid – изолирует идентификаторы (ID) процессов одного пространства имен от процессов с такими же идентификаторами другого пространства;
  • net – предоставляет отдельным процессам логически изолированный от других стек сетевых протоколов, сетевой интерфейс, IP-адрес, таблицу маршрутизации, ARP и прочие реквизиты;
  • ipc – обеспечивает разделяемую память и взаимодействие между процессами;
  • uts – изоляция идентификаторов узла, такого как имя хоста (hostname) и домена (domainname);
  • user – позволяет иметь один и тот же набор пользователей и групп в рамках разных пространств имен. В каждом контейнере могут быть свой root и любые другие пользователи и группы.

Каждое из этих пространств имен имеет свою отдельную историю развития. Часть их функционала появилась еще в ядре 2.6.19, а некоторые возможности добавились лишь в последних версиях (3.8 и выше). Впрочем, и сама LXC еще в активной разработке. Первый (1.0) стабильный релиз планируется выпустить в составе Ubuntu 14.04. И хотя LXC уже давно обсуждается технической общественностью и активно используется, его функционал еще доступен неполностью, а API не стабилен. Именно по этой причине возможности LXC могут сильно меняться от версии к версии.

Статью целиком читайте в журнале «Системный администратор», №4 за 2014 г. на страницах 04-09.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru