다음을 통해 공유


CycleCloud 클러스터

CycleCloud에서 클러스터 라는 용어는 단일 시스템으로 함께 작동하는 연결된 컴퓨터(노드) 그룹을 설명합니다. 클러스터를 중첩할 수 있습니다. 예를 들어 그리드 엔진 스케줄러 헤드 노드 및 컴퓨팅 노드로 구성된 컴퓨팅 클러스터는 여러 메타데이터 및 스토리지 서버로 구성된 BeeGFS 클러스터를 탑재할 수 있습니다. 컴퓨팅 및 스토리지 클러스터는 모두 단일 부모 HPC 클러스터 또는 시스템에서 결합됩니다.

개요 다이어그램

노드 및 노드 배열

클러스터는 기본적으로 노드로 구성되며, 각 노드는 HPC 시스템에서 특정 역할을 수행합니다. 용어 노드VM은 때때로 서로 바꿔서 사용되지만 CycleCloud에서는 의미상 분리됩니다. 클러스터를 구성하는 노드는 준비 및 구성 프로세스를 완료하는 Azure의 가상 머신입니다. 즉, Azure 인프라 서비스 계층에서 VM 을 만듭니다. 소프트웨어를 설치하고 구성 단계를 완료한 후 VM 은 HPC 클러스터의 노드 입니다.

아키텍처 다이어그램:

CycleCloud에는 독립 실행형 노드 및 노드 배열이라는 두 가지 유형의 노드가 있습니다. 노드 배열은 동일하게 구성된 노드의 컬렉션입니다. 노드와 노드 배열 구분은 DevOps Pets와 가축의 비유를 따릅니다. 독립 실행형 노드는 Azure의 단일 VM에서 생성됩니다. 노드 배열은 가상 머신 확장 집합에 매핑됩니다.

그러나 노드 배열과 가상 머신 확장 집합 간에는 중요한 차이점이 있습니다. 단일 노드 배열은 여러 가상 머신 확장 집합을 구성할 수 있습니다. 이 구성을 사용하면 크기가 다른 VM 또는 다른 VM 제품군의 VM에서 단일 노드 배열을 빌드할 수 있습니다. 유일한 제약 조건은 노드 배열의 모든 노드가 클러스터에서 동일한 역할을 수행한다는 것입니다. 예를 들어 모든 노드는 스케줄러의 단일 큐에 리소스를 제공합니다.

클러스터 템플릿

토폴로지 또는 텍스트 템플릿에서 CycleCloud 클러스터에서 노드를 구성하는 방법을 정의합니다. 템플릿은 클러스터 노드 간의 관계를 배치합니다. 중첩된 클러스터가 있는 경우 템플릿은 클러스터의 부모-자식 관계를 정의합니다. 템플릿은 각 노드의 역할도 정의합니다.

INI 형식으로 클러스터 템플릿을 정의합니다. 대괄호로 구분된 섹션을 [] 사용하고 클러스터, 노드 및 노드 배열을 정의합니다. INI 파일의 기본 요소는 각 섹션의 구성 세부 정보를 제공하는 키-값 쌍 어설션입니다. 이러한 구성 세부 정보는 VM을 부팅하는 가상 머신 이미지 및 VM에 대한 서브넷과 같은 클러스터의 각 노드를 만드는 컨텍스트 정보를 제공합니다. 자세한 내용은 CycleCloud 클러스터 템플릿을 참조하세요.

노드 준비 및 구성

CycleCloud는 클러스터 템플릿에 정의된 기본 VM 이미지에서 VM을 프로비전합니다. 부팅 프로세스 중에 CycleCloud 에이전트(Jetpack)에서 관리하는 일련의 단계를 통해 VM에서 OS를 초기화하고 구성하여 작동하는 HPC 노드로 변환합니다. 이러한 단계는 예약 소프트웨어를 설치 및 구성하는 스크립트부터 파일 시스템 탑재를 위한 마지막 마일 구성에 이르기까지 다양합니다.

노드 준비 다이어그램

각 노드의 구성 섹션에서 cluster-init 사양을 정의합니다. 부팅 VM은 이러한 사양을 사용하여 클러스터에서 특정 역할을 준비합니다. CycleCloud는 각 노드를 준비하고 구성하기 위한 인프라 자동화 플랫폼으로 Chef 를 사용합니다. 각 cluster-init 사양 은 부팅 VM에서 실행해야 하는 하나 이상의 Chef 역할 및/또는 Cookbook Recipes 에 매핑됩니다.

CycleCloud는 중앙 집중식 Chef 서버에 의존하지 않는 독립 실행형 모드에서 Chef를 사용합니다. 대신 각 VM을 준비하는 데 필요한 Chef Cookbook의 전체 집합은 VM 부팅 단계 중에 사용자에 속한 Azure Storage 계정에서 다운로드됩니다. 이 Cookbook 집합은 클러스터 생성 단계 중에 CycleCloud 애플리케이션 서버에서 스토리지 계정으로 캐시됩니다.

이러한 쿡북을 다운로드한 후 Chef는 노드의 cluster-init 사양에 정의된 레시피 목록을 처리합니다. VM을 작동하는 HPC 노드로 변환하는 준비 및 구성 단계를 트리거합니다.

사양을 프로젝트라는 논리 컬렉션으로 작성합니다. 예를 들어 Slurm과 같은 일괄 처리 스케줄러에 대한 프로젝트는 적어도 두 가지 사양으로 구성됩니다. 하나는 스케줄러 헤드 노드용이고 다른 하나는 컴퓨팅 노드용으로 구성됩니다. CycleCloud 프로젝트에 대해 자세히 알아보세요.

노드 오케스트레이션

클러스터에서 사용되는 스케줄러 및 서비스에 따라 CycleCloud는 때때로 다른 노드를 조정하여 클러스터의 노드 준비 단계를 오케스트레이션해야 합니다. 예를 들어 일부 스케줄러는 각 컴퓨팅 노드가 스케줄러 디먼에 자신을 등록하도록 요구합니다. 이 요구 사항은 컴퓨팅 노드가 헤드 노드의 주소를 인식해야 한다는 것을 의미합니다. 또한 컴퓨팅 노드는 헤드 노드가 완전히 준비되었다는 것을 인식하고 그렇지 않은 경우 기다려야 합니다.

CycleCloud는 파일 시스템 서버-클라이언트 관계에 서비스 검색 의 이 요소를 사용합니다.

추가 정보