Выпуск распределенной системы хранения конфигурации etcd 2.1
3 августа 2015 года
Проект CoreOS, развивающий основанное на идеях контейнерной изоляции серверное окружение, опубликовал релиз etcd 2.1, высоконадёжного распределённого хранилища параметров конфигурации, задаваемых в форме ключ/значение. Основным назначением etcd является предоставление унифицированного механизма хранения конфигурации и информации о работающих сервисах для изолированных контейнеров с типовой начинкой. Код etcd написан на языке Go и распространяется под лицензией Apache.
Etcd позволяет организовать единое хранилище конфигурации для группы серверов, которое реплицируются на все узлы и поддерживается в синхронизированном состоянии с использованием протокола Raft. Наличие копии данных на всех хостах позволяет исключить потерю конфигурации при выходе из строя отдельного узла. В etcd также могут сохраняться временные данные, для которых предусмотрена возможность определения времени жизни записи. Для доступа к конфигурации предоставляется простой API, основанный на использовании HTTP и JSON, web-интерфейс, утилита etcdctl для работы с хранилищем из командной строки и FUSE-модуль etcd-fs для экспорта хранилища в виде файловой системы.
Для перехода на новую версию подготовлены средства бесшовного обновления, позволяющие заменить etcd 2.0 на etcd 2.1 без остановки работы сервиса. Особенности выпуска etcd 2.1:
- Реализован API /v2/auth, расширяющий типовой API etcd средствами для аутентификации и авторизации. Данный Auth API даёт возможность управления доступом к группам хранимых ключей на основе задания ролей и владельцев префиксов ключей c аутентификацией через штатные методы HTTP. Поддержка Auth API добавлена в сервер etcd, утилиты командной строки и клиентские привязки;
- Новый Metrics API, который может применяться для мониторинга и отладки в режиме реального времени. Через данный API можно получить доступ к актуальной статистике, содержащей информацию о работающих с хранилищем клиентах и расходуемых ресурсах;
- Увеличена стабильность работы в условиях использования ненадёжных каналов связи, в которых наблюдаются провалы пропускной способности и высокие задержки в доставке пакетов. Сокращена интенсивность создания соединений - вместо создания серии единичных соединений для каждой операции, etcd теперь применяет установку долгоживущих соединений с хостами, не разрываемых после каждого запроса. Произведено объединение отправки команд достижения консенсуса между узлами ( raft) с индексом коммитов, что позволило увеличить отзывчивость со 100 мс до 1 мс в условиях небольшой нагрузки (менее 100 записей в секунду). Реализация алгоритма raft расширена более качественными средствами контроля потока, что существенно снизило вероятность потери raft-сообщений и увеличено эффективность расходования памяти и ресурсов CPU;
- Подготовлен фреймворк для функционального тестирования etcd, позволяющий выявить и устранить возможные проблемы, проявляющиеся в условиях высокой нагрузки, и оценить поведение системы при возникновении различных видов сбоев.
- Реализована система многоуровневых логов, дающая возможность определять степень охвата журналируемых действий через задание уровня ведения лога - от вывода только критичных уведомлений до подробнейшего лога в режиме отладки. Улучшена читаемость информации в логах.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.