빠른 시작 - Marketplace를 사용하여 Slurm용 Azure CycleCloud 작업 영역 배포

Slurm용 Azure CycleCloud 작업 영역은 HPC 및 AI 워크로드에 대한 컴퓨팅 및 스토리지 리소스를 관리하는 간단하고 안전하고 확장 가능한 방법을 제공하는 무료 Marketplace 애플리케이션입니다. 이 빠른 시작에서는 Marketplace 애플리케이션을 사용하여 Slurm용 CycleCloud 작업 영역을 설치합니다.

필수 구성 요소

이 빠른 시작의 경우 다음이 필요합니다.

  1. 활성 구독이 있는 Azure 계정
  2. 구독 수준에서 기여자사용자 액세스 관리자 역할

배포하는 방법

  • Azure Portal로그인합니다.
  • 왼쪽 위 + Create a Resource 옵션을 클릭합니다.
  • 상자에 Slurm 입력한 다음 slurmAzure CycleCloud 작업 영역 선택합니다.
  • slurm Azure CycleCloud 작업 영역 페이지에서만들기 선택합니다.

slurm Marketplace용 Azure CycleCloud 작업 영역 화면 스크린샷

기본

  • 새 Azure CycleCloud Workspace for Slurm 계정 페이지에서 다음 세부 정보를 입력하거나 선택합니다.
    • 구독: 아직 선택하지 않은 경우 사용할 구독을 선택합니다.
    • 지역: Slurm 환경에 CycleCloud 작업 영역을 배포하려는 Azure 지역을 선택합니다.
    • 리소스 그룹: Slurm 계정에 대한 Azure CycleCloud 작업 영역의 리소스 그룹을 선택하거나 새 리소스 그룹을 만듭니다.
    • CycleCloud VM 크기: 새 VM 크기를 선택하거나 기본 VM 크기를 유지합니다.
    • 관리 사용자: CycleCloud 관리자 계정의 이름과 암호를 입력합니다.
    • 관리자 SSH 공개 키: 관리자 계정의 공개 SSH 키를 직접 선택하거나 Azure의 SSH 키 리소스에 저장된 경우 선택합니다.

기본 옵션 화면 스크린샷

파일 시스템

사용자의 홈 디렉터리 - 새로 만들기

사용자의 홈 디렉터리를 배치할 위치를 지정합니다. 새 만들기 Builtin NFS 연결된 데이터 디스크가 있는 NFS 서버로 스케줄러 VM을 사용합니다. /shared 및 /home Builtin NFS에서 새 옵션 만들기 화면 파일 시스템 탑재 스크린샷

Azure NetApp Files 새 만들어 지정된 용량 및 서비스 수준의 ANF 계정, 풀 및 볼륨을 만듭니다. /shared 및 /home Azure NetApp 파일 만들기에 대한 파일 시스템 탑재 스크린샷

사용자의 홈 디렉터리 - 기존 디렉터리 사용

기존 NFS 탑재 지점이 있는 경우 기존 사용 옵션을 선택하고 탑재할 설정을 지정합니다. /shared 및 /home use 외부 NFS 옵션 화면 파일 시스템 탑재 스크린샷

추가 파일 시스템 탑재 - 새로 만들기

프로젝트 데이터에 대한 추가 파일 시스템을 탑재해야 하는 경우 새 파일 시스템을 만들거나 기존 파일 시스템을 지정할 수 있습니다. 새 Azure NetApp Files 볼륨 또는 Azure Managed Lustre Filesystem을 만들 수 있습니다.

새 Azure NetApp Files 만들기 위한 추가 파일 시스템 탑재의 스크린샷

새 Azure Managed Lustre 만들기 위한 추가 파일 시스템 탑재 스크린샷

추가 파일 시스템 탑재 - 기존 항목 사용

기존 외부 NFS 탑재 지점 또는 Azure Managed Lustre Filesystem이 있는 경우 탑재 옵션을 지정할 수 있습니다.

기존 외부 NFS 대한 추가 파일 시스템 탑재 스크린샷

네트워킹

새 Virtual Network 및 서브넷을 만들거나 기존 가상 네트워크 및 서브넷을 사용하려는 경우 여기에 지정합니다.

새 Virtual Network 만들기

새 만들기 위한 네트워킹 옵션 스크린샷

  • 대상으로 지정하는 컴퓨팅 노드 수와 일치하는 CIDR을 선택하고 기본 IP 주소를 지정합니다.
  • 회사 IT에서 제공하는 직접 연결이 없는 경우 Bastion을 만드는 것이 가장 좋습니다.
  • 인터넷에 대한 아웃바운드 연결을 제공하려면 NAT 게이트웨이를 만들어야 합니다. 이는 2025년에 필수가 될 것이며 일부 회사에서 이미 사고 정책을 시행하고 있습니다.
  • Bastion 및 VPN Gateway와 같은 서비스를 제공할 수 있는 피어링할 허브가 이미 있는 경우 기존 Virtual Network에 피어링합니다. 피어링된 VNET과 호환되는 기본 IP 주소를 선택해야 합니다. 피어링된 VNET에 게이트웨이가 있는 경우 게이트웨이 전송 허용을 확인합니다.

기존 Virtual Network 사용

기존 가상 네트워크를 사용하기 전에 Slurm 배포용 CycleCloud 작업 영역 계획 필수 구성 요소를 확인합니다.

기존 사용하기 위한 네트워킹 옵션 스크린샷

Slurm 설정

Scheduler 및 로그인 노드에 사용할 VM 크기 및 이미지를 지정합니다. 이미지는 연결된 URI를 사용하여 Azure Marketplace에서 제공되는 HPC 이미지입니다.

이미지 이름 URI
Alma Linux 8.7 almalinux:almalinux-hpc:8_7-hpc-gen2:latest
Ubuntu 20.04 microsoft-dsvm:ubuntu-hpc:2004:latest
Ubuntu 22.04 microsoft-dsvm:ubuntu-hpc:2204:latest
사용자 지정 이미지 이미지 URN 또는 이미지 ID를 지정해야 합니다.

Custom Image 선택하는 경우 기존 마켓플레이스 이미지에 대한 이미지 URN 또는 Azure Compute 갤러리의 이미지에 대한 이미지 ID를 지정해야 합니다.

Scheduler, 로그인 노드 및 컴퓨팅 노드에서 동일한 이미지를 사용하도록 하려면 Use image on all nodes 확인할 수도 있습니다.

시작 시 프로비전할 로그인 노드 수와 최대 수를 설정합니다. 마지막으로 상태 검사를 사용하도록 설정하면 HPC 및 GPU 파티션에 대한 노드 상태 검사를 실행하여 시작할 때 비정상 노드를 자동으로 제거합니다.

slurm 설정 스크린샷

Slurm 작업 회계를 사용하도록 설정하려면 확인란을 선택하여 연결 옵션을 표시합니다. 이전에 배포한 Azure Database for MySQL 유연한 서버 리소스가 있어야 합니다. 배포의 일부로 새 가상 네트워크를 만들 때 사용자 고유의 가상 네트워크를 제공하거나 VNET 피어링을 사용하도록 선택한 경우 FQDN 또는 개인 IP 제공을 통한 연결을 사용할 수 있습니다. 또한 새 가상 네트워크를 만들도록 선택한 경우 프라이빗 엔드포인트를 통한 연결을 사용할 수 있습니다.

작업 회계 데이터베이스, 직접 FQDN 대한 Slurm 설정 옵션 스크린샷

프라이빗 엔드포인트가 작업 회계 데이터베이스에 대한 slurm 설정 옵션의 스크린샷

파티션 설정

Slurm용 Azure CycleCloud 작업 영역에는 3개의 정의된 Slurm 파티션이 함께 제공됩니다.

  • HTC: MPI가 아닌 작업의 경우
  • HPC : 주로 InfiniBand 지원과 함께 VM 형식을 사용하는 긴밀하게 결합된 MPI 작업의 경우
  • GPU : MPI 및 비 MPI GPU 작업의 경우

각 파티션에 대해 CycleCloud에서 동적으로 프로비전할 이미지 및 최대 노드 수를 설정할 수 있습니다. 일반적으로 HPC 및 GPU 작업에 스폿 인스턴스를 사용하는 것이 모범 사례는 아니기 때문에 HTC 파티션만 스폿 인스턴스를 사용할 수 있습니다. 그러나 CycleCloud UI에서 배포한 후에 이러한 설정을 재정의할 수 있습니다.

파티션 설정 옵션 스크린샷

태그

필요한 리소스에 대한 관련 태그를 설정합니다. Node Array 태그는 CycleCloud에서 동적으로 프로비전된 Virtual Machines에 적용됩니다.

태그 옵션 스크린샷

Review+Create

옵션을 검토합니다. 이 단계에서는 일부 유효성 검사도 처리합니다. 검토 스크린샷

전달되면 만들기 단추를 클릭하여 배포 진행 중인 배포 스크린샷을 초기화합니다

배포 상태 및 단계를 따릅니다.

배포 확인

배포 중에 지정된 사용자 이름 및 SSH 키를 사용하여 Bastion을 사용하여 ccw-cyclecloud-vm 연결합니다.

Bastion 연결 메뉴 Bastion 연결 옵션 스크린샷 스크린샷

연결되면 cloud-init 로그를 확인하여 모든 것이 올바른지 확인합니다.

$tail -f -n 25 /var/log/cloud-init-output.log
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Starting cluster ccws....
----------------------------
ccws : allocation -> started
----------------------------
Resource group: 
Cluster nodes:
    scheduler: Off -- --  
Total nodes: 1
CC start_cluster successful
/
exiting after install
Cloud-init v. 23.4-7.el8_10.alma.1 running 'modules:final' at Wed, 12 Jun 2024 10:15:53 +0000. Up 11.84 seconds.
Cloud-init v. 23.4-7.el8_10.alma.1 finished at Wed, 12 Jun 2024 10:28:15 +0000. Datasource DataSourceAzure [seed=/dev/sr0].  Up 754.29 seconds

그런 다음 클라이언트 컴퓨터와 CycleCloud VM 간의 연결을 설정합니다. 회사에서 허용하는 경우 회사 IT, VPN, Bastion 터널링, 연결된 공용 IP에서 이 작업을 수행할 수 있습니다. https://<cycleccloud_ip>검색하여 웹 인터페이스에 연결하고 배포 중에 제공된 사용자 이름 및 암호를 사용하여 인증합니다. Scheduler와 로그인 노드가 모두 실행되고 있는지 확인합니다.

로그인 노드에 연결

Bastion을 사용하는 경우 유틸리티 스크립트 util/ssh_thru_bastion.sh 또는 util/tunnel_thru_bastion.sh 중 하나를 사용하여 연결합니다(여기서제공). Bastion을 사용하지 않는 경우 직접 연결을 설정해야 합니다.