The OpenNET Project / Index page

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

Выпуск распределенной системы хранения конфигурации etcd 3.0

04.07.2016 09:38

Проект CoreOS, развивающий основанное на идеях контейнерной изоляции серверное окружение, подготовил релиз etcd 3.0, высоконадёжного распределённого хранилища параметров конфигурации, задаваемых в форме ключ/значение. Основным назначением etcd является предоставление унифицированного механизма хранения конфигурации и информации о работающих сервисах для изолированных контейнеров с типовой начинкой. Код etcd написан на языке Go и распространяется под лицензией Apache 2.0.

Etcd позволяет организовать единое хранилище конфигурации для группы серверов, которое реплицируются на все узлы и поддерживается в синхронизированном состоянии с использованием протокола Raft. Наличие копии данных на всех хостах позволяет исключить потерю конфигурации при выходе из строя отдельного узла. В etcd также могут сохраняться временные данные, для которых предусмотрена возможность определения времени жизни записи. Для доступа к конфигурации предоставляется простой API, основанный на использовании gRPC.

Имеется встроенная возможность отслеживания изменения состояния ключа или директории с вызовом обработчика в случае обнаружения изменения (например, можно применить новое значение параметра конфигурации). Для защиты канала связи при обращении из внешней сети предоставляется поддержка TLS-шифрования, аутентификации клиентов по ключам и разграничения доступа через ACL. На типовом оборудовании etcd обеспечивает производительность порядка 10 тысяч операций записи в секунду. Для доступа к базе можно использовать утилиту etcdctl.

В etcd 3.0 представлена третья версия API etcd, в котором отражены пожелания пользователей и опыт крупных промышленных внедрений etcd. В частности, в новой версии API решены многие проблемы с масштабированием, благодаря новому движку хранения и полной поддержке механизма управления одновременным доступом с помощью многоверсионности (MVCC, Multi-Version Concurrency Control). Для обращения к APIv3 теперь может применяться gRPC и HTTP/2 (ранее предлагаемый JSON/HTTP транслируется через gRPC). Применение протокола gRPC, использующего protobuf, позволило в два раза увеличить скорость обработки запросов, по сравнению с применением JSON в etcd2, а HTTP/2 дал возможность мультиплексирования соединений и создания постоянных двунаправленных каналов без необходимости установки отдельного соединения на каждый запрос и без применения поллинга для проверки состояния.

Из новшеств APIv3 можно отметить:

  • Плоское пространство бинарных ключей, в котором вместо иерархии и каталогов применяется выборка по префиксу и интервалу.
  • Средства для работы c многоверсионным хранилищем, позволяющие обращаться к прошлым версиям ключей;
  • Несколько запросов теперь могут группироваться и выполняться рамках одной операции;
  • Поддержка определения времени жизни (TTL), единого для заданного набора ключей (теперь записи могут привязываться к TTL, без сохранения TTL как атрибута записи, что позволяет обновлять лишь одно поле с TTL без необходимости обновления каждой записи);
  • Возможность определения квот для ограничения используемого в etcd размера хранилища;
  • Экспериментальная поддержка v3 Auth API.

Из не связанных с API улучшений отмечается проведение работы по увеличению отзывчивости и пропускной способности, в частности, снижены накладные расходы при обработке API и оптимизирована реализация лога отложенной записи. Добавлен новый бэкенд хранения, обеспечивающий меньший расход памяти для хранения каждого ключа. Реализована автоматическая настройка шифрования TLS. Реализованы новые возможности утилиты etcdctl: поддержка создания территориально разнесённого зеркала, средства организации блокировок mutex поверх etcd, возможность сохранения снапшотов текущего состояния бэкенда etcd, средства отслеживания работоспособности, поддержка выбора главного экземпляра в кластере и экспериментальная команда "gateway".

  1. Главная ссылка к новости (https://coreos.com/blog/etcd3-...)
  2. OpenNews: Проект CoreOS представил распределённую систему хранения Torus
  3. OpenNews: Представлена распределённая операционная система DC/OS (Datacenter Operating System)
  4. OpenNews: Новый выпуск CentOS Atomic Host, специализированной ОС для запуска контейнеров Docker
  5. OpenNews: Выпуск распределенной системы хранения конфигурации etcd 2.0
  6. OpenNews: Первый стабильный выпуск серверной Linux-системы CoreOS
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44724-etcd
Ключевые слова: etcd, coreos, nosql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:16, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Ааааа, это же РЕЕСТР ! Анафема !!!
     
     
  • 2.2, Аноним (-), 10:23, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так разве же это плохо?
     
     
  • 3.3, Аноним (-), 10:41, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    все что есть на винде - по определению плохо, даже если их копируют.
    надо GNOME тоже предать анафеме за gconf..
     
     
  • 4.5, Аноним (-), 10:43, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    "надо GNOME тоже предать анафеме" в принципе, как заигравшихся хипстеров.
     
     
  • 5.6, jOKer (ok), 11:02, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так уже...
     
  • 4.14, Аноним (-), 14:01, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Жертва ЕГЭ?
     
     
  • 5.17, Аноним (-), 16:02, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    как красноречиво о себе :-)
    а по теме сказать слабо ?
     

  • 1.4, Аноним (-), 10:42, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Они изобрели нескучный редис?
     
  • 1.7, Нанобот (ok), 11:07, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    узкоспециализированый проект, интересен очень ограниченому кругу разработчиков.
    имхо, вообще нету смысла писать о таких проектах на опеннете, тем более что таких узкоспециализированых проектов можно найти тысячи, и писать об одних и не писать о других как-то несправедливо
     
     
  • 2.8, Анонин (?), 11:49, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ты не прав. в контексте микросервисов - мастхев.
     
     
  • 3.20, Нанобот (ok), 16:58, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >в контексте микросервисов

    Ну да, я ж там как раз и написал слово "узкоспециализированный"

     
  • 2.12, 1 (??), 12:28, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ты тоже можешь написать о своём любимом узкоспециализированном проекте.

    А мне интересно управление конфигурациями.

     

  • 1.9, Аноним (-), 12:08, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересный софт, но мы предпочли Consul.
     
     
  • 2.11, Аноним (-), 12:21, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не первый раз слышу о том, что предпочитают Consul вместо Etcd. Чем именно вызван подобный выбор?
     
     
  • 3.15, Аноним (-), 15:09, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как чем? Синдромом утёнка, конечно же.
     
  • 3.26, Maxim Filatov (?), 22:37, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Например механизмом добавления мемберов.
    В консуле ты просто делаешь consul agent --join <list-of-servers>.
    А в етцд это целы
     
     
  • 4.27, Maxim Filatov (?), 22:39, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ... целый квест, особенно если кластер поднимался с дискавери-урлом.
     

  • 1.10, xhumanoid (?), 12:17, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    A ведь еще совсем недавно обычный REST & JSON преподносились как ключевая фишка и возможность доступа хоть с curl, а zookeeper ругали за бинарный протокол. Но потиху пришли почти к такому же состоянию "persistent connection & binary protocol"
     
     
  • 2.19, Scarlet Begonias (?), 16:50, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Насколько я понимаю архитектуру etcd, там нет концепта агента, как у Consul, и оптимизация сетевого протокола с учётом, что все клиенты этого etcd ломятся на собственно ноды etcd кластера таки имеет смысл.
    Другое дело, что пряморукий девелопер напишет свою реализацию агента с поддержкой десятков тысяч клиентов что для zookeeper, что для etcd, при этом принципиально контролируя количество необходимых соединений между агентом и сервером.
     
     
  • 3.23, xhumanoid (?), 19:30, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    так я же не спорю, я делаю упор именно на бинарный протокол и постоянное соединение, так как раньше их отсутствие пытались показать как преимущество над зоокипером =) сейчас походу только go хвалиться и остается (jvm в zookeeper)
     

  • 1.16, op (??), 15:40, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, я правильно понимаю, что это "разжиревший" docker-compose, с возможностью работы на нескольких реальных узлах?
     
     
  • 2.18, Scarlet Begonias (?), 16:45, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, это zookeeper на стероидах
     
     
  • 3.22, Аноним (-), 17:12, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    zookeeper? на стероидах??

    г-споди б-же, что ж они такое туда запихнули? лишп поверх jvm?

     

  • 1.24, bob (??), 20:03, 04/07/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем нужны контейнеры?
     
     
  • 2.25, pavlikvk (?), 20:38, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    домашнюю жрачку на работу таскать.
     
  • 2.28, Scarlet Begonias (?), 23:10, 04/07/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сабж прекрасно работает и без контейнеров, хоть в хардварном "облаке" распределёнки деплоить через него управляющиеся.
     
  • 2.29, Пингвино (ok), 15:48, 05/07/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Мде, однако же смачно ты перданул в лужу
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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