Что лучше, Ubuntu или CentOS. Преимущества и недостатки использования CentOS для выделенного сервера, особенности CentOS на базе Red Hat Enterprise Linux

Операционная система CentOS - в первую очередь рассчитана для использования на серверах и в крупных компаниях, но может вполне успешно применяться и на компьютерах обычных пользователей для решения повседневных задач. Дистрибутив Ubuntu рассчитан на новых пользователей, но имеет очень даже неплохую версию для серверов.

Оба дистрибутива разрабатываются большими компаниями, которые играют не последнюю роль в мире свободного программного обеспечения и оба они отлично подходят для решения своего круга задач. В этой статье мы попытаемся сравнить эти дистрибутивы, попробуем выяснить что лучше Ubuntu или CentOS, а также какой дистрибутив лучше подходит для решения тех или иных задач. Сравнивать будем по пунктам, чтобы было проще ориентироваться. А теперь перейдем к сравнению.

Казалось бы, что разработчик дистрибутива не так важен, но на самом деле это имеет значение. Операционная система разрабатывается африканской компанией Canonical, основанной Марком Шатлвортом. Дистрибутив основан на Debian и основной своей целью ставит простоту для новых пользователей, удобность настройки. Первый релиз состоялся в 2004 году. Canonical разрабатывает собственную оболочку для Gnome - Unity, которая должна стать единой для смартфонов и компьютеров. Также компания пытается продвинуть Ubuntu на рынок телефонов и планшетов, правда пока не очень успешно. Кроме этого, Canonical занимается продвижением Ubuntu на серверах и на данный момент больше всего веб-серверов работают на Ubuntu.

Дистрибутив CentOS поддерживается сообществом и основан на Red Hat Linux. Тут, казалось полное преимущество на стороне Ubuntu, но... CentOS это бесплатная версия Red Hat, по сути, это полностью та же самая система, собранная из исходников Red Hat Linux, которая получает регулярные обновления, спустя некоторое время после того, как их выпускает компания Red Hat.

Эта компания занимается разработкой серверных операционных систем начиная с 1993 года и выпускает обновления для своих систем на протяжении 10 лет, в отличие строка поддержки Ubuntu - два года, причем в старые версии ядер портируются многие интересные новые возможности. Red Hat - занимается только разработкой операционной системы коммерческого уровня для серверов и компаний. Все это перенимает CentOS.

В этом аспекте побеждает явно Red Hat, а вместе с ним и CentOS. Хотя Canonical делает много для Ubuntu, но они тратят много сил на сторонние вещи, ту же самую систему для смартфонов. И создатель ядра Linux - Линус Торвальдс сотрудничает с Red Hat.

2. Программное обеспечение

В Ubuntu используется унаследованный от Debian формат пакетов Deb. В CentOS используется разработанный в Red Hat, формат rpm. Фактически, для конечного пользователя они почти не отличаются, разве только можно заметить, что системы с системой управления пакетами RPM скачивают больше метаданных при обновлении репозитория, а также здесь не поддерживаются рекомендованные зависимости.

Более интересна доступность программного обеспечения. Для Ubuntu вы найдете почти все программы, которые вам будут нужны. Установочные пакеты собираются даже для новых, только что вышедших программ и несмотря на то, что они не добавляются в репозитории, здесь есть PPA и вы сможете установить оттуда все, что вам понадобится. Но некоторого старого ПО можно и не найти.

В CentOS с этим ситуация немного другая. RPM пакеты выпускаются не так активно как Deb, есть репозиторий, со сторонним программным обеспечением, но там есть далеко не все новые программы. Тем не менее, старые версии программ будет найти проще, и в целом программы лучше совместимы с системой и боле стабильны. В вопросе доступности программного обеспечения Ubuntu vs CentOS лучше показывает себя, все же Ubuntu.

3. Окружение рабочего стола

Ubuntu использует собственную оболочку Unity, которая работает поверх новой версии окружения рабочего стола Gnome 3. Она вносит несколько изменений в интерфейс и выглядит в целом очень даже неплохо.

В CentOS используется классическая и привычная всем версия Gnome 2. Окружение выглядит немного старомодно, но работает вполне стабильно и поддерживает все необходимые функции. Внешний вид системы - это личное дело каждого и оболочку очень легко сменить, но обычно под какое окружение система заточена изначально, с тем она и будет работать лучше всего.

4. Установка

Установка Ubuntu или CentOS не сильно отличается. Системы используют разные установщики, но суть везде одна. Ubuntu имеет более упрощенный установщик, в котором вы можете настроить базовую конфигурацию системы, разбить диск и создать пользователей.

В CentOS установщик тот же, что и у Fedora и Red Hat, кроме всего прочего, здесь вы можете выбирать компоненты, которые нужно установить, например, рабочий стол Gnome или KDE, а также задать настройки сети.

Установщик Ubuntu похож на мастер, вам просто нужно перемещаться от шага к шагу и устанавливать нужные параметры, в CentOS есть главное меню, в котором нужно будет настроить каждый пункт.

5. Стабильность

Ubuntu, в версиях LTS позиционирует себя как очень стабильный дистрибутив, но про стабильность Ubuntu можно очень много спорить. Возможно, она работает отлично с настройками по умолчанию, но если попытаться использовать какие-нибудь нестандартные функции или их комбинации, сразу всплывают куча багов и недоработок, которые никто не спешит исправлять.

С другой стороны, CentOS, которая основана на Red Hat тщательно тестируется перед тем, как выйти в свет, хотя и дистрибутив содержит более старое программное обеспечение, но оно точно хорошо отлажено, а ошибки исправлены, хотя из этого правила тоже бывают исключения.

Если вы хотите новые версии программ - ваш выбор Ubuntu, но если нужна стабильность, лучше посмотреть в сторону другого дистрибутива, когда будете решить Ubuntu или CentOS.

6. Сообщество и документация

Ubuntu - самый популярный дистрибутив среди новичков, и поэтому для него существует очень много форумов, сообществ пользователей, а также различных статей в сети. В том числе очень много материалов на русском. Также есть большое количество пользователей, которые, скорее всего, уже сталкивались с вашей проблемой и могут вам помочь в ее решении.

Про CentOS намного меньше информации в сети и намного меньше форумов. Ее сфера распространения - сервера, и крупные компании. Документация есть, но большинство из нее на английском.

Если выполнять сравнение ubuntu и centos. В этом пункте тоже, без сомнения, лучше Ubuntu, но только для новых пользователей, если вы и так уже достаточно разбираетесь в системе, то сможете справиться с CentOS.

Выводы

В этой статье мы сравнили два достаточно популярных в своих сферах дистрибутива чтобы вы смогли определить что лучше Ubuntu или CentOS именно для вас. Они - отличные системы и хорошо подходят для решения задач, на которые они были рассчитаны. А какой дистрибутив вы используете? Ubuntu vs CentOS? Какой бы выбрали? Напишите в комментариях!

Трудно выбирать систему ни разу не взглянув на нее, прикрепляю к статье два видео с быстрым обзором обоих операционных систем:

Сегодня мы анонсируем доступность релиза операционной системы CentOS 7 в облаке InfoboxCloud , основанного на пакетной базе Red Hat Enterprise Linux 7 и полностью совместимого с ним. В конце поста ссылка на бесплатное тестирование в облаке.

CentOS 7 - первый релиз ОС, после перехода команды CentOS в RedHat. Данная ОС стабильна и готова к корпоративному использованию.

Мы начинаем обзор новой ОС, состоящий из серии теоретических и практических статей. В первой главе обзора будет рассказано о поддержке контейнеров Linux в CentOS 7.

В облаке по умолчанию устанавливается минимальная версия CentOS 7 для обеспечения максимальной безопасности через снижение поверхности атаки. Все необходимые компоненты ОС устанавливаются из стандартных репозиториев.

Ключевые изменения CentOS 7
  • Поддержка контейнеров Linux (включая поддержку Docker ). Контейнеры расширяют возможности по разработке, доставке и изоляции софта для тестовых и производственных задач. Так же контейнеризация увеличивает безопасность ПО, снижая поверхность атаки;
  • Интеграция Active Directory / Identity Management (IdM)
  • Использование systemd , стандарта управления процессами, сервисами, безопасностью и другими ресурсами;
  • Встроенные профили и инструменты для оптимизации производительности и простого масштабирования;
  • Унифицированные инструменты управления и фреймворк управления OpenLMI , являющийся фактически стандартом индустрии для администрирования и настройки системы;
  • Техническая предварительная версия технологии установки обновлений ядра без перезагрузки kpatch ;
Поддержка контейнеров Linux
Docker безусловно выстрелил, породив изрядный шум в блогосфере и социальных сетях. В самых различных областях начали активно использоваться контейнеры для изоляции приложений друг от друга и от внешней среды, как средство доставки и развертывания программного обеспечения.

В контейнерная виртуализация используется уже несколько лет как один из вариантов виртуализации: более быстрый и экономичный, чем гипервизорная технология. Стандартный функционал InfoboxCloud позволяет быстро из панели управления создавать быстрые и эффективные контейнеры с необходимой ОС. Использование контейнеров внутри виртуальной машины InfoboxCloud (флаг "Разрешить управление ядром ОС " при создании сервера в облаке) приносит новые возможности:

  • Сохраняя возможность управления ядром ОС появляется возможность изоляции приложений друг от друга. В случае сбоя одного приложения система останется стабильной.
  • Разработчики хотят предоставлять программное обеспечение, которое легко развертывать, обновлять и масштабировать . Использование контейнеров позволяет иметь больший контроль над средой исполнения программного обеспечения. Появляется возможность создания портативного образа ПО и окружения, который легко переносить между средами исполнения.
Основные возможности контейнеров Linux:
  • Управление ресурсами;
  • Процесс изоляции;
  • Безопасность;
  • Инструменты управления из командной строки.
В контексте контейнеров Linux управление ресурсами организовано через cgroups . Cgroups позволяют пользователю выделять ресурсы, такие как процессорное время, системная память, пропускная способность сети, блок ввода-вывода или любую комбинацию из этих ресурсов для установки ограниченной пользователем группы задач или процессов, запущенных в данной системе. Пользователи могут заниматься мониторингом любых настроенных cgroups, запрещать cgroups доступ к определенным ресурсам, или даже динамически переконфигурировать cgroups на запущенной системе. Используя cgroups, системные администраторы имеют точный контроль за выделением, приоритизацией, уменьшением, управлением и мониторингом системных ресурсов. Аппаратные ресурсы (ресурсы гипервизора) могут быть легко поделены между задачами и пользователями, часто повышая общую эффективность системы. Cgroups – не новая концепция. Она появилась еще в Cent OS 6. В CentOS 7 стали лучше возможности управления контрольными группами через Systemd - менеджер ОС и сервисов.

Изоляция процессов, сердце архитектуры контейнеров Linux, представлена пространствами имен ядра (kernel namespaces ) CentOS. Сейчас Linux реализовывает шесть различных типов пространств имен. Цель каждого - обернуть каждый глобальный ресурс системы в абстракции . Каждый ресурс предоставляется в качестве изолированного инстанса для процесса внутри пространства имен, что обеспечивает изоляцию - иллюзию того, что группа процессов одинока в системе. Пространства имен необходимы, потому что ядро Linux ничего не знает о контейнерах. Задача пространства имен - научить ядро понятию изолированного окружения.

CentOS 7 реализует следующие пространства имен:

  • PID пространство имен предоставляет изоляцию идентификаторов процессов, позволяя процессам в различных пространствах имен PID иметь одинаковые PID. Одно из главных преимуществ пространств имен PID – возможность контейнеров мигрировать между хостами с сохранением тех же идентификаторов процессов внутри контейнера. PID пространство имен позволяет каждому контейнеру иметь собственный процесс инициализации, который управляет различными задачами инициализации системы, и управлять жизненным циклом контейнера.
  • Сетевые пространства имен предоставляют изоляцию сетевых контроллеров, системных ресурсов, ассоциированных с сетями, файрволлов и таблиц маршрутизации. Сетевые пространства имен позволяют каждому контейнеру иметь собственный виртуальный сетевой стек, который ассоциирован с группами процессов. Каждое пространство имен имеет свое собственное loopback устройство и пространство процесса. Виртуальные или реальные устройства могут быть добавлены к каждому сетевому пространству имен, и IP адреса могут быть назначены на эти устройства и использованы как сетевая нода.
  • Пространства имен UTS изолируют два системных идентификатора: nodename и domainname , возвращаемые системным вызовом uname(). Пространства имен UTS позволяют каждому контейнеру иметь собственный hostname и NIS domain name. Это полезно для инициализации и конфигурационных скриптов, которые совершают свои действия на основе этих имен.
  • Пространства имен монтирования изолируют набор точек монтирования файловых систем подобно группе процессов и помогают созданию различных файловых систем только для чтения. Процессы в различных пространствах имен монтирования могут иметь различные видения иерархии файловой системы. В дополнение к пространствам имен монтирования, системные вызовы mount() и umount() перестают действовать в глобальном пространстве точек монтирования (видимом для всех процессов ОС). Вместо этого они действуют только в пределах пространства имен монтирования, ассоциированным с процессом контейнера.
  • IPC пространства имен изолируют определенные ресурсы межпроцессного взаимодействия (IPC), такие, как объекты System V IPC и очереди сообщений Posix. Каждое пространство имен IPC имеет свой собственный набор идентификаторов System V и свою собственную очередь сообщений POSIX файловой системы.
  • Пользовательские пространства имен изолируют идентификаторы пользователя и группы так, что пользовательские процессы и идентификаторы групп могут быть различными внутри и снаружи пользовательского пространства имен. Наиболее интересный случай - когда процесс обычный не привилегированный ID снаружи пользовательского пространства имен и в то же самое время иметь идентификатор пользователя 0 внутри пространства имен. Это означает, что процесс имеет полные root привилегии для операций внутри пользовательского пространства имен, но является непривилигерованным для операций снаружи пространства имен.
Для обеспечения безопасности так же используется SELinux, который, как и в случае с cgroups, не является новой концепцией и существует начиная с CentOS 4. SELinux применяет метки безопасности и политики для контейнеров Linux и их ресурсов, предоставляя дополнительный уровень безопасности поверх безопасности, предоставляемой пространствами имен ядра.

Команда RedHat (вы ведь знаете, кто все это разработал на самом деле) начала работать над Docker начиная с версии 0.7. Вкладом Red Hat был новый драйвер хранения, который позволил Docker запуститься на Cent OS 7. В течении дальнейшего сотрудничества и вклада Red Hat в Docker был разработан новый встроенный драйвер исполнения, основанный на libcontainer, разработанный для доступа к API ядра контейнера напрямую, без сторонних зависимостей. Этот нативный набор инструментов может управлять возможностями ядра системы, такими как cgroups, пространства имен, сетевые интерфейсы, файрвол и другие особенности ядра. Благодаря Red Hat в Cent OS 7 Docker сейчас готов для корпоративного применения.

Таким образом, контейнеры Linux - важная open source технология для упаковки и доставки приложений, сочетая легковесную изоляцию и гибкость методов развертывания, основанных на образах.

Использованные в подготовке статьи источники.

Речь пойдет о не особо новом, но, несомненно, заслуживающем внимания, дистрибутиве CentOS. Разработана данная операционная система на базе Red Hat Enterprise Linux, отличается повышенной стабильностью, может работать, как на компьютерах с 64-битной архитектурой, так и 32-битной. Коренным отличием от Linux является бесплатность в распространении. О преимуществах и недостатках данной платформы подробнее, чуть ниже.

Начать стоит с того, что все программные продукты, которые рассчитаны на работу в среде Linux будут функционировать и в CentOS. Мало того в дистрибутиве имеется ряд вшитых решений, которые смогут значительно упростить жизнь программисту или же сетевому администратору с работой на выделенном сервере.

Операционная система разработана энтузиастами, тем не менее, она имеет постоянные обновления. На данный момент последняя шестая версия включает полный пакет всех нужных нововведений в сфере защиты. Новые версии выпускаются раз в два года, пакет обновлений каждые полгода.

Очень актуальным сейчас считается вопрос: «Можно ли считать, что CentOS - Linux для новичков?» Ответ отрицательный. CentOS - это полноценная операционная система, которая не является упрощённой низкопробной копией. Это самостоятельный проект, который, тем не менее, имеет общий базовый программный код с творением Red Hat Enterprise. Сразу нужно дать одно важное пояснение. Это не пиратская версия, а вполне легальная система. Если говорить более предметно, вся соль заключается в том, что Red Hat по собственному желанию выкладывают в открытый доступ исходные коды. Естественно, что такая благотворительность не осталась, не замеченной. Программисты со всего мира решили создать собственный проект, и сейчас узнаем, насколько он успешный.

Первым делом рассмотрим процесс установки. Всё довольно-таки просто и не требует от рядовых пользователей чрезмерных усилий. Скачиваем файл на сайте разработчиков, записываем на диск, устанавливаем, собственно всё. Для того чтобы проделать все эти действия даже программистом быть не нужно, достаточно знаний рядового пользователя.

Также радует то, что на официальном сайте разработчиков есть множество полезных советов и инструкций, которые пригодятся, желающим воспользоваться их программой. А вот если вы любите послушать музыку, во время работы, то здесь придётся проявить немного изобретательности. Система в принципе не рассчитана на формат mp3, а вот ogg читает на ура. Связано это с патентными правами, но есть замечательный выход из сложившейся ситуации, достаточно перекодировать файлы, и можно наслаждаться любимой музыкой.

Считается, что время поддержки каждого релиза десять лет, но это не совсем так. К примеру, если брать CentOS 4, то выпуск обновлений продолжался до 29 февраля 2012 года, а потом вышла CentOS 5. Сейчас уже широко используется CentOS 6. Фактически, данный дистрибутив, по заявлениям разработчиков будет поддерживаться до 31 марта 2017 года, время покажет.

Ещё одно важное уточнение, которое придётся по вкусу многим. CentOS предполагает установку графического интерфейса. Для этого имеются специальные метапакеты. Дополнительно у всех желающих будет возможность установить «Приложения для Офиса» и «Графические средства Интернет».

Популярность операционных систем Gentoo vs Debian vs CentOS


Итоги

Операционная система CentOS под - проект интересный и жизнеспособный, но не без огрехов. К самым неприятным стоит отнести необходимость двух двд-дисков для записи шестой версии, но для клиентов дата-центра UNIT-IS это не проблема. Наши системные администраторы сами установят любую версию операционной системы и помогут в настройке вашего выделенного сервера.

В данной статье ознакомимся еще с одним популярным и актуальным дистрибутивом Linux – Centos (Community ENTerprise Operating System) . Коммерческая основа – Red Hat Enterprise Linux, ОС появилась в 2004 году. Каждая версия поддерживается сроком на 10 лет, релизы обновляется с периодичностью в 6 месяцев. Система считается свободным и популярным аналогом RHEL. Отличается характерной стабильностью и может отлично работать на компьютерах с 64-битной и 32-битной архитектурой.

Важная особенность Centos – на данной ОС работают все программные продукты, которые рассчитаны на Linux . Система поддерживается энтузиастами, но тем не менее новые версии выходят в свет каждые два года и постоянно обновляются. Процесс установки Centos прост и понятен даже для обычного пользователя, и это вовсе не обозначает низкопробность системы, наоборот Centos – полноценная ОС.

Характеристики системы : обновления данной ОС получают через программу yum; сообщество поддержки, которое быстро растет, имеет систему сборки, теста и исправления ошибок; осуществляется поддержка через форумы, имеется большой и понятный FAQ; есть возможность купить платное сопровождение.

Один из самых популярных и актуальных релизов – Centos 7 (всего на данный момент насчитывают 5 версий ОС). Какие основные изменения были внесены в данную версию по сравнению с предыдущими релизами:

  1. Обновление ядра до 3.10.0
  2. Обеспечение Linux Containers
  3. Open VMware Tools и графические 3D драйверы «из коробки»
  4. По умолчанию настроены OpenJDK-7 - JDK
  5. Обеспечение обновления с версии 6.5 до 7.0 (только с 6.5, много весомых изменений)
  6. Снапшоты LVM с ext4 и XFS
  7. Переход на systemd, firewalld и GRUB2
  8. XFS - файловая система по умолчанию
  9. iSCSI и FCoE в ядре
  10. Обеспечение PTPv2
  11. Поддержка сетевых карт 40G Ethernet
  12. Обеспечение установки в режиме UEFI Secure Boot на поддерживаемом оборудовании.

Основные особенности ОС Centos в целом. Ну в первую очередь, Centos привлекает пользователей своей бесплатностью в отличии RHEL, которая предоставляется на коммерческой основе. Со стороны технических аспектов выделяют оперативность репозиториев RHEL на высоком уровне, чем обеспечивается безопасность системы. Используются технологии GCC как SSP (защита стека), PIE. Набор ПО актуальный и типичный для современных ОС: предоставляются версии офисных, серверных и девелоперских пакетов, программ и утилит (KDE и Gnome с compiz и AIGLX, Firefox и Evolution, MySQL и PostgreSQL, Apache и PHP, и т.д.). Также предоставляется подробная техническая документация и имеется большой штат поддержки ОС, к которому можно обратится и получить ответы на все интересующие вопросы по данной системе.

Для работы с ОС Centos на наших ВПС-серверах предоставляем к вашему вниманию несколько инструкций на нашем блоге:

По поводу недостатков системы , пользователи часто отмечают то, что дистрибутив комплектуется не всегда свежими версиями программ, в том числе ядро Linux тоже не всегда новое. Поэтому данная система не подходит для тех, кто любит ежедневные обновления. Хотя любую систему можно обновить на свой “вкус”, и данный недостаток не будет считаться столь существенным.

ОС Centos рекомендована организациям и частным лицам, которым не нужны дорогостоящая лицензия и обслуживание, а стабильность работы сервера находится в приоритете. Компания Hyper Host™ бесплатно установит ОС Centos последней версии на любой из своих тарифов или .

О том, как правильно выбрать ОС для работы сервера, читайте .

25905 раз(а) 56 Сегодня просмотрено раз(а)

Сегодня мы анонсируем доступность релиза операционной системы CentOS 7 в облаке InfoboxCloud , основанного на пакетной базе Red Hat Enterprise Linux 7 и полностью совместимого с ним. В конце поста ссылка на бесплатное тестирование в облаке.

CentOS 7 - первый релиз ОС, после перехода команды CentOS в RedHat. Данная ОС стабильна и готова к корпоративному использованию.

Мы начинаем обзор новой ОС, состоящий из серии теоретических и практических статей. В первой главе обзора будет рассказано о поддержке контейнеров Linux в CentOS 7.

В облаке по умолчанию устанавливается минимальная версия CentOS 7 для обеспечения максимальной безопасности через снижение поверхности атаки. Все необходимые компоненты ОС устанавливаются из стандартных репозиториев.

Ключевые изменения CentOS 7
  • Поддержка контейнеров Linux (включая поддержку Docker ). Контейнеры расширяют возможности по разработке, доставке и изоляции софта для тестовых и производственных задач. Так же контейнеризация увеличивает безопасность ПО, снижая поверхность атаки;
  • Интеграция Active Directory / Identity Management (IdM)
  • Использование systemd , стандарта управления процессами, сервисами, безопасностью и другими ресурсами;
  • Встроенные профили и инструменты для оптимизации производительности и простого масштабирования;
  • Унифицированные инструменты управления и фреймворк управления OpenLMI , являющийся фактически стандартом индустрии для администрирования и настройки системы;
  • Техническая предварительная версия технологии установки обновлений ядра без перезагрузки kpatch ;
Поддержка контейнеров Linux
Docker безусловно выстрелил, породив изрядный шум в блогосфере и социальных сетях. В самых различных областях начали активно использоваться контейнеры для изоляции приложений друг от друга и от внешней среды, как средство доставки и развертывания программного обеспечения.

В контейнерная виртуализация используется уже несколько лет как один из вариантов виртуализации: более быстрый и экономичный, чем гипервизорная технология. Стандартный функционал InfoboxCloud позволяет быстро из панели управления создавать быстрые и эффективные контейнеры с необходимой ОС. Использование контейнеров внутри виртуальной машины InfoboxCloud (флаг "Разрешить управление ядром ОС " при создании сервера в облаке) приносит новые возможности:

  • Сохраняя возможность управления ядром ОС появляется возможность изоляции приложений друг от друга. В случае сбоя одного приложения система останется стабильной.
  • Разработчики хотят предоставлять программное обеспечение, которое легко развертывать, обновлять и масштабировать . Использование контейнеров позволяет иметь больший контроль над средой исполнения программного обеспечения. Появляется возможность создания портативного образа ПО и окружения, который легко переносить между средами исполнения.
Основные возможности контейнеров Linux:
  • Управление ресурсами;
  • Процесс изоляции;
  • Безопасность;
  • Инструменты управления из командной строки.
В контексте контейнеров Linux управление ресурсами организовано через cgroups . Cgroups позволяют пользователю выделять ресурсы, такие как процессорное время, системная память, пропускная способность сети, блок ввода-вывода или любую комбинацию из этих ресурсов для установки ограниченной пользователем группы задач или процессов, запущенных в данной системе. Пользователи могут заниматься мониторингом любых настроенных cgroups, запрещать cgroups доступ к определенным ресурсам, или даже динамически переконфигурировать cgroups на запущенной системе. Используя cgroups, системные администраторы имеют точный контроль за выделением, приоритизацией, уменьшением, управлением и мониторингом системных ресурсов. Аппаратные ресурсы (ресурсы гипервизора) могут быть легко поделены между задачами и пользователями, часто повышая общую эффективность системы. Cgroups – не новая концепция. Она появилась еще в Cent OS 6. В CentOS 7 стали лучше возможности управления контрольными группами через Systemd - менеджер ОС и сервисов.

Изоляция процессов, сердце архитектуры контейнеров Linux, представлена пространствами имен ядра (kernel namespaces ) CentOS. Сейчас Linux реализовывает шесть различных типов пространств имен. Цель каждого - обернуть каждый глобальный ресурс системы в абстракции . Каждый ресурс предоставляется в качестве изолированного инстанса для процесса внутри пространства имен, что обеспечивает изоляцию - иллюзию того, что группа процессов одинока в системе. Пространства имен необходимы, потому что ядро Linux ничего не знает о контейнерах. Задача пространства имен - научить ядро понятию изолированного окружения.

CentOS 7 реализует следующие пространства имен:

  • PID пространство имен предоставляет изоляцию идентификаторов процессов, позволяя процессам в различных пространствах имен PID иметь одинаковые PID. Одно из главных преимуществ пространств имен PID – возможность контейнеров мигрировать между хостами с сохранением тех же идентификаторов процессов внутри контейнера. PID пространство имен позволяет каждому контейнеру иметь собственный процесс инициализации, который управляет различными задачами инициализации системы, и управлять жизненным циклом контейнера.
  • Сетевые пространства имен предоставляют изоляцию сетевых контроллеров, системных ресурсов, ассоциированных с сетями, файрволлов и таблиц маршрутизации. Сетевые пространства имен позволяют каждому контейнеру иметь собственный виртуальный сетевой стек, который ассоциирован с группами процессов. Каждое пространство имен имеет свое собственное loopback устройство и пространство процесса. Виртуальные или реальные устройства могут быть добавлены к каждому сетевому пространству имен, и IP адреса могут быть назначены на эти устройства и использованы как сетевая нода.
  • Пространства имен UTS изолируют два системных идентификатора: nodename и domainname , возвращаемые системным вызовом uname(). Пространства имен UTS позволяют каждому контейнеру иметь собственный hostname и NIS domain name. Это полезно для инициализации и конфигурационных скриптов, которые совершают свои действия на основе этих имен.
  • Пространства имен монтирования изолируют набор точек монтирования файловых систем подобно группе процессов и помогают созданию различных файловых систем только для чтения. Процессы в различных пространствах имен монтирования могут иметь различные видения иерархии файловой системы. В дополнение к пространствам имен монтирования, системные вызовы mount() и umount() перестают действовать в глобальном пространстве точек монтирования (видимом для всех процессов ОС). Вместо этого они действуют только в пределах пространства имен монтирования, ассоциированным с процессом контейнера.
  • IPC пространства имен изолируют определенные ресурсы межпроцессного взаимодействия (IPC), такие, как объекты System V IPC и очереди сообщений Posix. Каждое пространство имен IPC имеет свой собственный набор идентификаторов System V и свою собственную очередь сообщений POSIX файловой системы.
  • Пользовательские пространства имен изолируют идентификаторы пользователя и группы так, что пользовательские процессы и идентификаторы групп могут быть различными внутри и снаружи пользовательского пространства имен. Наиболее интересный случай - когда процесс обычный не привилегированный ID снаружи пользовательского пространства имен и в то же самое время иметь идентификатор пользователя 0 внутри пространства имен. Это означает, что процесс имеет полные root привилегии для операций внутри пользовательского пространства имен, но является непривилигерованным для операций снаружи пространства имен.
Для обеспечения безопасности так же используется SELinux, который, как и в случае с cgroups, не является новой концепцией и существует начиная с CentOS 4. SELinux применяет метки безопасности и политики для контейнеров Linux и их ресурсов, предоставляя дополнительный уровень безопасности поверх безопасности, предоставляемой пространствами имен ядра.

Команда RedHat (вы ведь знаете, кто все это разработал на самом деле) начала работать над Docker начиная с версии 0.7. Вкладом Red Hat был новый драйвер хранения, который позволил Docker запуститься на Cent OS 7. В течении дальнейшего сотрудничества и вклада Red Hat в Docker был разработан новый встроенный драйвер исполнения, основанный на libcontainer, разработанный для доступа к API ядра контейнера напрямую, без сторонних зависимостей. Этот нативный набор инструментов может управлять возможностями ядра системы, такими как cgroups, пространства имен, сетевые интерфейсы, файрвол и другие особенности ядра. Благодаря Red Hat в Cent OS 7 Docker сейчас готов для корпоративного применения.

Таким образом, контейнеры Linux - важная open source технология для упаковки и доставки приложений, сочетая легковесную изоляцию и гибкость методов развертывания, основанных на образах.

Использованные в подготовке статьи источники.