CycleCloud: 핵심 개념

가장 기본적인 HPC(고성능 컴퓨팅) 시스템은 성능이 뛰어난 파일 시스템에서 지원되고 대기 시간이 짧은 네트워크에서 상호 연결된 계산 리소스 풀입니다. 이러한 계산 리소스는 일반적으로 작업을 예약하는 소프트웨어 애플리케이션인 HPC Schedulers에서 관리됩니다.

Virtual Machines, 디스크 및 네트워크 인터페이스와 같은 기본 인프라 단위에서 Azure에서 개별 HPC 시스템을 빌드하는 것은 번거로울 수 있습니다. 특히 이러한 리소스가 임시적인 경우 HPC 작업을 해결하는 데 필요한 시간 동안만 존재합니다. 또한 운영자는 다양한 사업부, 연구 팀 또는 개인에 맞게 조정할 수 있는 별도의 여러 HPC 환경을 만들려고 합니다. 이러한 여러 HPC 시스템을 관리하는 것은 운영상의 복잡성일 수 있습니다.

CycleCloud란?

Azure CycleCloud는 Azure에서 HPC 시스템을 구성하는 데 도움이 되는 도구입니다. 기본 Azure 구성 요소를 관리하는 번거로움 없이 HPC 작업에 따라 탄력적으로 크기가 조정되도록 이러한 시스템을 오케스트레이션합니다. CycleCloud는 HPC 관리자 및 사용자, 특히 익숙한 내부 HPC 인프라와 유사한 Azure에서 HPC 시스템을 빌드하려는 사용자를 위한 숙련된 HPC 전문가 팀에 의해 설계되었습니다.

오케스트레이션 다이어그램

운영적으로 CycleCloud는 Azure의 Linux VM 또는 Azure API 및 리소스에 대한 액세스 권한이 있는 온-프레미스 서버에 설치된 애플리케이션 서버입니다. CycleCloud는 스케줄러와 사용자 애플리케이션을 통합할 수 있는 CycleCloud 클러스터를 생성하기 위해 Azure VM을 획득하고 프로비저닝합니다. 또한 CycleCloud는 여러 HPC 스케줄러 및 Azure VM에서 실행되는 CycleCloud 에이전트에 대한 자동 크기 조정 통합을 제공합니다.

애플리케이션 서버

이 애플리케이션 서버는 다음을 제공합니다.

  1. Azure에서 HPC 시스템을 만들고 관리하기 위한 REST API입니다.
  2. 사용자가 HPC 시스템을 관리하고 모니터링할 수 있는 그래픽 사용자 인터페이스입니다.
  3. CycleCloud를 기존 워크플로에 쉽게 통합하는 CLI입니다.
  4. 클러스터 및 노드 상태를 캐시하는 내부 NoSQL 데이터 저장소입니다.
  5. Azure VM을 획득하고 관리하는 할당 및 오케스트레이션 시스템
  6. 상태 변경 내용을 경고하는 기존 VM에 대한 노드 모니터링 시스템입니다.

통합

또한 CycleCloud는 공통 스케줄러 및 Azure VM에 여러 통합을 제공합니다. 다음을 제공합니다.

  1. 프로비전된 VM을 HPC 노드로 변환하기 위한 노드 준비 및 구성 시스템입니다.
  2. HPC 스케줄러 작업 요구 사항을 Azure 리소스로 변환하는 HPC 스케줄러에 대한 자동 크기 조정

CycleCloud에서 수행할 수 있는 일

CycleCloud는 HPC 스케줄러에서 애플리케이션 설치 및 데이터 액세스를 위한 파일 시스템 탑재 지점에 이르기까지 Azure에 HPC 시스템을 배포하고 내부적으로 실행된 인프라를 복제하려는 HPC 운영자(관리자 및 사용자)를 대상으로 합니다. 이러한 사용자는 특히 내부 프로세스를 재정비하지 않고도 애플리케이션, 워크플로 엔진 및 계산 파이프라인을 지원하는 방법을 찾고 있습니다.

CycleCloud는 클러스터 토폴로지(클러스터 노드의 수 및 유형)부터 각 노드에 배포될 탑재 지점 및 애플리케이션까지 HPC 시스템을 설명할 수 있는 풍부하고 선언적인 템플릿 구문을 제공합니다. CycleCloud는 PBSPro, Slurm, IBM LSF, Grid Engine 및 HT Condor와 같은 HPC 스케줄러와 함께 작동하도록 설계되어 사용자가 각 스케줄러에서 서로 다른 큐를 만들고 Azure에서 서로 다른 VM 크기의 컴퓨팅 노드에 매핑할 수 있도록 합니다. 또한 자동 크기 조정 플러그 인은 각 시스템의 작업 큐를 수신 대기하고 애플리케이션 서버에서 실행되는 자동 크기 조정 REST API와 상호 작용하여 그에 따라 컴퓨팅 클러스터의 크기를 조정하는 스케줄러 헤드 노드와 통합됩니다.

CycleCloud는 HPC 노드를 프로비저닝하고 만드는 것 외에도 가상 머신을 준비하고 구성하기 위한 프레임워크를 제공합니다. 기본적으로 완전 VM을 HPC 시스템의 기능 구성 요소로 변환하기 위한 시스템을 제공합니다. 이 프레임워크를 통해 사용자는 VM에서 마지막 마일 구성을 수행할 수 있습니다.

또한 CycleCloud는 다음과 같은 기능을 제공합니다.

  • 사용자 액세스

    CycleCloud는 HPC 시스템의 각 노드에서 로컬 사용자 계정을 만들기 위한 기본 제공 지원과 함께 제공됩니다. 이 시스템을 사용하면 디렉터리 서비스를 배포하지 않고 단일 관리 평면을 통해 사용자 액세스를 제어할 수 있습니다.

  • Monitoring

    노드 수준 메트릭이 수집되어 CycleCloud UI에 표시됩니다. 이는 시스템의 부하를 모니터링하는 데 유용하며 보고 및 경고 서비스에 연결할 수 있습니다.

  • Logging

    CycleCloud는 노드 및 애플리케이션 서버 수준에서 활동 및 이벤트를 로깅하기 위한 시스템을 제공합니다.

  • 이식성

    시스템은 특정 VM 이미지 또는 운영 체제를 사용할 것을 요구하지 않습니다. CycleCloud는 HPC 노드의 주요 Windows 및 Linux 운영 체제를 지원합니다. 또한 사용자는 자신의 VM 이미지를 빌드하고 HPC 시스템에서 사용할 수 있습니다.

  • 코드 제공 인프라(Infrastructure as code)

    CycleCloud에서 만든 모든 항목은 템플릿 및 구성 스크립트에 정의되므로 CycleCloud를 통해 배포된 HPC 시스템은 반복 가능하고 이식 가능합니다. 이렇게 하면 샌드박스, 개발, 테스트 및 프로덕션과 같은 다양한 환경에서 HPC 시스템을 배포할 때 운영자의 일관성을 제공합니다. 운영자는 서로 다른 비즈니스 그룹 또는 팀에 동일한 HPC 시스템을 배포하여 회계 문제를 분리할 수도 있습니다.

  • 느슨하게 결합되거나 긴밀하게 결합된 워크로드

    CycleCloud에서 만든 HPC 클러스터는 크기 조정(클러스터 크기)이 주요 관심사인 느슨하게 결합되거나 당황스러운 병렬 작업을 지원하도록 설계되었습니다. 또한 CycleCloud 클러스터는 Azure의 Infiniband 백본을 염두에 두고 설계되어 노드 근접성 및 네트워크 대기 시간이 중요한 긴밀하게 결합되거나 MPI 기반 워크로드를 지원합니다. 이러한 스케일 아웃 및 긴밀하게 결합된 개념은 CycleCloud에서 지원하는 스케줄러 통합에 배어 있습니다.