Slurm 클러스터 보호 모드 - AWS ParallelCluster

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Slurm 클러스터 보호 모드

보호 모드가 활성화된 상태에서 클러스터를 실행하면 컴퓨팅 노드가 시작될 때 컴퓨팅 노드 부트스트랩 장애를 AWS ParallelCluster 모니터링하고 추적합니다. 이는 이러한 장애가 지속적으로 발생하는지 여부를 감지하기 위한 것입니다.

대기열(파티션)에서 다음이 감지되면 클러스터는 보호 상태로 전환됩니다.

  1. 연이은 컴퓨팅 노드 부트스트랩 장애가 계속 발생하며 컴퓨팅 노드가 성공적으로 시작되지 않습니다.

  2. 실패 수가 사전 정의된 임계값에 도달했습니다.

클러스터가 보호 상태로 전환되면 사전 정의된 임계값 이상에서 장애가 발생한 대기열을 AWS ParallelCluster 비활성화합니다.

Slurm클러스터 보호 모드는 버전 3.0.0에 추가되었습니다. AWS ParallelCluster

보호 모드를 사용하면 컴퓨팅 노드 부트스트랩 장애 사이클링에 소요되는 시간과 리소스를 줄일 수 있습니다.

보호 모드 파라미터

protected_failure_count

protected_failure_count는 클러스터 보호 상태를 활성화하는 대기열(파티션)의 연속 실패 수를 지정합니다.

기본값 protected_failure_count는 10이며 보호 모드가 활성화되어 있습니다.

protected_failure_count가 0보다 크면 보호 모드가 활성화됩니다.

protected_failure_count가 0보다 작거나 같으면 보호 모드가 비활성화됩니다.

HeadNode/etc/parallelcluster/slurm_plugin/parallelcluster_clustermgtd.conf에 있는 clustermgtd 구성 파일에 파라미터를 추가하여 protected_failure_count 값을 변경할 수 있습니다.

이 파라미터는 언제든지 업데이트할 수 있으며 이를 위해 컴퓨팅 플릿을 중지할 필요가 없습니다. 실패 횟수가 protected_failure_count에 도달하기 전에 대기열에서 시작이 성공하면 실패 횟수가 0으로 재설정됩니다.

보호된 상태에서 클러스터 상태를 확인합니다.

클러스터가 보호 상태인 경우 컴퓨팅 플릿 상태와 노드 상태를 확인할 수 있습니다.

컴퓨팅 플릿 상태

컴퓨팅 플릿의 상태는 보호 상태로 실행 중인 클러스터에 있는 PROTECTED입니다.

$ pcluster describe-compute-fleet --cluster-name <cluster-name> --region <region-id> { "status": "PROTECTED", "lastStatusUpdatedTime": "2022-04-22T00:31:24.000Z" }

노드 상태

보호 상태를 활성화한 부트스트랩 장애가 발생한 대기열(파티션)을 알아보려면 클러스터에 로그인하고 sinfo 명령을 실행하세요. 부트스트랩 실패 횟수가 protected_failure_count 이상인 파티션은 현재 INACTIVE 상태입니다. 부트스트랩 실패 횟수가 protected_failure_count 이상이 아닌 파티션은 UP 상태이며 예상대로 작동합니다.

PROTECTED 상태는 실행 중인 작업에 영향을 주지 않습니다. 부트스트랩 실패 횟수가 protected_failure_count 이상인 파티션에서 작업이 실행되는 경우 해당 파티션은 실행 중인 작업이 완료된 후 INACTIVE로 설정됩니다.

다음 예제에 표시된 노드 상태를 고려해 보세요.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* inact infinite 10 down% queue1-dy-c5xlarge-[1-10] queue1* inact infinite 3490 idle~ queue1-dy-c5xlarge-[11-3500] queue2 up infinite 10 idle~ queue2-dy-c5xlarge-[1-10]

파티션 queue1INACTIVE인 이유는 10개의 연속적인 컴퓨팅 노드 부트스트랩 장애가 감지되었기 때문입니다.

노드 뒤에 있는 인스턴스가 queue1-dy-c5xlarge-[1-10]를 시작했지만 비정상 상태로 인해 클러스터에 조인하지 못했습니다.

클러스터가 보호 상태에 있습니다.

queue1의 부트스트랩 실패는 파티션 queue2에 영향을 주지 않습니다. UP 상태이며 여전히 작업을 실행할 수 있습니다.

보호 상태를 비활성화하는 방법

부트스트랩 오류가 해결된 후 다음 명령을 실행하여 클러스터를 보호 상태에서 해제할 수 있습니다.

$ pcluster update-compute-fleet --cluster-name <cluster-name> \ --region <region-id> \ --status START_REQUESTED

보호 상태를 활성화하는 부트스트랩 장애

보호 상태를 활성화하는 부트스트랩 오류는 다음 세 가지 유형으로 세분됩니다. 유형 및 문제를 식별하기 위해 로그가 AWS ParallelCluster 생성되었는지 확인할 수 있습니다. 로그가 생성된 경우 해당 로그에서 오류 세부 정보를 확인할 수 있습니다. 자세한 정보는 로그 검색 및 보존을 참조하세요.

  1. 부트스트랩 오류로 인해 인스턴스가 자체 종료됩니다.

    부트스트랩 프로세스 초기에 인스턴스가 실패합니다. 예를 들어 SlurmQueues/CustomActions/OnNodeStart/OnNodeConfigured 스크립트의 오류로 인해 자체 종료되는 인스턴스가 있습니다.

    동적 노드의 경우 다음과 비슷한 오류가 있는지 확인하세요.

    Node bootstrap error: Node ... is in power up state without valid backing instance

    정적 노드의 경우 clustermgtd 로그(/var/log/parallelcluster/clustermgtd)에서 다음과 비슷한 오류가 있는지 확인하세요.

    Node bootstrap error: Node ... is in power up state without valid backing instance
  2. 노드 resume_timeout 또는 node_replacement_timeout 만료.

    인스턴스는 resume_timeout(동적 노드의 경우) 또는 node_replacement_timeout(정적 노드의 경우) 내에서 클러스터에 조인할 수 없습니다. 타임아웃 전에는 자체 종료되지 않습니다. 예를 들어 클러스터에 네트워킹이 제대로 설정되지 않고 노드가 제한 시간 만료 후 Slurm에 의해 DOWN 상태로 설정됩니다.

    동적 노드의 경우 다음과 비슷한 오류가 있는지 확인하세요.

    Node bootstrap error: Resume timeout expires for node

    정적 노드의 경우 clustermgtd 로그(/var/log/parallelcluster/clustermgtd)에서 다음과 비슷한 오류가 있는지 확인하세요.

    Node bootstrap error: Replacement timeout expires for node ... in replacement.
  3. 노드 상태 확인에 실패.

    노드 뒤에 있는 인스턴스가 Amazon EC2 상태 점검 또는 예정된 이벤트 상태 점검에 실패하고 해당 노드는 부트스트랩 장애 노드로 간주됩니다. 이 경우 제어할 수 없는 이유로 인스턴스가 종료됩니다. AWS ParallelCluster

    clustermgtd 로그(/var/log/parallelcluster/clustermgtd)에서 다음과 비슷한 오류가 있는지 확인하세요.

    Node bootstrap error: Node %s failed during bootstrap when performing health check.
  4. 컴퓨팅 노드가 Slurm 등록에 실패.

    Slurm 제어 대몬(daemon)(slurmctld)을 통한 slurmd 대몬(daemon) 등록이 실패하고 컴퓨팅 노드 상태가 INVALID_REG 상태로 변경됩니다. 잘못 구성된 Slurm 컴퓨팅 노드로 인해 이 오류가 발생할 수 있습니다(예: CustomSlurmSettings 컴퓨팅 노드 사양 오류로 구성된 컴퓨팅 노드).

    헤드 노드의 slurmctld 로그 파일(/var/log/slurmctld.log) 또는 장애가 발생한 컴퓨팅 노드의 slurmd 로그 파일(/var/log/slurmd.log)에서 다음과 유사한 오류가 있는지 확인하세요.

    Setting node %s to INVAL with reason: ...

보호 모드를 디버깅하는 방법

클러스터가 보호 상태이고 문제가 있는 컴퓨팅 노드에서 HeadNodecloud-init-output 로그가 AWS ParallelCluster 생성된 clustermgtd 경우 로그에서 오류 세부 정보를 확인할 수 있습니다. 로그 검색에 대한 자세한 내용은 로그 검색 및 보존 섹션을 참조하세요.

헤드 노드의 clustermgtd 로그(/var/log/parallelcluster/clustermgtd)

로그 메시지에는 부트스트랩 오류가 발생한 파티션과 해당 부트스트랩 실패 수가 표시됩니다.

[slurm_plugin.clustermgtd:_handle_protected_mode_process] - INFO - Partitions bootstrap failure count: {'queue1': 2}, cluster will be set into protected mode if protected failure count reach threshold.

clustermgtd 로그에서 Found the following bootstrap failure nodes를 검색하여 부트스트랩에 실패한 노드를 찾으세요.

[slurm_plugin.clustermgtd:_handle_protected_mode_process] - WARNING - Found the following bootstrap failure nodes: (x2) ['queue1-st-c5large-1(192.168.110.155)', 'broken-st-c5large-2(192.168.65.215)']

clustermgtd 로그에서 Node bootstrap error를 검색하여 실패 원인을 찾으세요.

[slurm_plugin.clustermgtd:_is_node_bootstrap_failure] - WARNING - Node bootstrap error: Node broken-st-c5large-2(192.168.65.215) is currently in replacement and no backing instance

컴퓨팅 노드의 cloud-init-output로그(/var/log/cloud-init-output.log)

clustermgtd 로그에서 부트스트랩 장애 노드 프라이빗 IP 주소를 획득한 후 컴퓨팅 노드에 로그인하거나 지침에 따라 로그 검색 및 보존에서 로그를 검색하여 해당 컴퓨팅 노드 로그를 찾을 수 있습니다. 대부분의 경우 문제가 있는 노드의 /var/log/cloud-init-output 로그에는 컴퓨팅 노드 부트스트랩 장애를 일으킨 단계가 나와 있습니다.