Основные принципы Azure CycleCloud
Многим организациям требуется перенести локальные рабочие нагрузки HPC в Azure, чтобы воспользоваться преимуществами гипермасштабирования. Они также хотят максимально сократить кривую обучения, связанную с этим переходом, и использовать опыт использования существующих развертываний, например конкретного планировщика HPC. Наконец, они ищут аналитические сведения о производительности и стоимости облачных ресурсов кластера таким образом, чтобы параллельно использовать локальные среды.
Реализовать пользовательское решение, отвечающее всем этим требованиям, довольно сложно. Для этого требуются углубленные знания о вычислительных и сетевых ресурсах Azure, а также ресурсах хранилища, которые служат компонентами облачных кластеров HPC. Кроме того, без соответствующего интерфейса управления использование такого решения с помощью стандартных средств управления Azure приведет к значительным административным издержкам.
Azure CycleCloud решает эти проблемы, предоставляя простой, безопасный и масштабируемый способ реализации планировщиков HPC в Azure. В этом уроке вы узнаете о своей базовой функциональности.
Примечание.
Azure CycleCloud предназначен для сценариев развертывания, требующих использования определенного планировщика HPC. Это дополняет пакетная служба Azure, которая предоставляет планировщик в качестве службы в Azure.
What is Azure CycleCloud? (Что такое Azure CycleCloud)
Azure CycleCloud — это инструмент для развертывания кластеров HPC в Azure и управления их рабочими нагрузками. Он предлагает широкий спектр возможностей HPC, в том числе:
Развертывание кластеров HPC на основе шаблонов. Azure CycleCloud предоставляет встроенные настраиваемые шаблоны для развертывания наиболее распространенных планировщиков кластеров, включая Slurm, OpenPBS, LSF, Grid Engine и HTCondor. Многие другие предопределенные шаблоны, которые можно импортировать в экземпляр Azure CycleCloud, доступны в репозитории CycleCloud на GitHub.
Примечание.
Шаблоны — это файлы в формате INI, которые с помощью декларативного синтаксиса описывают, как в кластере CycleCloud организованы узлы, включая связи между ними. Шаблоны содержат ссылки на проекты, которые определяют конфигурацию узлов.
Ручное и автоматическое масштабирование узлов кластера. Azure CycleCloud позволяет выполнять ручное и автоматизированное горизонтальное масштабирование управляемых кластеров в соответствии с длиной очередей заданий и политик управления. Он также предлагает REST API для разработки адаптеров автомасштабирования для пользовательских планировщиков.
Конфигурация узла с помощью скриптов cloud-init. Azure CycleCloud поддерживает управление конфигурацией на основе пользовательских сценариев, которые выполняются в управляемых узлах кластера до выполнения других задач конфигурации в CycleCloud.
Управление внутренним и внешним хранилищем кластера. Azure CycleCloud позволяет настроить хранилище кластеров путем подготовки, подключения и форматирования управляемых дисков Azure и сетевого хранилища, таких как серверы NFS или кластеры BeeGFS.
Мониторинг, ведение журнала и оповещения. Azure CycleCloud предлагает встроенный мониторинг кластера и интегрируется с Azure Monitor. Он также позволяет сохранять данные журнала из кластеров CycleCloud в Log Analytics и создавать пользовательские панели мониторинга метрик. Кроме того, можно создавать пользовательские оповещения и Уведомления по электронной почте, активированные данными телеметрии. Все действия Azure CycleCloud записываются в журнал.
Проверка подлинности и авторизация. Azure CycleCloud поддерживает встроенную локальную проверку подлинности. Кроме того, вы можете интегрировать его с домен Active Directory Services или другими поставщиками удостоверений на основе протокола LDAP. По умолчанию локально определенные пользователи имеют доступ к операционной системе на управляемых узлах кластера, но пользователей кластера можно администрировать отдельно. Для управления ресурсами в подписке Azure можно использовать субъект-службу Microsoft Entra или управляемое удостоверение.
Создание отчетов и элементов управления затратами практически в режиме реального времени. Azure CycleCloud отслеживает использование кластера и оценивает соответствующие затраты. Эта функция позволяет настроить оповещения о бюджете, активируемые, если расходы на кластер превышают указанную сумму. Azure CycleCloud также интегрируется со службой "Управление затратами Microsoft".
Как реализовать и использовать Azure CycleCloud?
CycleCloud реализуется как веб-приложение на основе Linux, которое можно установить в любом расположении, откуда можно получить доступ к среде Azure. Самый простой способ настроить его — развернуть виртуальную машину Azure, используя соответствующий образ из Azure Marketplace, с возможностью автоматизации развертывания с помощью шаблона Azure Resource Manager (ARM). Кроме того, можно использовать пакеты yum или apt или образ контейнера, доступный в реестре контейнеров Майкрософт.
Во время начальной конфигурации можно предоставить ключ SSH для защиты доступа к операционной системе, в котором размещено приложение CycleCloud, и к узлам кластера, развернутым позже. Чтобы приложение CycleCloud взаимодействовало с Azure Resource Manager, необходимо выбрать удостоверение Microsoft Entra, которое предоставляет контекст безопасности для этого взаимодействия и назначить ему достаточные разрешения в целевой подписке Azure с помощью управления доступом на основе ролей Azure (RBAC). Это удостоверение может принимать форму субъекта-службы или управляемого удостоверения, если на виртуальной машине Azure размещено приложение Azure CycleCloud.
Для экземпляра Azure CycleCloud также требуется учетная запись хранения Azure и сопутствующий контейнер больших двоичных объектов. Этот контейнер, известный как хранилище, предоставляет промежуточную область для развертывания проектов на узлах кластера.
После установки приложение Azure CycleCloud предоставляет графический пользовательский интерфейс, в котором пользователи могут администрировать и отслеживать системы HPC, и интерфейс командной строки (CLI), чтобы упростить автоматизацию и интеграцию CycleCloud с существующими рабочими процессами. Вы также можете использовать интерфейс командной строки для импорта шаблонов, автоматизации подготовки кластера и выполнения более сложных задач управления.
Какую архитектуру использует Azure CycleCloud?
Azure CycleCloud предоставляет добавленный уровень абстракции по сравнению с Azure Resource Manager, минимизируя потребность пользователей в работе непосредственно с ресурсами вычислений и хранилища Azure. Ее роль заключается в переводе конфигураций на уровне планировщика, доступных через графический интерфейс или ИНТЕРФЕЙС командной строки в вызовы API Azure Resource Manager (ARM), которые взаимодействуют с виртуальными машинами Azure и масштабируемыми наборами виртуальных машин Azure в пользовательских виртуальных сетях и подсетях. Эти вызовы также учитывают региональные квоты на виртуальные ЦП, ограничения размера кластера и ограничения топологии сети InfiniBand. Они также упрощают оптимизацию производительности кластера, используя такие конструкции, как группы размещения близкого взаимодействия, или подключая узлы кластера к одному коммутатору InfiniBand.
Примечание.
Группа размещения близкого взаимодействия позволяет размещать виртуальные машины Azure близко друг к другу, но не учитывает сеть InfiniBand. Azure CycleCloud позволяет использовать собственную конструкцию, называемую PlacementGroupId для группировки узлов кластера в один масштабируемый набор виртуальных машин Azure, подключенный к одному сетевому коммутатору. Эти две функции можно объединить, но это может сократить количество узлов, которые можно подготавливать в одном масштабируемом наборе виртуальных машин Azure.
Azure CycleCloud управляет жизненным циклом кластеров HPC, которые обычно состоят из одного или нескольких головных узлов планировщика HPC и вычислительных узлов, но также могут включать в себя подключенное к сети хранилище, например сервер NFS или кластер BeeGFS, Azure NetApp Files, Azure HPC Cache и доменные службы Microsoft Entra. Приложение включает внутреннее хранилище данных NoSQL, которое кэширует состояния кластера и узла. Система мониторинга узлов включает предупреждения. Функции управления предоставляются через REST API и доступны через веб-интерфейс и интерфейс командной строки.
Автомасштабирование управляемого кластера использует калькулятор спроса и библиотеку автомасштабирования. Вы узнаете об их характеристиках в следующем уроке этого курса.
Из чего состоит жизненный цикл кластера Azure CycleCloud?
Жизненный цикл кластера начинается с выбора шаблона, содержащего его определение. Вы можете использовать один из встроенных шаблонов или создать пользовательский и импортировать его в приложение CycleCloud. Шаблон обычно включает несколько параметров, которые позволяют настроить конфигурацию кластера во время его создания. Особенности процесса создания кластера зависят от того, какой инструмент вы используете: веб-интерфейс или CLI.
После создания кластера его можно запустить. Запуск кластера запускает последовательность задач для каждого узла, который является частью определения шаблона кластера. Эта последовательность состоит из вызова Azure Resource Manager, запрашивающего подготовку виртуальной машины Azure, называемой состоянием получения . За ней следует конфигурация виртуальной машины, включая выполнение его инициализации, определенной в соответствующем проекте, выполнение скриптов для установки и настройки программного обеспечения планирования, а также подготовки и подключения томов файловой системы. По завершении этой последовательности узел переходит в состояние Запущено. Любая необработанная или неизвестная ошибка приводит к состоянию Ошибка.
После запуска узлов кластера они доступны удаленно через SSH или RDP в зависимости от операционной системы. Эти подключения можно использовать для отправки заданий кластера. В зависимости от конфигурации кластера это может активировать масштабирование кластера.
Кластер можно завершить после выполнения всех отправленных заданий. Завершение кластера останавливается и удаляет узлы и удаляет все не постоянные тома, оставляя кластер в состоянии off .