Azure CycleCloud에서 스폿 VM 사용
Azure CycleCloud는 클러스터의 운영 비용을 크게 줄이기 위해 nodearrays에 스폿 VM 배포를 지원합니다.
주의
스폿 VM은 모든 워크로드 및 클러스터 유형에 적합하지 않습니다. 가용성 또는 용량에 대한 SLA를 제공하지 않습니다. 이러한 인스턴스는 "선점 가능" 또는 "우선 순위가 낮은" 인스턴스이며 용량을 관리하고 현물 가격이 변경되면 Azure 패브릭에서 제거될 수 있습니다.
Spot에 대한 Nodearray 구성
nodearray에 대해 Spot을 사용하도록 설정하려면 섹션에서 true [[nodearray]]
로 설정 Interruptible
하기만 하면됩니다.
CycleCloud를 사용하면 클러스터에서 스폿 인스턴스를 MaxPrice
지정할 수 있습니다. 스폿 가격은 주기적으로 조정될 수 있으며 지역과 SKU MaxPrice
간에 크게 다를 수 있으므로 사용자는 VM에 대해 지불할 최대 가격($/시간)을 제어할 수 있습니다. 기본적으로 CycleCloud는 달리 지정되지 않은 경우를 설정합니다 MaxPrice=-1
. 즉, "현물 가격에 따라 제거하지 마십시오."를 의미합니다. 이 설정을 사용하면 용량 요구 또는 기타 플랫폼 수준 결정의 변경으로 인해 인스턴스가 제거됩니다.
스폿 인스턴스의 가변 가격 책정에 대한 자세한 내용은 스폿 가격 책정을 참조하세요.
대부분의 HPC 애플리케이션에서 MaxPrice=-1
좋은 기본 선택입니다. 그러나 nodearray가 VM SKU MaxPrice
범위에서 다중 선택 자동 크기 조정을 지원하는 경우 다중 선택 목록에서 저렴한 SKU에 대한 기본 설정을 만들도록 사용자 지정할 수도 있습니다.
[cluster demo]
[[nodearray execute]]
Interruptible = true
MaxPrice = 0.2
자세한 내용은 클러스터 템플릿 가이드의 스폿 Virtual Machines 참조하세요.
스폿 VM 제거
CycleCloud는 예약된 이벤트 기능을 통해 스폿 제거를 모니터링합니다. 스폿 선점 이벤트가 감지되면 CycleCloud는 VM에 의해 알림을 받고 인스턴스는 "제거 대기 중" 상태로 이동됩니다.
질문과 대답
CycleCloud와 함께 Spot을 사용하는 경우 HPC 워크로드 및 CycleCloud 자동 크기 조정과 관련된 몇 가지 고려 사항이 있습니다.
언제 스폿 사용을 고려해야 하나요?
- 개별 작업이 상대적으로 짧습니까?
- 인스턴스가 제거되면 상대적으로 진행 진행률이 1시간 미만인 작업이 스폿 인스턴스에 적합할 수 있습니다.
- 스케줄러가 실패한 호스트에서 작업을 자동으로 다시 시도/다시 큐에 추가하나요?
- 실행 중에 호스트가 제거된 경우 작업을 다시 실행할 수 있나요?
- 일반적으로 스폿 인스턴스는 상태 비지정 워크로드에 가장 적합합니다.
- 실행 비용을 최소화하는 것이 완료 시간보다 더 중요합니까?
- 스폿은 우선 순위가 낮은 큐 또는 백필 큐 온-프레미스에서 예약될 수 있는 워크로드에 적합합니다.
- 이는 스폿이 짧은 MPI 작업에도 적합한 경우 중 하나입니다.
언제 스폿 사용을 피해야 하나요?
- 작업이 HPC 작업(예: MPI 작업)과 긴밀하게 결합된 경우 Spot에 적합하지 않을 수 있습니다.
- 작업이 중요하거나 완료 기한이 있는 경우 제거 및 재시도로 완료 시간이 연장될 수 있으므로 일반 우선 순위 인스턴스가 더 적합할 수 있습니다.
- 그러나 스폿 인스턴스를 추가하여 런타임 및 비용을 줄이려고 시도하는 동안 최종 기한이 충족되도록 일반 우선 순위 및 스폿 인스턴스를 혼합하여 사용하도록 클러스터를 구성할 수 있는 좋은 기회가 될 수 있습니다.
- 작업을 다시 실행하는 것이 안전하지 않은 경우 Spot을 피해야 합니다.
- 예를 들어 작업이 실행 중에 데이터베이스를 수정하는 경우 작업을 자동으로 다시 실행하면 오류 또는 잘못된 결과가 발생할 수 있습니다.
- 작업 런타임이 매우 긴 경우 스폿이 적합하지 않을 수 있습니다.
- 긴 프로세스의 경우 스폿 제거 가능성과 달러 및 재시도 시간 비용이 모두 증가합니다.
- 그러나 사례별로 측정이 필요할 수 있는 경우입니다.
제거/선점
Azure 의 스폿 제거 에 대한 자세한 내용은 스폿 제거 정책을 참조하세요.
17. CycleCloud가 스폿 인스턴스 제거/선점을 추적할 수 있나요?
A. 예. 스폿 제거 이벤트는 클러스터 UI 페이지에서 이벤트 로그 알림을 생성합니다.
17. 사용자에게 제거 알림을 어떻게 받나요?
A. CycleCloud 노드가 제거되면 클러스터에 대한 CycleCloud UI의 이벤트 로그에 로그 메시지가 표시됩니다. 사용자는 스폿 인스턴스가 제거된 후 Azure EventGrid 를 통해 CycleCloud에서 이벤트를 수신하도록 등록할 수도 있습니다.
- 사용자는 제거 30초 전에 컴퓨터에서 제거 알림을 확인할 수 있습니다. 이벤트에 등록하는 방법에 대한 자세한 내용은 예약된 이벤트를 참조하세요.
- 일반적으로 제거는 온-프레미스 컴퓨터에서 플러그를 당기는 것과 비슷하게 간주되어야 하며 동일한 방식으로 처리해야 합니다.
- 중요 이벤트 처리기는 스폿 제거 이벤트를 승인하면 Cyclecloud 이벤트 처리기가 이벤트를 수신할 수 없으므로 승인 하면 안 됩니다.
17. 제거는 얼마나 자주 발생하나요?
A. 제거 속도는 매우 가변적이고 전체 지역의 수요 변화에 따라 크게 달라집니다.
17. 인스턴스가 제거되는 이유는 무엇인가요?
A. 스폿 VM은 가용성을 보장하지 않으며 언제든지 제거될 수 있습니다. 자세한 내용은 스폿 VM 설명서를 참조하세요. nodearray가 설정된 MaxPrice
경우 스폿 가격이 위로 MaxPrice
상승하면 인스턴스가 제거됩니다. 현물 가격이 매우 느리게 움직이기 때문에 이것은 드문 경향이 있습니다. 다음은 제거를 트리거할 수 있는 몇 가지 시나리오입니다.
- 일반 우선 순위 VM에 대한 수요가 증가함에 따라 스폿 용량이 감소합니다.
- 계획된 하드웨어 유지 관리와 같은 플랫폼 수준 이벤트입니다.
내 워크플로가 제거의 영향을 받는 이유는 무엇인가요?
17. 스폿 인스턴스가 제거되면 내 작업은 어떻게 되나요?
A. 작업이 30초 제거 알림을 처리하고 적절하게 처리하도록 코딩되지 않는 한 노드는 단순히 종료되고 작업이 실패하고 다시 시도되기를 바랍니다.
17. 클러스터에서 노드가 삭제되어 있나요?
A. 예, 노드는 CycleCloud UI에서 정리됩니다. 지원되는 스케줄러에서 노드도 스케줄러에서 정리됩니다.
17. 작업을 다시 실행해야 합니까?
A. 일반적으로 제거된 작업을 다시 시도/다시 실행하는 것은 스케줄러의 작업입니다. 그러나 많은 작업 클래스는 다시 시도에 관대하지 않습니다(예: 실행될 때 부분 데이터를 영구 스토리지에 쓰는 경우). 이러한 작업은 스폿 인스턴스에서 실행하기에 적합하지 않을 수 있습니다.
17. 스폿 및 주문형/일반 우선 순위 VM을 혼합하여 사용할 수 있나요?
A. 예. 별개의 스폿(Interruptible
) 및 비스폿 노드 배열을 사용하여 스폿 및 일반 우선 순위를 혼합하여 만들 수 있습니다. 인스턴스 형식을 혼합하여 사용하려면 일반적으로 사용자가 선택한 요구 사항 및 스케줄러에 따라 몇 가지 구성 결정을 내려야 합니다. 다음은 몇 가지 일반적인 구성입니다.
- 스폿 및 Regular-Priority VM을 스케줄러의 별도 큐로 구분합니다.
- 이 구성을 사용하면 제출자가 적절한 VM 유형에서 작업을 쉽게 대상으로 지정할 수 있습니다.
- 스폿 및 Regular-Priority 인스턴스를 모두 사용하여 단일 대규모 리소스 풀을 만듭니다.
- 이 구성은 일반 우선 순위 인스턴스의 적은 비율을 사용하여 진행 상황을 보장하고, 스폿의 많은 비율을 사용하여 비용과 런타임을 줄이는 확장성이 뛰어난 워크로드에 유용할 수 있습니다.
17. CycleCloud nodearrays에 대한 스폿 제거 정책을 변경할 수 있나요?
A. 예. nodearray에서 EvictionPolicy
직접 특성을 설정하여 정책을 하나 Delete
또는 Deallocate
(기본값: Delete
)로 변경할 수 있습니다.
그러나 이는 현재 할당 취소를 적절하게 처리하는 사용자 지정 자동 크기 조정자에만 유용합니다. 현재 Azure CycleCloud 자동 크기 조정기는 제거 시 스폿 인스턴스가 삭제될 것으로 예상합니다.
CycleCloud에서 스폿 제거에 대한 스케줄러 지원
스케줄러에 대한 CycleCloud 구현에 대한 자세한 내용은 스케줄러별 가이드를 참조하세요.
17. Scheduler의 자동 크기 조정기는 스폿 제거를 어떻게 처리하나요?
A. 기본 제공/지원되는 스케줄러(HTCondor, GridEngine, PBS Professional, Slurm, LSF)에 대한 모든 자동 크기 조정기는 스폿 제거를 정상적으로 처리하려고 시도합니다. 일반적으로 제거된 인스턴스는 Scheduler에서 제거되고, 제거 후 사용 가능한 새 용량보다 용량 수요가 높은 경우 자동 크기 조정기가 인스턴스를 대체합니다.
스폿 제거 또는 일반 컴퓨터 오류를 예상하고 정상적으로 처리하도록 사용자 지정 자동 크기 조정기를 빌드 해야 합니다 .
17. 제거된 인스턴스에서 실행 중인 작업에는 어떤 일이 발생할 것으로 예상해야 하나요?
A. 이 작업은 작업을 제출할 때 구성해야 하는 사용자의 맡입니다. GridEngine과 같은 일부 스케줄러에서는 큐별로 기본 작업을 구성할 수도 있습니다. 기본적으로 HTCondor를 제외한 모든 기본 제공 CycleCloud 스케줄러 배포는 실행 중인 노드가 제거되거나 예기치 않게 종료될 때 작업을 실패로 표시하도록 구성됩니다. 이 동작은 사용자만 작업이 안전하게 재시도될 수 있는지 알 수 있기 때문에 의도적으로 수행됩니다.