Упражнение. Добавление диска в узел планировщика кластера HPC

Завершено

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

Помните, что вы хотите протестировать процесс реализации кластера с помощью настраиваемого шаблона Azure CycleCloud. Для этого вы будете использовать репозиторий Azure CycleCloud GitHub курируемый проект Slurm корпорации Майкрософт. Вы измените существующий шаблон кластера из этого репозитория, изменив конфигурацию хранилища узла планировщика, импортируйте недавно измененный шаблон в приложение Azure CycleCloud, используйте графический интерфейс приложения для создания кластера и, наконец, проверьте изменение конфигурации хранилища.

Важно

Для выполнения упражнений в этом модуле необходимо выполнить следующие предварительные требования:

  • Подписка Azure с доступностью ядер vCPU в трех группах размеров виртуальных машин:
    • по крайней мере 4 ядра виртуальных ЦП серии DSv3
    • по крайней мере 100 ядер VCPU серии FSv2
    • по крайней мере 48 ядер VCPU серии NC
  • У вас есть учетная запись Майкрософт или учетная запись Microsoft Entra с ролью владельца или участника в подписке Azure.
  • Разверните приложение Azure CycleCloud на виртуальной машине Azure, доступной с общедоступным IP-адресом, связанным с сетевым интерфейсом.
  • Настройте приложение Azure CycleCloud с доступом на уровне ролей владельца или участника к подписке Azure.
  • Иметь учетную запись пользователя приложения Azure CycleCloud с правами администратора.
  • Создайте подсеть виртуальной сети Azure, в которую можно развернуть узлы кластера.
  • Укажите закрытый ключ пары ключей SSH, используемую для настройки приложения Azure CycleCloud.

Заметка

Сведения о выявлении и увеличении квот виртуальных ЦП в подписке Azure см. в следующей документации:

Заметка

Вам потребуется закрытый ключ для подключения непосредственно к узлам кластера в последнем упражнении этого модуля.

В этом упражнении вы выполните следующие задачи:

  • Задача 1. Установка и настройка Интерфейса командной строки Azure CycleCloud
  • Задача 2. Настройка проекта Azure CycleCloud Slurm
  • Задача 3. Реализация пользовательского шаблона Azure CycleCloud
  • Задача 4. Запуск нового кластера и проверка конфигурации хранилища

Задача 1. Установка и настройка Интерфейса командной строки Azure CycleCloud

Большинство задач управления в этих и последующих упражнениях используют Azure CycleCloud CLI, поэтому сначала установите его и подключите его к приложению Azure CycleCloud. Чтобы упростить начальную настройку, вы будете использовать Azure Cloud Shell.

Заметка

Кроме того, вы можете войти в виртуальную машину Azure, размещенную в приложении Azure CycleCloud, где уже установлен интерфейс командной строки Azure CycleCloud.

  1. На вашем компьютере запустите веб-браузер, совместимый с порталом Azure, перейдите на портал Azure и, когда появится запрос, выполните аутентификацию с помощью учетной записи Microsoft или учетной записи Microsoft Entra с ролью участника или владельца в подписке Azure, которую вы будете использовать в этом модуле.

    Заметка

    Портал Azure поддерживает наиболее распространенные современные веб-браузеры, включая текущие версии Microsoft Edge, Google Chrome, Mozilla Firefox и Apple Safari.

  2. На портале Azure откройте Cloud Shell, выбрав значок на панели инструментов рядом с текстовым полем поиска.

  3. Если вам будет предложено выбрать Bash или PowerShell, выберите Bash.

    Заметка

    Если вы впервые запускаете Azure Cloud Shell и видите сообщение "у вас нет подключенного хранилища", выберите подписку, которую вы используете в этом упражнении, а затем выберите "Создать хранилище".

  4. В сеансе Bash в области Azure Cloud Shell выполните следующую команду, чтобы задать значение переменной общедоступному IP-адресу сервера приложений Azure CycleCloud (замените заполнитель <public_ip_address> фактическим общедоступным IP-адресом):

    PIP=<public_ip_address>
    
  5. Выполните следующую команду, чтобы загрузить файл .zip, содержащий установщик CLI, специфический для экземпляра Azure CycleCloud.

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. Выполните следующие команды в последовательности для извлечения и выполнения скрипта, выполняющего установку Интерфейса командной строки Azure CycleCloud:

    unzip ./cyclecloud-cli.zip
    cd ./cyclecloud-cli-installer
    ./install.sh
    

    Заметка

    Игнорируйте сообщения относительно переменной среды пути и продолжайте переход к следующему шагу.

  7. Выполните следующую команду, чтобы установить подключение к экземпляру Azure CycleCloud, где заполнители <username> и <password> обозначают учетные данные вашей пользовательской учетной записи Azure CycleCloud с ролью администратора.

    cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
    

    Заметка

    Параметр --verify-ssl для false соответствует сценариям, в которых приложение Azure CycleCloud настроено с помощью самозаверяющего сертификата или сертификата из ненадежного центра сертификации.

  8. Выполните следующую команду, чтобы проверить подключение к экземпляру Azure CycleCloud, отобразив конфигурацию его локера:

    cyclecloud locker list
    

    Заметка

    Выходные данные должны включать имена хранилищ для каждой подписки Azure, зарегистрированной в CycleCloud, и их соответствующие контейнеры в отдельных учетных записях хранения Azure. Запишите название шкафа, соответствующего подписке Azure, которую вы планируете использовать для этой лабораторной работы, так как оно потребуется вам позже в этом упражнении. Выходные данные команды представлены в следующем формате (где заполнитель <locker-name> представляет имя хранилища, заполнитель <storage_account_name> представляет имя учетной записи хранения, в которой размещен этот locker, а заполнитель <container_name> представляет имя контейнера locker в этой учетной записи хранения):

    <locker-name> (az://<storage_account_name>/<container_name>)
    

Задача 2. Настройка проекта Azure CycleCloud Slurm

Затем вы настроите пример проекта Azure CycleCloud Slurm. Вы будете использовать существующий проект Slurm из репозитория GitHub Azure CycleCloud. Вы загрузите его в ваш домашний каталог в Azure Cloud Shell, а затем загрузите его в хранилище Azure CycleCloud.

  1. На вашем компьютере в сеансе Bash в области Azure Cloud Shell запустите следующие команды, чтобы создать каталог проекта и получить проект Slurm из соответствующего репозитория GitHub в него.

    mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm
    cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm . 
    

    Заметка

    Обязательно включите конечный период в конце второй команды.

  2. Выполните следующую команду, чтобы назначить хранилище по умолчанию и отправить проект в него (замените заполнитель <locker_name> именем locker, указанного в предыдущей задаче, например cc-lab-subscription-storage):

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    Заметка

    Кроме того, можно запустить cyclecloud project upload <locker_name>, где заполнитель <locker_name> обозначает имя locker.

    Заметка

    Игнорируйте сообщение об ошибке azcopy, содержащее Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/container, следующее за Upload failed!, до тех пор, пока отдельные копии файлов проекта успешно выполняются. Чтобы подтвердить это, убедитесь, что окончательное состояние задания указано как Completedс нулевой неудачной передачей.

Задача 3. Реализация пользовательского шаблона Azure CycleCloud

Теперь скачайте и измените пример шаблона Azure CycleCloud, совместимый с проектом на GitHub. Вы будете использовать его для определения настраиваемой конфигурации хранилища, которая включает дополнительный диск, подключенный к узлу планировщика и экспортируемый через сетевую файловую систему (NFS). После этого изменения вы импортируете его в приложение Azure CycleCloud.

Заметка

Вы можете просмотреть содержимое шаблона с веб-браузером, перейдя к репозиторию Azure/cyclecloud-slurm.

  1. На компьютере в окне веб-браузера, где отображается сеанс Bash в области Azure Cloud Shell, выполните следующую команду, чтобы изменить рабочий каталог на только что созданный репозиторий:

    cd ~/cyclecloud-slurm/templates
    
  2. Выполните следующие команды, чтобы создать резервную копию исходного шаблона кластера:

    cp slurm.txt slurm.bak.txt
    
  3. Выполните следующую команду, чтобы открыть скачанный шаблон в редакторе nano:

    nano slurm.txt
    

    Заметка

    Вместо редактора nano можно использовать любой другой текстовый редактор, в том числе встроенный редактор Azure Cloud Shell.

  4. В интерфейсе редактора nano перейдите к разделу [[node scheduler]]. В этом разделе найдите подраздел [[[volume shared]]], перейдите к строке Persistent = ${NFSType == "Builtin"}и добавьте следующее содержимое после него:

    
        # Add 2 premium disks in a RAID 0 configuration to the NFS export
        [[[volume nfs-1]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[volume nfs-2]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[configuration cyclecloud.mounts.nfs]]]
        mountpoint = /mnt/exports/lab
        fs_type = ext4
        raid_level = 0
    
    

    Заметка

    Если вы используете компьютер Windows, вы можете вставить содержимое буфера обмена с помощью сочетания клавиш SHIFT+ Insert.

    Заметка

    Ваши изменения определяют два премиум диска хранилища объемом 128 ГБ в томе с разбиением на полосы, который будет автоматически подключен к головному узлу в процессе настройки. Том будет использовать точку подключения /mnt/exports/ и будет автоматически отформатирован в виде файловой системы ext4. Параметр Persistent = true указывает, что диски будут сохраняться при завершении кластера, но они будут автоматически удалены при удалении кластера.

    Заметка

    Azure CycleCloud реализует тома как управляемые диски Azure.

  5. В интерфейсе редактора Nano выберите сочетание клавиш CTRL+O+ O , выберите клавишу вводВВОД, а затем выберите сочетание клавиш CTRL+X , чтобы сохранить внесенные изменения и закрыть файл.

    Заметка

    На этом этапе вы можете использовать подключение к приложению Azure CycleCloud с помощью ИНТЕРФЕЙСА командной строки для импорта шаблона.

  6. Выполните следующую команду, чтобы импортировать шаблон, измененный в предыдущей задаче, в приложение Azure CycleCloud:

    cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
    

    Заметка

    Команда отобразит имя импортированного шаблона, состояние планировщика (scheduler: Off -- --) и количество общих узлов (Total nodes: 1).

Задача 4. Запуск нового кластера и проверка конфигурации хранилища

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

  1. На компьютере откройте другое окно браузера и перейдите по URL-адресу https://<IP_address> (замените заполнитель <IP_address> общедоступным IP-адресом сервера приложений Azure CycleCloud). При появлении запроса подтвердите, что вы хотите продолжить.

  2. Если появится запрос на проверку подлинности, войдите, указав учетные данные той же учетной записи пользователя приложения Azure CycleCloud, которую вы использовали для настройки Azure CycleCloud CLI.

  3. В графическом интерфейсе Azure CycleCloud перейдите на страницу кластеров и выберите +.

  4. На странице Создание кластера выберите значок, помеченный Slurm в виде равнобедренного треугольника с небольшими кругами на каждой вершине.

    снимок экрана: страница

  5. На вкладке " "Новый кластер Slurm" введите contoso-custom-slurm-lab-cluster в текстовом поле имя кластера.

    Снимок экрана вкладки «О программе» на странице «Новый кластер Slurm» веб-приложения Azure CycleCloud.

  6. На вкладке Требуемые настройки страницы Новый кластер Slurm настройте следующие параметры (остальные оставьте по умолчанию) и выберите Далее.

    Настройка Ценность
    Область Выберите имя региона Azure, в котором планируется развернуть кластер в этом упражнении.
    Тип виртуальной машины планировщика Выберите и нажмите в всплывающем окне Выберите тип компьютера. В текстовом поле поиска SKU введите D4s_v3. В списке результатов установите флажок рядом с записью D4s_v3, а затем выберите Применить.

    Заметка

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

    Настройка Ценность
    Максимальное число ядер HPC Введите 100.
    Max HTC Cores Введите 100.
    Максимальное количество ВМ в масштабируемом наборе Введите 40.
    Идентификатор подсети Выберите cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet.
  7. На вкладке подключенного к сети хранилища нового кластера Slurm убедитесь, что для типа NFS задано значение "Встроенный", оставьте значение по умолчанию для размера (ГБ) 100и выберите Далее.

    снимок экрана: вкладка

  8. На вкладке Дополнительные параметры страницы Новый кластер Slurm просмотрите доступные параметры без внесения изменений и выберите Далее.

    Снимок экрана вкладки

  9. На вкладке Cloud-init страницы новый кластер Slurm просмотрите доступные параметры без внесения изменений и выберите Сохранить.

  10. На странице contoso-custom-slurm-lab-cluster выберите ссылку "Запуск". При появлении запроса на подтверждение нажмите кнопку ОК.

    Снимок экрана страницы вкладки «Узлы» contoso-slurm-lab-cluster в выключенном состоянии в веб-приложении Azure CycleCloud.

  11. Отслеживайте процесс запуска.

    Заметка

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

  12. После изменения состояния узла планировщика на Readyвыберите его на вкладке Узлы, а затем выберите Показать подробные сведения.

    снимок экрана: вкладка

  13. В всплывающем окне Отображение планировщика в кластере contoso-custom-slurm-lab-cluster перейдите на вкладку узел, прокрутите страницу томов и убедитесь, что записи nfs-1 и nfs-2 отображаются в списке томов.

    снимок экрана вкладки

Поздравляю! Вы успешно выполнили первое упражнение этого модуля. В этом упражнении вы реализовали кластер на основе настраиваемого шаблона Azure CycleCloud. Вы использовали Azure CycleCloud CLI для импорта примера проекта, размещенного в репозитории Azure CycleCloud GitHub, включая настраиваемую копию одного из его шаблонов. Затем вы создали кластер на основе импортированного шаблона с графическим интерфейсом Azure CycleCloud, запустили его и убедились, что пользовательское изменение вступило в силу.

Заметка

Не удаляйте развернутые и настроенные в этом упражнении ресурсы, если вы планируете выполнить следующее упражнение в этом модуле. Эти ресурсы необходимы для выполнения следующего упражнения.