Quattor

Quattor — это универсальный набор инструментов с открытым исходным кодом, используемый для установки, конфигурирования и управления компьютерами. Quattor был изначально разработан в рамках европейского проекта Data Grid. С момента первого выпуска в 2003 году поддержкой и развитием Quattor занимается сообщество добровольцев из числа пользователей и разработчиков, преимущественно представляющих сообщество администраторов грид-систем[1].

Описание

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

  • Федеративное управление: открытая и модульная архитектура Quattor позволяет администраторам из разных институтов совместно управлять распределёнными ресурсами;
  • Общие конфигурации и эффективность управления: Quattor поощряет повторное использование информации о конфигурации таким образом, чтобы её можно было распространять и применять с минимальными или вообще без изменений на разных площадках, что облегчает внедрение лучших практик;
  • Целостная модель сайта: система позволяет администратору разработать модель сайта, которая затем может использоваться для управления различными ресурсами, такими как физические серверы, виртуальные машины и облачные ресурсы.

Эти возможности востребованы не только в грид-среде, что подтверждается ростом использования Quattor как крупными коммерческими организациями, так и академическими учреждениями, применяющими этот инструмент для унифицированного управления своими грид- и не-грид-системами[1].

Принципы

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

Архитектурно инструмент Quattor наследован от LCFG, но был усовершенствован по нескольким направлениям. В основе лежит язык высокого уровня Pan (англ. Pan), обладающий выраженной типизацией, гибкими механизмами включения, разнообразными структурами данных и средствами валидации, привычными современным программистам. Pan позволяет администраторам создавать сложные наборы шаблонов конфигурации, описывающих типы сервисов, аппаратные компоненты, параметры конфигурации, пользователей и др. Использование такого высокоуровневого языка способствует повторному использованию кода, выходящему за рамки простого копирования фрагментов конфигурации.

Заложенные в Quattor принципы соответствуют принятым сообществом системных администраторов. В частности, все управляемые узлы получают свои конфигурации с сервера конфигураций, резервируемого системой управления версиями (или несколькими системами — при делегированном управлении). Это обеспечивает возможность воссоздания любого узла в случае аппаратного сбоя. Quattor поддерживает как распределённую, так и традиционную инфраструктуру.

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

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

Архитектура Quattor

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

Система управления конфигурациями Quattor состоит из базы конфигураций, хранящей шаблоны высокого уровня, компилятора Pan, проверяющего шаблоны и преобразующего их в профили в формате XML или JSON, и репозитория профилей машин, который предоставляет их клиентским узлам. Из этих подсистем строго необходим лишь компилятор Pan; две другие могут быть заменены любым сервисом с аналогичными функциями.

Делегированное управление в кросс-доменной среде требует аутентификации пользователей и авторизации их операций. В базе конфигураций для этого могут применяться сертификаты X.509 благодаря поддержке стандартными инструментами, а также списки управления доступом (ACL), позволяющие тонко контролировать права (ACL может быть прикреплён к каждому шаблону). При большом числе пользователей могут возникать конфликты и ошибки конфигурации, требующие механизма отката; для этого реализован простой механизм транзакций на основе стандартных систем контроля версий.

Модульная архитектура Quattor позволяет развернуть эти три подсистемы либо централизованно, либо распределённо. В распределённом подходе компиляция профилей проводится на клиентских системах, затем шаблоны добавляются в подходящую базу данных, и развертывание инициируется отдельной операцией на сервере. Централизованный подход обеспечивает строгий контроль конфигурационных данных: нагрузка по компиляции возлагается на центральный сервер, а пользователи могут изменять шаблоны только через специализированный интерфейс.

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

Язык Pan

В центре набора инструментов Quattor находится компилятор языка Pan, который компилирует конфигурации, написанные администраторами в языке Pan, и выдаёт профили в формате XML или JSON, легко обрабатываемые клиентами Quattor. Синтаксис Pan — декларативный и позволяет одновременно описывать параметры конфигурации и связываемую с ними схему. Среди возможностей Pan, особенно важных для делегированного управления распределёнными площадками, выделяются валидация, повторное использование конфигураций и модульность.

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

Повторное использование конфигураций. Pan реализует механизм «структурных шаблонов» — небольших, многократно используемых блоков информации Pan, которые могут применяться при обнаружении инвариантных конфигурационных поддеревьев.

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

Полная конфигурация площадки, как правило, складывается из множества шаблонов, упорядоченных по папкам и подпапкам. Пространство имён Pan имитирует и реализует такую иерархию, как это принято в языке Java, причём оно не зависит от структуры схемы конфигурации. Например, схема может строиться по низкоуровневым сервисам, а шаблоны Pan обычно группируются иным способом — по высокоуровневым сервисам, либо по ответственным лицам/группам.

Пространство имён позволяет выделять и разделять различные части конфигурации. Для эффективного повторного использования модулей администраторы должны иметь возможность легко импортировать и настраивать их для площадки. Пан компилятор комбинирует пространство имён и пути поиска (load-path): в каталогах ищутся нужные шаблоны с определёнными именами, и используется первый найденный вариант — что даёт сочетание чистоты модулей и возможности локального переопределения.

Разработчики модулей дополнительно могут экспортировать глобальные переменные, позволяя администраторам настраивать модуль без необходимости детально разбираться во внутреннем устройстве шаблонов.

Шаблоны рабочей группы Quattor используются для настройки грид-сервисов промежуточного ПО, охватывая все функции Pan для совместного использования экспертизы в области грид-технологий между распределёнными площадками.

Автоматическое управление установкой

Важным аспектом администрирования больших распределённых инфраструктур является возможность автоматической установки машин, в том числе удалённо. Для этого в составе Quattor реализован модульный фреймворк: Инфраструктура автоматической установки. AII превращает параметры, описанные профилем узла, в инструкции для стандартных систем автоматической установки. Современные модули AII на базе профилей автоматизируют настройку серверов DHCP, загрузку по PXE и инсталляцию при помощи Kickstart.

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

Управление конфигурацией узлов

В Quattor управляемые узлы самостоятельно обеспечивают свой процесс настройки: все действия инициируются локально после загрузки профиля с репозитория. Каждый узел содержит набор агентов настройки (компонентов), каждый из которых отвечает за определённую часть схемы конфигурации. К примеру, компонент управления учётными записями привязан к пути /software/components/accounts. На узле запускается диспетчер, который анализирует обновлённую конфигурацию и запускает соответствующие компоненты при обнаружении изменений в их зонах ответственности. В профиле машины могут задаваться зависимости выполнения, чтобы обеспечить частичный порядок проведения операций (например, создание учётных записей — до создания файлов, чтобы корректно указать владельца).

По замыслу, в системе отсутствует цикл контроля правильности выполнения компонентов настройки. Для выявления и устранения сбоев администраторы используют стандартные средства мониторинга: Nagios и Lemon широко применяются на площадках с Quattor — причём Lemon, развиваемый параллельно с Quattor, предоставляет сенсоры для отслеживания их работы.

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

Примечания

Литература

  • Childs, S. (2004). “Automated Configuration Management with Quattor”. Journal of Grid Computing [англ.]. 2 (3): 265—282. DOI:10.1007/s10723-004-7648-2. Дата обращения 2024-06-28.
  • Quattor: Automated Configuration Management for Scientific Computing Infrastructures (англ.). USENIX LISA08. Дата обращения: 28 июня 2024.
  • Документация по языку Pan (англ.). Quattor Pan documentation. Дата обращения: 28 июня 2024. Архивировано 10 декабря 2014 года.

Ссылки