LINUX.ORG.RU

Новый подход к организации серверных Linux-систем

 , , ,


0

1

Группа энтузиастов, живущих в «Силиконовой долине», развивает проект новой серверной Linux-системы CoreOS, основанной на архитектуре, существенно отличающейся от обычных дистрибутивов Linux. По своей сути CoreOS основана на идеях ChromeOS, адаптированных для массового развёртывания серверных систем. Для тестирования уже доступны первые альфа-сборки CoreOS, пригодные для запуска под управлением VirtualBox и QEMU/KVM. Наработки проекта распространяются под лицензией Apache 2.0.

Ключевые особенности CoreOS:

  • Минималистичность. Система содержит минимальный набор компонентов, достаточных для выполнения только изолированных контейнеров (cgroups+namespaces), которые в свою очередь содержат произвольную начинку для запуска только необходимых серверных приложений. По сути, в состав базовой системы входит только ядро Linux, системный менеджер systemd и ряд служебных сервисов для управления конфигурацией и установки обновлений.
  • Корневой системный раздел монтируется в режиме только для чтения и не изменяется в процессе работы. Для установки обновлений используется подход ChromeOS, при котором одновременно создаётся два дисковых раздела. Один из разделов является активным, а второй используется для копирования обновления, после установки которого активным становится второй раздел, а первый остаётся для установки следующего обновления и предоставляет возможность быстрого отката изменений. Таким образом, при каждом обновлении разделы меняются местами. Обновления могут устанавливаться автоматически, по аналогии с ChromeOS. По задумке разработчиков, обновление серверов на базе CoreOS должно производиться также просто, как в настоящее время осуществляется обновление браузеров.
  • В состав не входит пакетный менеджер, вместо которого предлагается использовать преднастроенные изолированные контейнеры, содержащие все необходимые компоненты для выполнения того или иного серверного приложения. В качестве системы управления контейнерами поддерживается Docker, предоставляющий средства для автоматизации создания изолированных окружений для запуска произвольных процессов и возможности по переносу и клонированию окружений на другие серверы. При этом Docker не является обязательным, присутствует возможность создания контейнеров вручную или использования уже готовых образов, пригодных для использования с инструментарием LXC. Упаковка приложений в произвольные обособленные контейнеры позволяет не задумываться об особенностях базовой ОС и свободно переносить контейнеры от одной ОС к другой и с сервера на сервер.
  • Средства автоматического определения доступных сервисов, использования единой конфигурации для группы серверов и объединения набора серверов во взаимосвязанные кластерные системы. Для обмена и управления конфигурацией используется система etcd, развиваемая специально для CoreOS. Код etcd написан на языке Go и поставляется под лицензией Apache. Etcd представляет собой высоконадёжное хранилище параметров конфигурации в форме ключ/значение. Для доступа к конфигурации предоставляется простой интерфейс, основанный на использовании HTTP и JSON (запросы могу отправляться при помощи утилиты curl или специальной утилиты etcdctl). Аутентификация выполняется на основе SSL-ключей. Хранилище конфигурации и логи реплицируются на все узлы и поддерживается в синхронизированном состоянии с использованием протокола Raft.

Для установки обновлений используется подход ChromeOS, при котором одновременно создаётся два дисковых раздела. Один из разделов является активным, а второй используется для копирования обновления, после установки которого активным становится второй раздел, а первый остаётся для установки следующего обновления и предоставляет возможность быстрого отката изменений. Таким образом, при каждом обновлении разделы меняются местами.

ИМХО, спорный подход. Место, занимаемое системой, увеличивается вдвое.

В состав не входит пакетный менеджер, вместо которого предлагается использовать преднастроенные изолированные контейнеры, содержащие все необходимые компоненты для выполнения того или иного серверного приложения.

Оффлайн репозитории изобрели что ли?

Etcd представляет собой высоконадёжное хранилище параметров конфигурации в форме ключ/значение. Для доступа к конфигурации предоставляется простой интерфейс, основанный на использовании HTTP и JSON (запросы могу отправляться при помощи утилиты curl или специальной утилиты etcdctl). Аутентификация выполняется на основе SSL-ключей.

XML с прикрученным шифрованием?

sT331h0rs3 ★★★★★ ()
Ответ на: комментарий от sT331h0rs3

Оффлайн репозитории изобрели что ли?

Если я правильно понял, ПО будет распространяться со всеми зависимостями.

theNamelessOne ★★★★★ ()
Ответ на: комментарий от theNamelessOne

Если я правильно понял, ПО будет распространяться со всеми зависимостями.

То есть тупо архивы со статически слинкованным ПО? :)

sT331h0rs3 ★★★★★ ()
Ответ на: комментарий от sT331h0rs3

То есть тупо архивы со статически слинкованным ПО? :)

Может и не статически, а как в Windows — dll-ки в папке с приложением.

Хотя, повторюсь, это всего-лишь мои домыслы.

theNamelessOne ★★★★★ ()
Последнее исправление: theNamelessOne (всего исправлений: 1)

одновременно создаётся два дисковых раздела

Эх, если бы в линуксе (в ядре) была нормальная ФС со снапшотами...

true_admin ★★★★★ ()
Ответ на: комментарий от sT331h0rs3

ИМХО, спорный подход. Место, занимаемое системой, увеличивается вдвое.

Это место совсем некритично для любой, даже относительно старой системы. Речь идет о системном разделе, пользовательских данных там нет.

lexius ★★ ()

Это круто. Хочу такое в Арче.

stevejobs ★★★☆☆ ()
Ответ на: комментарий от stevejobs

Как обычно, надо держать одно новое ядро и хотя бы одно старое.

true_admin ★★★★★ ()

Ондроед Сервер Эдишн. Теперь со вкусом галоперидола.

Deleted ()
Ответ на: комментарий от stevejobs

А если софт с новым ведром не работает?

загрузить старое ядро, производителю выслать багрепорт

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

так другой-то софт уже обновился, и со старым ядром не работает

stevejobs ★★★☆☆ ()

Опеннет вроде просит ссылаться на него? Или я что-то пропустил?

mbwa ()

В интересную сторону двигаются.

tazhate ★★★★★ ()
Ответ на: комментарий от true_admin

Эх, если бы в линуксе (в ядре) была нормальная ФС со снапшотами...

Ты не поверишь!

tazhate ★★★★★ ()
Ответ на: комментарий от sT331h0rs3

Место, занимаемое системой, увеличивается вдвое.

Да, ужасная беда в век терабайтных винчестеров.

it-nativa ()

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

Угу, заметно. Там достаточно только busybox.

devl547 ★★★★★ ()
Ответ на: комментарий от stevejobs

так другой-то софт уже обновился, и со старым ядром не работает

Ничего не понимаю. Я предлагаю держать снапшоты вместо двух разделов. Их точно так же можно монтировать как и то что тут описано. Если что-то не работает в моей схеме то оно не заработает и в описаной схеме, разве нет?

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

сейчас на своем домашнем/экспериментальном компе делаю так:

гипервизор: винда+virtualbox

виртуалка состоит из отдельных hdd для
- boot
- swap
- root (/)
- home
- configs
- packages
- temp
- bigdata

способ обновления:

temp - реальный диск, ssd - снапшоты не делаются, бэкапы не делаются. (Используется для конпеляции и пересборки livecd, например.)

bigdata - реальный диск, hdd - снапшоты не делаются, бэкапы не делаются (используется для всяких фильмов и музыки)

boot - снапшот перед обновлением системы, запланированный бэкап

root - снапшот перед обновлением

packages (кэши пакетов пакетного менеджера) - дублируются два раза для каждой архитектуры (686, 86_64) и расшариваются между всеми виртуалками. При обновлении снапшот не делается.

configs - полуавтоматический бэкап важной части конфигов (/etc, /home). При обновлении снапшот не делается, ручное версионирование (директории типа «version1»,«version2» названные по абстрактным «эпохам» развития системы). Скрипты для сборки базовой системы/livecd — бэкап на гитхаб.

home - полуавтоматический бэкап в configs. Снапшоты при обновлении не делаются, важные конфиги(патчи к конфигам) копируются в configs.

/etc - полуавтоматический бэкап конфигов(патчей к конфигам) в configs, плюс снапшот перед обновлением (т.к. является частью root)

проблема:

рассинхронизация конфигов (много разделов, рассинхронизация может наступить между любыми).

В случае совсем капца, можно аккуратно установить систему с нуля на основе configs.

stevejobs ★★★☆☆ ()

Apache 2.0

это очень хорошо. по сабжу, поделка на базе linux kernel?

x0r ★★★★★ ()
Ответ на: комментарий от true_admin

Если про zfs то она не в мейнлайне.

Ути-пути, установить пару пакетиков проблемой стало?

tazhate ★★★★★ ()

По своей сути CoreOS основана на идеях ChromeOS, адаптированных для массового развёртывания серверных систем

Гуглу мало персональных данных хомячков, теперь он тупо хочет всё?

router ★★★★★ ()
Ответ на: комментарий от tazhate

Ути-пути, установить пару пакетиков проблемой стало?

Поднимал 2 тестовых сервака видеонаблюдения с zfs, дебиан штабильный.
За два дня активного юза и ребута - второй оказался девственно чист, сам по себе.
Интерпрайz и продакшн, да.

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от router

Гуглу мало персональных данных хомячков, теперь он тупо хочет всё?

А что им мешает хотеть всё?

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от Spirit_of_Stallman

За два дня активного юза и ребута - второй оказался девственно чист, сам по себе.

Версии какие? Багрепорт пиши срочно. На дистрибутив пофигу, меня интересуют версии спл и зфс.

tazhate ★★★★★ ()
Ответ на: комментарий от Spirit_of_Stallman

А что им мешает хотеть всё?

То, что они и так все.

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

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

Spirit_of_Stallman ★★★ ()

Не взлетит. Очень спорные особенности.

kompas ()
Ответ на: комментарий от Deleted

вот точно такое же ощущение возникло, когда читал описание

der_looser ★★ ()

Офигенно. Два года такое ждал. Под hyper-v есть?

x3al ★★★★★ ()
Ответ на: комментарий от sT331h0rs3

sT331h0rs3> ИМХО, спорный подход. Место, занимаемое системой, увеличивается вдвое.

Она там занимает всего ничего.

Quasar ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.