Microsoft HPC Pack
Microsoft HPC 팩 은 Windows Server 기술로 Microsoft Azure를 기반으로 구축된 무료 HPC 솔루션이며 광범위한 HPC 워크로드를 지원합니다. 이 페이지에서는 Cyclecloud와 HPC 팩 통합을 위한 기능 및 구성 세부 정보를 설명합니다.
제한 사항 및 지원되는 버전
Microsoft HPC Pack 2016(업데이트 3 포함) 및 Microsoft HPC Pack 2019 는 아래 제한 사항과 함께 CycleCloud에서 지원됩니다.
- 클러스터는 Active Directory 도메인 만들어야 합니다.
- 클러스터는 단일 헤드 노드만 포함할 수 있습니다.
- 헤드 노드의 고가용성이 아직 지원되지 않습니다.
- 헤드 노드 VM 이미지 사용자 지정은 지원되지 않습니다.
- Linux 컴퓨팅 노드는 아직 지원되지 않습니다.
- 헤드 노드는 Nuget 이진 및 Python3을 다운로드하려면 아웃바운드 인터넷 액세스가 필요합니다.
- CLI 및 cloud-init 구성은 아직 지원되지 않습니다.
사전 요구 사항
Active Directory 도메인
현재 모든 HPC 팩 노드는 Active Directory 도메인 조인되어야 합니다. 회사 네트워크와 사이트 및 사이트 간의 VPN 또는 ExpressRoute 연결이 있는 가상 네트워크에 HPC 팩 클러스터를 배포하는 경우 일반적으로 기존 Active Directory 도메인 이미 있습니다. 가상 네트워크에 AD 도메인이 아직 없는 경우 헤드 노드를 도메인 컨트롤러로 승격하여 새 AD 도메인을 만들도록 선택할 수 있습니다.
Azure Key Vault
Microsoft HPC Pack은 노드 통신을 보호하기 위해 PFX 인증서가 필요하며 AD 도메인 사용자 자격 증명이 노드를 AD 도메인에 조인해야 합니다. 템플릿에서 PFX 파일, 보호 암호 및 사용자 암호를 직접 지정할 수 있지만 인증서 및 사용자 암호를 안전하게 처리하기 위해 Azure Key Vault 사용하는 것이 좋습니다. Azure Key Vault 인증서 만들기를 참조하세요.
또한 클러스터를 만들 때 노드를 도메인에 조인하려면 AD 관리자 계정의 사용자 이름 및 암호가 필요합니다. Azure Key Vault 사용하는 것이 좋습니다.
Azure 사용자 할당 관리 ID
인증서 및 자격 증명에 Azure Key Vault 사용하려면 Azure 사용자 할당 관리 ID를 만들고 비밀 및 Azure Key Vault 인증서 모두에 대한 Get' 권한을 부여해야 합니다.
Key Vault 액세스를 사용하여 Key Vault 및 관리 ID를 만들기 위한 이 Key Vault 자습서를 참조할 수 있습니다.
Azure Role-Based Access Control 사용하여 관리 ID에 Key Vault 권한을 할당하는 것이 좋습니다.
HPC 팩 노드 역할
HPC 팩 클러스터에는 세 가지 노드 역할이 있습니다.
- 헤드 노드: 클러스터 관리 및 작업 예약 서비스를 제공합니다. 현재 로컬 데이터베이스가 있는 단일 헤드 노드만 지원됩니다.
- Broker 노드: SOA 클라이언트에서 요청을 수신하고, 컴퓨팅 노드의 서비스 호스트에 배포한 다음, 응답을 수집하고 클라이언트로 다시 보냅니다. broker 노드는 broker 노드 배열에 만들어집니다. 클러스터에서 SOA 워크로드를 실행하려면 broker 노드를 만들어야 합니다.
- 컴퓨팅 노드: 클러스터 작업을 수락하고 실행합니다. 컴퓨팅 노드는 cn 노드 배열에 만들어집니다.
새 HPC 팩 클러스터 만들기
Schedulers에서 Microsoft HPC 팩 아이콘을 클릭하여 새 Microsoft HPC 팩 클러스터를 만들 수 있습니다.
정보 페이지에서 클러스터의 고유한 클러스터 이름을 지정합니다. 헤드 노드의 NetBIOS 컴퓨터 이름으로 사용되므로 AD 도메인에서 고유하고 명명 규칙을 준수하는지 확인합니다.
기본 설정
- HPC 팩 버전: HPC 팩 2019 또는 HPC 팩 2016(업데이트 3 포함)을 선택할 수 있습니다. 최신 HPC 팩 버전(예: HPC Pack 2019)을 사용하는 것이 좋습니다.
- Virtual Machines: HPC 팩 클러스터를 만들 Azure 지역 및 각 클러스터 노드 역할에 대한 VM 유형을 선택할 수 있습니다. 클러스터에서 SOA 워크로드를 실행하려는 경우 Num. Broker 를 지정하여 하나 이상의 Broker 노드를 만들 수도 있습니다.
자동 크기 조정
클러스터는 컴퓨팅 노드 없이 시작됩니다. 자동 크기 조정을 사용하도록 설정하여 클러스터 워크로드에 따라 컴퓨팅 노드를 자동으로 확장/축소할 수 있습니다. Max Cores를 사용하여 클러스터의 최대 컴퓨팅 vCPU 코어 수를 지정할 수 있습니다. 자동 크기 조정기는 헤드 노드에서 Windows 예약 작업으로 1분마다 실행됩니다.
컴퓨팅 노드에는 할당 취소 또는종료라는 두 가지 축소 옵션이 있습니다. 종료 옵션을 선택하면 HPC 팩 클러스터는 항상 스케일 다운 시 컴퓨팅 노드 VM을 제거합니다. 할당 취소 옵션을 선택하는 경우 HPC 팩 클러스터는 스케일 다운 시 컴퓨팅 노드 VM의 할당을 취소하고 구성 가능한 일 수(VM 보존 일)까지 유지 관리합니다. 할당 취소된 컴퓨팅 노드는 여전히 유지되는 한 HPC 팩 클러스터에서 제거되지 않습니다. 그러나 오프라인으로 전환되고 HPC 팩 클러스터에서 연결할 수 없는 것으로 표시됩니다. 할당 취소 옵션은 확장 시 노드 준비 시간을 크게 줄일 수 있고 할당 취소된 VM의 디스크 스토리지에 대해서만 비용을 지불할 수 있으므로 HPC 팩 클러스터에 권장됩니다.
인프라 설정
- Virtual Network: HPC 팩 클러스터를 만들 기존 가상 네트워크 및 서브넷을 선택할 수 있습니다.
- Active Directory 도메인: 가상 네트워크에 AD 도메인이 이미 있는 경우 전체 도메인 이름 및 클러스터 노드가 조인될 OU 경로를 지정합니다. 또는 새 AD 도메인 을 선택하여 헤드 노드를 도메인 컨트롤러로 승격하여 새 AD 도메인을 만듭니다.
- 비밀 및 인증서: KeyVault를 사용하여 Azure Key Vault 사용하여 노드 통신 인증서 및 사용자 암호를 전달하는 것이 좋습니다. MSI ID의 드롭다운 목록에서 필수 구성 요소에서 만든 Azure 사용자 할당 ID를 선택하고 필수 구성 요소에서 만든 Azure Key Vault 이름을 지정합니다.
- 사용자 자격 증명: 사용자 이름에서 도메인 사용자 이름을 지정합니다. 암호 비밀에서 도메인 사용자 암호를 저장하기 위해 필수 구성 요소에서 만든 Azure Key Vault 비밀 이름을 지정합니다.
- PFX 인증서: 인증서 이름에서 필수 구성 요소에서 만든 Azure Key Vault 인증서 이름을 지정합니다.
고급 설정
- Azure 설정: 드롭다운 목록에서 Azure 클라우드 자격 증명 을 선택합니다.
- 클러스터 소프트웨어: 각 클러스터 노드 역할에 대한 운영 체제(OS)를 지정합니다.
- 고급 네트워킹: 기본적으로 가상 네트워크에 구성된 DNS 서버는 모든 HPC 노드에 적용되며, 다른 DNS 서버를 사용하려는 경우 선택적으로 DNS 서버를 지정할 수 있습니다. 필요에 따라 HN 공용 IP 를 선택하여 헤드 노드에 대한 공용 IP 주소를 할당할 수도 있습니다.
azhpcpack CLI
azhpcpack.ps1 CLI는 모든 자동 크기 조정 동작(예약된 작업 호출azhpcpack.ps1 autoscale
)에 대한 기본 인터페이스입니다. CLI는 C:\cycle\hpcpack-autoscaler\bin에서 사용할 수 있습니다.
CLI를 사용하여 자동 크기 조정 문제를 진단하거나 헤드 노드 내부에서 클러스터 크기 조정을 수동으로 제어할 수 있습니다.
명령 | Description |
---|---|
자동 크기 조정 | 노드 만들기, 삭제 및 조인을 비롯한 엔드 투 엔드 자동 크기 조정 프로세스입니다. |
버킷 | 제한 등과 같은 자동 크기 조정 버킷 정보를 출력합니다. |
config | 전처리 후 유효 자동 크기 조정 구성을 stdout에 씁니다. |
create_nodes | 다양한 제약 조건이 지정된 노드 집합을 만듭니다. nodemanager 인터페이스의 CLI 버전입니다. |
default_output_columns | 선택적 명령에 대한 기본 출력 열이 무엇인지 출력합니다. |
delete_nodes | 노드를 삭제하고 클러스터에서 제거합니다. |
initconfig | 초기 자동 크기 조정 구성을 만듭니다. stdout에 씁니다. |
제한 | 각 버킷에 대한 자세한 제한 집합을 씁니다. 필드 수로 인해 기본적으로 json으로 설정됩니다. |
nodes | 쿼리 노드. |
refresh_autocomplete | 클러스터 특정 리소스 및 노드에 대한 로컬 자동 완성 정보를 새로 고칩니다. |
retry_failed_nodes | 실패한 상태의 모든 노드를 다시 시도합니다. |
validate_constraint | 그런 다음 출력을 JSON 하나 이상의 제약 조건으로 유효성을 검사합니다. |