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

  Опросы
  Статьи

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

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

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

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

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

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

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

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

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

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

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

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

Принципы проектирования  

Dependency Inversion Principle. Принцип инверсии зависимостей в разработке

Мы подошли к последнему принципу проектирования приложений из серии SOLID – Dependency

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

Рынок труда  

Вакансия: Администратор 1С

Администратор 1С – это специалист, который необходим любой организации, где установлены программы

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

Книжная полка  

Книги для профессионалов, студентов и пользователей

Книги издательства «БХВ» вышли книги для тех, кто хочет овладеть самыми востребованными

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

Принципы проектирования  

Interface Segregation Principle. Принцип разделения интерфейсов в проектировании приложений

Эта статья из серии «SOLID» посвящена четвертому принципу проектирования приложений – Interface

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

1001 и 1 книга  
19.03.2018г.
Просмотров: 10795
Комментарии: 0
Потоковая обработка данных

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

19.03.2018г.
Просмотров: 9041
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

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

19.03.2018г.
Просмотров: 9088
Комментарии: 0
Конкурентное программирование на SCALA

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

19.03.2018г.
Просмотров: 5734
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

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

12.03.2018г.
Просмотров: 6429
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

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

12.03.2018г.
Просмотров: 3735
Комментарии: 0
Глубокое обучение с точки зрения практика

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

12.03.2018г.
Просмотров: 2731
Комментарии: 0
Изучаем pandas

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

12.03.2018г.
Просмотров: 3531
Комментарии: 0
Программирование на языке Rust (Цветное издание)

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

19.12.2017г.
Просмотров: 3521
Комментарии: 0
Глубокое обучение

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

19.12.2017г.
Просмотров: 6016
Комментарии: 0
Анализ социальных медиа на Python

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

Друзья сайта  

 Изоляция процессов с помощью LXC на примере со Skype

Архив номеров / 2014 / Выпуск №5 (138) / Изоляция процессов с помощью LXC на примере со Skype

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

Александр Хрюкин АЛЕКСАНДР ХРЮКИН, инженер-программист Mezon.ru, ARM-Разработчик OpenMandriva.org, alexander@mezon.ru

Изоляция процессов
с помощью LXC на примере со Skype

Когда корпорация Microsoft купила мессенджер Skype, да не просто код, а вместе со всеми менеджерами и программистами, я было обрадовался, что наконец-то будет наведен порядок внутри программы

Подобно Остапу Бендеру, рассказывающего аборигенному населению о преимуществах проведения шахматного турнира в Васюках, дабы означенный город стал столицей шахматного спорта галактического масштаба, я объяснял сам себе, что Miscrosoft-то уж знает толк в разработке ПО, с его миллиардными бюджетами и десятками тысяч программистов, не считая высококлассных управленцев, которые видят, что захотят люди в светлом завтра. С тех пор прошло целых три года, а в Skype, кроме минорных изменений, ничего интересного не произошло. Код так и не переписан на современном языке программирования, и, по всей видимости, еще долгое время делать этого никто не будет.

Как показывает реверс-инжиниринг программы, при написании используется какая-то из версий Delphi, что не может быть серьезным решением для корпорации с миллиардными оборотами. Но самый интересный пункт – это совсем не язык программирования, на котором написан Skype, а тот факт, что за время своего 11-летнего существования разработчики так и не удосужились предоставить 64-битную версию. И все это происходит в ХХI веке, когда в магазинах 32-битные компьютеры уже попросту не купить, а x86 ОС на 64-битном железе используют только по причинам крайней нужды. Я частенько встречаю подобные решения на каких-нибудь серверах Linux c 1С, там действительно много legacy-чудес из прекрасного мира бухгалтерии.

И вот за три года не сделано ничего. Сейчас, например, чтобы установить Skype в любой ОС, нужно не только скачать бандл со Skype, но еще и поставить массу библиотек совместимости, и все эти библиотеки 32-битные. Это касается как Windows, так и Linux, в принципе процесс этот не сложный и много времени не занимает, однако что-то внутри меня категорически против того, чтобы на x64 систему ставились десятки 32-битных пакетов.

Например, чтобы Skype заработал, у него по зависимостям должны быть установлены 32-битные компоненты mesa, alsa, freetype, Qt4, dbus, libpng, libxml, libogg, libvorbis, webp, speex и чуть ли не половина Х11-стека.

В итоге в системе получается несколько наборов абсолютно одинаковых библиотек, нативные 64-битные устанавливаются в /lib64 и /usr/lib64, а их 32-битные дубликаты лежат в /usr/lib и /lib/. Перфекционист внутри меня негодует!

Решено было протестировать запуск Skype внутри chroot-окружения, сформированного и запускаемого с помощью LXC [1], позволяющей создавать и управлять изолированными системами или контейнерами приложений. LXC не использует гипервизор, как, к примеру, Qemu, а создает виртуальное изолированное окружение с собственным пространством процессов (userspaces), а также сетевым стеком.

В переводе на русский язык это означает, что при наличии ядра, поддерживающего CGROUP и множественные PTS, можно запускать изолированные контейнеры в работающей системе так, словно они запущены нативно. То есть это не просто chroot, а chroot на стеройдах.

В целом процесс загрузки LXC-контейнера выглядит так же, как и обычной базовой системы, за исключением того, что ядро уже загружено в память, и с помощью LXC+Cgroups+Namespaces остается запустить только init-систему.

LXC очень похож на системы OpenVZ, FreeBSD Jail, Solaris Containers, VServer,преимущество в том, что для LXC не нужно какое-то особое патченное ядро, как, например, для OpenVZ, которое без весьма специфичного ядра просто не будет работать.

Все параметры ядра, необходимые для обеспечения работоспособности LXC, являются совершенно стандартными опциями в Mainline-kernel, и во все современные дистрибутивы они включены по умолчанию.

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


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

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

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

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

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