The OpenNET Project / Index page

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

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

22.01.2017 11:38

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

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

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

Основные новшества:

  • Проведена оптимизация линеаризованной модели чтения ключей, в отличие от сериализированной модели обеспечивающей выдачу актуальных ключей, но ценой потери производительности из-за накладных расходов, связанных с необходимостью определения консенсуса (сериализированная модель читает ключи значительно быстрее, но может выдавать не самое свежее состояние). Оценка состояния ключей в линеаризованной модели производится с использованием протокола Raft. В новой версии для увеличения производительности, снижения нагрузки на дисковую подсистему и сокращения задержек применена индексация запросов через Raft и обеспечена возможность объединения групп запросов;
  • Исключены ситуации кратковременной потери доступности кластера при выполнении операции обновления программного обеспечения. Ранее, в момент обновления лидирующего узла могла возникнуть ситуация временной потери работоспособности, если другие узлы инициировали выбор нового лидирующего узла из-за истечения таймаута. Отныне лидирующий узел автоматически передаёт лидерство другому узлу перед переходом в offline.
  • Для исключения возникновения ситуации потери кворума из-за ошибки оператора, при которой кластер становится неработоспособен, перед перенастройкой состава кластера теперь осуществляется проверка работоспособности его участников, а изменение состава вступает в силу только, когда оно безопасно для сохранения работоспособности. Например, запрос на удаление узла будет отвергнут, если без этого узла не может быть сформирован кворум из-за недостаточного числа активных участников. Или будет отвергнут запрос на добавление участника, если кворум будет потерян из-за невозможности включить узел в состав кластера (например, указан неверный адрес);
  • В etcd v3 API добавлена порция новых средств для учёта времени жизни операций извлечения, определения закреплённых за сеансом ресурсов, эффективной обработки ключей по их ревизиям (при выборке диапазона ключей можно ограничить минимальное и максимальное время модификации или создания ключа) и сокращения круговых задержек через отключение операций подтверждения (допущение возврата старых значений для удалённых событий).
  • В разряд стабильный переведён API аутентификации, все дальнейшие изменения в v3 Auth API будут сохранять совместимость с текущими клиентами etcd v3. Основными отличиями от модели аутинтификации API v2 являются использование токенов для аутентификации (без необходимости выполнения операций bcrypt для каждого запроса) и возможность определения прав доступа для интервалов ключей, вместо привязки к префиксам ключей;
  • Предоставлена возможность обращения к API по протоколу gRPC, использующему protobuf, через прокси. Прокси gRPC может применяться для сокращения нагрузки на ядро кластера etcd через применение кэширования недавно извлекаемых ключей и слияния отслеживаемых запросов. Например, прокси gRPC позволяет защитить кластер от наводнения запросами одного и того же ключа со стороны неправильно настроенного клента или объединить типовые потоки отслеживания для нескольких клиентов, что позволяет сократить число сетевых соединений к кластеру и уменьшить трафик.


  1. Главная ссылка к новости (https://coreos.com/blog/etcd-3...)
  2. OpenNews: Выпуск распределенной системы хранения конфигурации etcd 3.0
  3. OpenNews: Выпуск распределенной системы хранения конфигурации etcd 2.1
  4. OpenNews: Выпуск распределенной системы хранения конфигурации etcd 2.0
  5. OpenNews: Представлена распределённая операционная система DC/OS (Datacenter Operating System)
  6. OpenNews: Первый стабильный выпуск серверной Linux-системы CoreOS
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45897-etcd
Ключевые слова: etcd, container
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (56) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 13:12, 22/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    etcd
    etcdctl
    ...
     
     
  • 2.2, бедный буратино (ok), 13:30, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    шёл логопед по шоссе и сосал etcdctl
     
  • 2.32, Аноним (-), 07:54, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    dhcpcd
     
  • 2.37, Аноним (-), 13:09, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    итдд -- "И так далее"-демон
     

  • 1.3, vantoo (ok), 14:27, 22/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Привет windows-реестр!
     
     
  • 2.5, Аноним (-), 14:35, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    как будто что-то плохое
     
     
  • 3.6, Аноним (-), 15:43, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Плохое. Хранилище настроек, требующее специальных костылялок для редактирования не есть хорошо. Храните, трам-пам-пам, данные в простых текстовых файлах.
     
     
  • 4.7, Аноним (-), 16:03, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Так получилось, что получить ключ-значение из реестра быстрее, чем прочитать-распарсить из файла. И хотелось бы, чтобы в линуксах таки было нечто кроссдистрибутивное для этого вместо gconf или как там их реестр называется.
     
     
  • 5.18, Да я забыл заполнить поле Name (?), 22:05, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Так получилось, что получить ключ-значение из реестра быстрее, чем прочитать-распарсить из файла.

    Это какой-то системд головного мозга (там тоже быстрее грузиться хотели)!
    Зачем нужно получать это значение быстрее?

    У приложений что, основное занятие - это чтение/сохранение настроек?

     
  • 5.39, Аноним (-), 13:58, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Так получилось, что получить ключ-значение из реестра быстрее, чем прочитать-распарсить из файла.

    Что курил? Когда начнётся фрагментирование этого твоего реестра, чтение будет ещё дольше.

     
  • 5.45, алекс (??), 17:53, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В текстовых хотя бы есть комментарии от разработчиков, а для реестра ещё сразу чистилку изобретут, потом ходи чертыхайся.
     
  • 5.46, алекс (??), 17:55, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё и бекап реестра делать, да. Не-е, не надо нам такого барахла.
     
  • 5.50, rshadow (ok), 20:27, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Парсинг файла конфигурации происходит как правило на момент старта один раз. Возможно он обновляется в процессе работы.
    Но если вы обновляете конфигурацию 1000 раз в секунду, или у вас конфигурационный файл весит 100Мб, то тут уже что-то в консерватории надо править.
     
     
  • 6.58, шшш (?), 07:40, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Если у тебя 20 типов сервисов и каждый имеет по 100 копий, то ты не будешь делать редеплой всего этого для изменения одного параметра.
     
  • 4.8, Анын (ok), 16:04, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В "распределённых" тестовых файлах? :)
     
  • 4.9, Аноним (-), 16:09, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Возможно админам локалхоста плохое. В перспективе, когда ценность каждого инстанса ОС стремится к нулю, хранение настроек приложений и системных в том числе где-то (не локально) в сети, становится очень привлекательным. Это примерно как хранить данные в БД которая хз где находится и непонятно как работает, но она есть и она работает. Также и с настройками.
     
     
  • 5.20, exSun (ok), 22:55, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В перспективе, когда ценность каждого инстанса ОС стремится к нулю

    Невесёлая перспектива. Очень много энергии тратится.

     
  • 4.10, Huy (?), 17:27, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Как буд-то текстовый фал редачится астралом, а не текстовым редактором, и вообще, можете курлом дергать рыкчу rest api. Ну и система пилилась как раз под микросервисную архитектуру, когда у вас "зеро" конфигурация, при старте микросервиса передал где исктаь etcd (вообще есть и зукипер, консул, тыщи их), а то само вытащило нужные ему данные для работы, узнало еще о членах кластера, которые выполняют анаогичную роль... Короче, там писали про админа локалхоста)
     
     
  • 5.35, Аноним (-), 10:51, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Как буд-то
    >фал
    >рыкчу
    >исктаь
    >анаогичную

    Спеллчекер может помочь!

     
     
  • 6.40, Аноним (-), 13:59, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спеллчекер тут уже не поможет.
     
  • 4.11, Аноним (-), 18:32, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если не знаешь, что такое сабж и зачем он нужен, то лучше промолчать.
     
  • 2.13, Аноним (-), 19:41, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Windiws-реестр весьма неплохая идея. Плохо то, что там практически невозможно перенести конфигурацию с одной машины на другую путем копирования реестра. Если тут это будет работать, будет замечательно. Считай, те же конфигурационные файлы, только в унифицированном формате.
     
     
  • 3.22, Аноним (-), 02:36, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Весь софт под линукс придётся перелопатить, чтобы он хранил конфиги в этом реестре. Это не на один год. А в конечном счёте, зачем?
     
     
  • 4.30, . (?), 06:08, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Чтобы было так же плохо как в винде. 100500%
     
  • 4.34, Аноним (-), 10:13, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну чтобы в реестре случилась одна ошибка и вся система из-за этого стала раком, как любят вантузятники.
     
     
  • 5.41, Аноним (-), 14:00, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну чтобы в реестре случилась одна ошибка и вся система из-за этого
    > стала раком, как любят вантузятники.

    Ну линукс же сложный, а венду переустановил и всё!

     
     
  • 6.44, _ (??), 17:18, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну не всё ешё потерянно! сысиемды уже прибит гвоздями, скоро и под линуксы пойдут очистители и оптимизаторы реестра ...
     
  • 6.47, алекс (??), 17:57, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    жрали мы это, хватит
     
  • 4.43, Аноним (-), 15:07, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Весь софт под линукс придётся перелопатить, чтобы он хранил конфиги в этом реестре

    Да фих там. Скорее сделают etcfs, которая будет представлять конфиг из реестра в виде файлов с настройками.

     

  • 1.12, Аноним (-), 18:44, 22/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    странно, что никто не заныл про go, видимо win реестр больше ненавидят =)
     
     
  • 2.14, Аноним (-), 19:57, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Меня всегда удивляет, когда местные эксперты высказывают недовольство языком программирования, на котором написан софт. Я понимаю, когда программисты высказывают мнение по поводу того или иного языка программирования, они с ними работают. Но пользователю-то софта какая разница, на чем софт написан? Все эти рассуждения о том, что джава плохая, а божественная сишечка рулит - пустая болтовня делитантов, не работавших ни с тем, ни с другим. Особенно ситуация выглядит смешно, если учесть, что местным админам локалхоста тот же етцд никогда админить не придется.
     
     
  • 3.15, Аноним (-), 20:14, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > о том, что джава плохая,

    Правильно, индусы и интели с кингстонами прямо обожают жабу.

    > а божественная сишечка рулит - пустая болтовня делитантов,

    А что они делят?

     
  • 3.19, Сергей (??), 22:08, 22/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Но пользователю-то софта какая разница

    Как это? Большая. Во-первых, требования. Память больше не дешевая, и на каждый хелловорлд тратить по гигабайту уже никто не будет. Алсо, есть армы и мипсы с сотнями мегабайт памяти, где эти помойки вообще не взлетят, ибо будут висеть в GC паузах 90% времени. Потом, развитость инструментов. Go со своим недокомпилятором MIPS уже научился? IDE там не забывайте. В-третьих, инфраструктура. Чуждый cargo который вместо установки пакетов в систему как в нормальных языках, тащит при сборке рандомные версии зависимостей по сети, ломая повторяемые сборки, кэширование и всё остальное. В общем, новаязы эти это один хайп, связываться с ними никто серьёзно не будет.

    > сишечка рулит - пустая болтовня делитантов, не работавших ни с тем, ни с другим

    Такие как раз считают что язык не важен.

     
     
  • 4.23, angra (ok), 02:48, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Скажи честно: "я Go видел только на картинке, но мнение уже имею"
    Ты путаешь память и дисковое пространство. Ты не представляешь какой реально процент времени забирает GC и сколько длится в Go 1.7 STW. Пользователя софта не интересует IDE. Чуждый cargo это к Rust, а не Go, зачем ты всё в кучу мешаешь? Новоязу Go восьмой год пошел и он успешно юзается в самых нагруженных веб сервисах.
     
     
  • 5.27, Аноним (-), 03:32, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не агрись, человек отвечал про яву.
     
     
  • 6.28, Аноним (-), 03:33, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    По крайней мере, первая часть написана как будто про яву.
     
     
  • 7.29, angra (ok), 04:18, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Про которую ты знаешь из напевов Рабиновича. Ты вправду считаешь, что helloworld на яве требует гига памяти?
     
     
  • 8.36, Ванга (?), 12:14, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я не считаю, я знаю Умельцы из соседне страны на букву у, написали флеш полиси ... текст свёрнут, показать
     
     
  • 9.52, angra (ok), 23:59, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Специально для икспердов usr bin time -v java HelloWorld Hello, World Comman... текст свёрнут, показать
     
     
  • 10.55, Аноним (-), 03:22, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    к логопеду к офтальмологу я про любое и не говорил ... текст свёрнут, показать
     
  • 4.48, Ordu (ok), 19:06, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Чуждый cargo который вместо установки пакетов в систему как в нормальных языках, тащит при сборке рандомные версии зависимостей по сети, ломая повторяемые сборки, кэширование и всё остальное.

    Не надо путать тёплое с мягким. Cargo -- это не пакетный менагер. Если вам нужны повторяемые сборки и прочее, то выберите версию нужного пакета, возьмите Cargo.toml, скомпилируйте его в ебилд, или что там у вас, и разруливайте депендансы ручками. Так как это делают мейнтейнеры дистрибутивов в отношении _всех_остальных_ программ. Не только тех, которые разрабатываются при помощи cargo.

    Или халявы захотелось? Думали, что разработчики программ вдруг начнут решать проблемы мейнтейнеров дистрибутивов, просто потому что у них появился cargo? Нет уж, дудки!

     
  • 4.49, Аноним (-), 19:45, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > армы и мипсы с сотнями мегабайт памяти

    Так прямо и вижу серьёзную энтерпрайзную архитектуру на армах и мипсах. Ты опять путаешь свой локалхост на малине с работой.

     
  • 3.25, Анином (?), 03:14, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Но пользователю-то софта какая разница, на чем софт написан?

    Ну как какая. Если какая-нибудь утилита написана на жабке, то вслед на ней столько зависимостей паровозиком вытянется, что аж спасибо-ненада.

     
     
  • 4.31, . (?), 06:13, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Утилиты на жабе не пишут. Start time  не тот :) На жабе пишут чё нить стартующее не часто и висящее долго. Ну в смысле так делают те кто мозги на смууу-уу-уузи не заменил.
     
     
  • 5.53, angra (ok), 00:08, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Еще один иксперд.

    time ldapsearch

    real 0m0.201s
    user 0m0.211s
    sys 0m0.029s

    Какой страшный start time для весьма полезной утилиты, целых 0.2 секунды.

     
  • 3.26, Аноним (-), 03:25, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Удивление - когнитивная эмоция, возникающая при возникновении неожиданной ситуац... большой текст свёрнут, показать
     
     
  • 4.54, angra (ok), 00:13, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если в течёт память, а программисты говорят "какая-то хрень с garbige collector",
    > то какие выводы должен сделать админ?

    Что конкретные программисты не умеют программировать на этом языке, а может и вообще ни на чем не умеют? Так как для того, чтобы добиться утечек памяти в языке с gc, надо постараться, например вообще никогда никакой ресурс не закрывать и держать ссылку на него в глобальной переменной.

     
     
  • 5.56, Аноним (-), 03:35, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Так как для того, чтобы
    > добиться утечек памяти в языке с gc, надо постараться, например вообще
    > никогда никакой ресурс не закрывать и держать ссылку на него в
    > глобальной переменной.

    Есть многое на свете, друг Горацио, что по размеру тяжелее ldapsearch.

    Твоё мнение, как эксперта по всем вопросам и во всех профессиях, конечно, очень ценно, но что-то мне подсказывает, что такие всесторонние личности заняты более интересными делами, нежели кривляньем на опеннете.


     
  • 3.42, Аноним (-), 14:02, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Все эти рассуждения
    > о том, что джава плохая, а божественная сишечка рулит - пустая
    > болтовня делитантов, не работавших ни с тем, ни с другим.

    Хорошо, давай я с точки зрения пользователя тебе за java поясню. Она тянет java-машину, которая мало того, что любит память, так ещё и сама по себе вешает 200 метров. Доволен?

     
     
  • 4.51, Ordu (ok), 23:09, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вы не умеете готовить жабу.

    Она может пахать на компьютере из 1960-х годов. И пашет: http://thenewstack.io/happens-use-java-1960-ibm-mainframe/

    Правда странички отдаёт за 6-10 секунд.

     

  • 1.21, deadfood (ok), 01:45, 23/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >хранилище параметров конфигурации, задаваемых в форме ключ/значение

    ненужно, хороните

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

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

     
     
  • 2.24, angra (ok), 02:55, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > для тех админов локалхоста, кто не понял: возьмите простейший конфиг апача со
    > всеми его иерархиями и инклюдами, и попробуйте представить его в виде ключ-значение.

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

    Вообще у проекта очень неудачное название, оно вводит в заблуждение, намекая на drop-in замену обычному /etc, но на деле не имеет с /etc почти ничего общего.

     

  • 1.33, EuPhobos (ok), 09:52, 23/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очередной dconf/gconf ?
     
     
  • 2.38, Аноним (-), 13:34, 23/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Очередной ты? Уже ведь были люди, зачем было еще тебя создавать?
     
     
  • 3.57, Аноним (-), 03:49, 24/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Удваиваю этого господина (а не того, что сверху)
     

  • 1.59, Kostiantyn Lysenko (?), 06:58, 25/01/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Удивляюсь тому что большинство комментаторов не заметили слова 'распределенный'.

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

    Любопытно было бы услышать сравнение с Consul, который обеспечивает похожую функциональность.

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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