클러스터 워크로드에 따라 Azure에서 HPC 팩 클러스터 리소스를 자동으로 증가 및 축소
HPC 팩 클러스터에 Azure "버스트" 노드(Windows 및 Linux 모두)를 배포하거나 Azure VM에서 HPC 팩 클러스터를 만드는 경우 클러스터의 워크로드에 따라 노드 또는 코어와 같은 클러스터 리소스를 자동으로 늘리거나 축소하는 방법을 원할 수 있습니다. 이러한 방식으로 클러스터 리소스의 크기를 조정하면 Azure 리소스를 보다 효율적으로 사용하고 비용을 제어할 수 있습니다.
HPC Pack 2016 이상 버전을 사용하면 Windows PaaS 노드, Azure IaaS VM 노드, Azure 일괄 처리 풀 노드 및 Azure VM 확장 집합 노드를 포함하여 Azure 클라우드를 실행하는 HPC 팩 컴퓨팅 노드를 자동으로 확장 및 축소할 수 있습니다. 그러나 노드 유형이 다르면 자동 증가 축소 논리가 다릅니다. 요약은 다음과 같습니다.
노드 유형 | 사용 방법 | 전제 조건 | 모니터링 방법 |
---|---|---|---|
Azure PaaS 노드 | powerShell cmdlet Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Azure PaaS 노드에 대한 노드 템플릿 2. 클러스터에 추가된 노드 |
> 리소스 관리 -> Operations -> AzureOperations의 "자동 증가 축소 보고서" |
Azure IaaS 노드 | powerShell cmdlet Set-HpcClusterProperty -EnableGrowShrink 1 |
1. 구성된 Azure 서비스 주체 2. 클러스터에 추가된 노드 |
> 리소스 관리 -> Operations -> AzureOperations의 "자동 증가 축소 보고서" |
Azure VM 확장 집합 노드 | powerShell cmdlet Set-HpcClusterProperty -EnableGrowShrink 1 |
1. 구성된 Azure 서비스 주체 2. 클러스터에 추가된 노드 |
> 리소스 관리 -> Operations -> AzureOperations의 "자동 증가 축소 보고서" |
Azure Batch 풀 | Azure Batch 풀 노드 템플릿 | Azure Batch 풀을 시작해야 합니다. | Azure Portal 또는 Azure Batch Explorer |
참고 항목
이 기능은 Azure에서 기존 HPC 컴퓨팅 노드를 시작하거나 중지하여 Azure 리소스를 자동으로 늘리거나 축소하며, 새 HPC 컴퓨팅 노드를 자동으로 만들거나 기존 노드를 삭제하지 않습니다.
Azure VM 확장 집합 노드의 자동 크기 조정은 HPC Pack 2016 업데이트 2 이상에서 지원됩니다.
Azure IaaS VM 노드 또는 Azure VM 확장 집합 노드의 자동 크기 조정
HPC Pack 클러스터에서 Azure IaaS VM 노드 또는 Azure VM 확장 집합 노드를 자동으로 확장하거나 축소하려면 Azure 구독을 관리하도록 인증서를 사용하여 Azure 서비스 주체를 구성해야 합니다. PowerShell 명령 또는 클러스터 관리자 GUI를 사용하여 구성할 수 있습니다.
Azure 서비스 주체가 구성된 후 HPC Pack AutoGrowShrink cmdlet사용하여 자동 증가 축소를 사용하도록 설정할 수 있습니다.
참고 항목
기본적으로 HPC Pack에서 만든 Azure 서비스 주체에는 구독 수준에서
powershell을 사용하여 Azure 서비스 주체 구성
클러스터 배포 후 원격 데스크톱을 통해 하나의 헤드 노드에 연결합니다.
인증서(프라이빗 키가 있는 PFX 형식)를 각 헤드 노드에 업로드하고 Cert:\LocalMachine\My에 설치합니다. 이 인증서는 Azure 서비스 주체를 만드는 데 사용됩니다. 인증서가 없는 경우 먼저 자체 서명된 인증서를 만들 수 있습니다.
관리자 권한으로 Azure PowerShell을 시작하고 한 헤드 노드에서 다음 명령을 실행합니다.
cd $env:CCP_HOME\bin Connect-AzureRmAccount
계정이 둘 이상의 Azure Active Directory 테넌트 또는 Azure 구독에 있는 경우 다음 명령을 실행하여 올바른 테넌트 및 구독을 선택할 수 있습니다.
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
다음 명령을 실행하여 현재 선택한 테넌트 및 구독을 확인합니다.
Get-AzureRMContext
다음 스크립트 실행
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
DisplayName
- Azure Active Application 표시 이름입니다. 애플리케이션이 없으면 Azure Active Directory에서 만들어집니다. HomePage - 애플리케이션의 홈페이지입니다. 앞의 예제와 같이 더미 URL을 구성할 수 있습니다.
IdentifierUri - 애플리케이션의 식별자입니다. 앞의 예제와 같이 더미 URL을 구성할 수 있습니다.
CertificateThumbprint - 2단계에서 헤드 노드에 설치한 인증서의 지문입니다.
TenantId - Azure Active Directory의 테넌트 ID입니다. Azure Active Directory 포털 속성 페이지에서 테넌트 ID를 가져올 수 있습니다.
ConfigARMAutoGrowShrinkCert.ps1대한 자세한 내용은
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
실행합니다.구성 후 HPC Powershell 명령을 통해 레지스트리 키 설정(ApplicationId, TenantId, Thumbprint 포함)을 확인할 수 있습니다.
Get-HpcClusterRegistry
Cluster Manager GUI를 사용하여 Azure 서비스 주체 구성
한 헤드 노드에서 HPC 팩 클러스터 관리자를 엽니다.
Goto Configuration ->배포 할 일 목록 페이지.
Azure 배포 구성
설정을 클릭합니다. 이 마법사를 진행하면 azure VM이 프로비저닝되는 azure 서비스 주체,
Azure 리소스 그룹 및VNet 구성하고 클러스터 통신에 사용할 인증서를구성하는 데 도움이 됩니다. 마법사는 다음과 같이 실행됩니다. azure 배포 설정 마법사
구성 유효성 검사
Azure 서비스 주체를 성공적으로 구성한 후에는 HPC 팩을 통해 Azure IaaS VM 노드를 시작하고 중지할 수 있습니다.
azure에서 HPC 팩 업데이트 1 또는 이전 버전
Azure IaaS VM 노드가 아직 없는 경우 IaaS 노드 추가 따라 Azure IaaS 노드 템플릿을 만들고 IaaS VM 노드를 클러스터에 추가할 수 있습니다.
Azure PaaS 노드의 자동 크기 조정
HPC Pack 클러스터에서 자동 증가 축소 Azure Windows PaaS 노드를 사용하도록 설정하기 전에 Azure 노드 템플릿을 확인하여 시간 일정 기반이 아닌 수동으로 시작 및 중지하도록 Azure PaaS 노드를 구성해야 합니다.
HPC 팩 자동 증가 축소 서비스는 클러스터에 새 리소스를 추가하지 않습니다. 따라서 Azure PaaS 노드 템플릿을 만든 후에는 다음을 수행하여 클러스터에 노드를 먼저 추가해야 합니다.
- HPC 클러스터 관리자를 시작하고 리소스 관리 창으로 이동합니다.
- 작업 창에서 노드 추가... 작업을 클릭하고 마법사에서 "Windows Azure 노드 추가"를 선택합니다.
- 마법사를 진행하면서 마침클릭합니다. 배포되지 않은 상태에서 여러 노드가 클러스터에 추가됩니다.
- HPC Pack AutoGrowShrink cmdlet 사용하여 자동 증가 축소 사용
참고 항목
HPC 팩이 대기 중인 작업에 대한 리소스를 증가하면 3단계에서 추가한 노드 수가 최대 증가합니다. 클러스터에 리소스를 더 이상 추가하지 않습니다. 따라서 구독 용량을 확인하고 클러스터에 적절한 수의 노드를 추가할 수 있습니다.
Azure Batch 풀의 자동 크기 조정
기본적으로 HPC 팩에서 Azure Batch 풀 템플릿을 만들 때 풀에 대해 정의된 기본 자동 크기 조정 수식이 있습니다. 그러나 이 문서
클러스터 자동 증가 및 축소 속성을 설정하는 HPC PowerShell 명령
다음은 AutoGrowShrink
이러한 명령을 실행하려면 관리자 권한으로 클러스터 헤드 노드에서 HPC PowerShell을 시작합니다.
AutoGrowShrink 현재 설정 보려면
Get-HpcClusterProperty –AutoGrowShrink
AutoGrowShrink 속성 사용하도록 설정하려면
Set-HpcClusterProperty –EnableGrowShrink 1
AutoGrowShrink 속성 사용하지 않도록 설정하려면
Set-HpcClusterProperty –EnableGrowShrink 0
증가 간격을 분 단위로 변경하려면
Set-HpcClusterProperty –GrowInterval <interval>
축소 간격을 분 단위로 변경하려면
Set-HpcClusterProperty –ShrinkInterval <interval>
AutoGrowShrink 현재 구성을 보려면
Get-HpcClusterProperty –AutoGrowShrink
AutoGrowShrink 노드 그룹을 제외하려면
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
참고 항목
이 매개 변수는 HPC Pack 2016부터 지원됩니다.
AutoGrowShrink 매개 변수
다음은 Set-HpcClusterProperty 명령을 사용하여 수정할 수 있는 AutoGrowShrink 매개 변수입니다.
enableGrowShrink
- AutoGrowShrink 속성을 사용하거나 사용하지 않도록 설정하려면 전환합니다.TasksPerResourceUnit - 하나의 리소스 단위를 늘릴 작업 수입니다(작업의 리소스 단위 유형에 따라). 기본값은 작업당 하나의 리소스 단위를 늘리는 것입니다.
GrowThreshold - 자동 증가를 트리거하기 위해 대기 중인 작업이 있는 작업의 임계값입니다. 기본값은 1입니다. 즉, 큐에 대기 중인 작업이 1개 이상 있는 경우 노드가 자동으로 증가합니다.
GrowInterval - 자동 증가를 트리거하는 간격(분)입니다. 기본 간격은 5분입니다.
ShrinkInterval - 자동 축소를 트리거하는 간격(분)입니다. 기본 간격은 5분입니다.|
ShrinkIdleTimes - 노드가 유휴 상태임을 나타내기 위해 축소할 연속 검사 수입니다. 기본값은 3회입니다. 예를 들어 ShrinkInterval 5분인 경우 HPC 팩은 노드가 5분마다 유휴 상태인지 확인합니다. 노드가 3개의 연속 검사(15분)에 대해 유휴 상태인 경우 HPC 팩은 해당 노드를 축소하기로 결정합니다.
ExtraNodesGrowRatio - MPI(메시지 전달 인터페이스) 작업에 대해 증가할 노드의 추가 비율입니다. 기본값은 1입니다. 즉, HPC 팩은 MPI 작업에 대해 노드 1% 증가합니다.
GrowByMin - 자동 증가 정책이 작업에 필요한 최소 리소스를 기반으로 하는지 여부를 나타내기 위해 전환합니다. 기본값은 false입니다. 즉, HPC 팩은 작업에 필요한 최대 리소스에 따라 작업에 대한 노드를 증가합니다.
SoaJobGrowThreshold - 자동 증가 프로세스를 트리거하는 들어오는 SOA 요청의 임계값입니다. 기본값은 50000입니다.
참고 항목
이 매개 변수는 HPC 팩 2012 R2 업데이트 3부터 지원됩니다.
SoaRequestsPerCore는 하나의 코어를 증가시키기 위해 들어오는 SOA 요청의 -Number. 기본값은 20000입니다.
참고 항목
이 매개 변수는 HPC 팩 2012 R2 업데이트 3부터 지원됩니다.
excludeNodeGroups
– 지정된 노드 그룹의 노드는 자동으로 증가 및 축소되지 않습니다. 참고 항목
이 매개 변수는 HPC Pack 2016부터 지원됩니다.
MPI 예제
기본적으로 HPC 팩은 MPI 작업에 대한 추가 노드를% 증가합니다(ExtraNodesGrowRatio 1로 설정됨). 그 이유는 MPI에 여러 노드가 필요할 수 있으며 모든 노드가 준비되었을 때만 작업을 실행할 수 있기 때문입니다. Azure에서 노드를 시작할 때 한 노드가 다른 노드보다 시작하는 데 더 많은 시간이 필요할 수 있으므로 해당 노드가 준비되기를 기다리는 동안 다른 노드가 유휴 상태가 될 수 있습니다. HPC 팩은 추가 노드를 늘려 이 리소스 대기 시간을 줄이고 잠재적으로 비용을 절감합니다. MPI 작업에 대한 추가 노드의 백분율을 늘리려면(예:%10개까지) 다음과 유사한 명령을 실행합니다.
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
SOA 예제
기본적으로 SoaJobGrowThreshold 50000으로 설정되고 SoaRequestsPerCore 20000으로 설정됩니다. 요청이 70000개인 SOA 작업을 제출하면 대기 중인 작업이 하나 있고 들어오는 요청은 70000입니다. 이 경우 HPC 팩은 대기 중인 작업에 대해 1코어 증가하며 들어오는 요청의 경우 증가합니다(70000 - 50000)/20000 = 1코어이므로 이 SOA 작업의 경우 총 2개 코어가 증가합니다.