활성화 및 제출 필터 이해
이 항목에서는 관리자가 클러스터에 추가할 수 있는 사용자 지정 작업 필터 유형과 HPC 작업 스케줄러 서비스가 이러한 필터의 반환 값을 기반으로 작업을 처리하는 방법에 대해 간략하게 설명합니다.
작업 제출 및 작업 활성화 필터는 클러스터에서 작업에 대한 추가 검사 및 제어를 제공하는 사용자 지정 애플리케이션입니다. 예를 들어 제출 필터는 선택한 정보에 대해 작업 속성을 확인하거나 작업 속성 값을 변경할 수 있습니다. 활성화 필터는 리소스가 작업에 할당되기 전에 라이선스 가용성과 같은 요소를 확인할 수 있습니다. 필터의 반환 값에 따라 HPC 작업 스케줄러 서비스는 작업에 대해 적절한 작업을 수행합니다. 적용하려는 예약 정책에 사용자 지정 필터가 필요한지 확인하려면 Windows HPC Server작업 제출 또는 작업 활성화 필터를 사용하는 경우를 참조하세요.
이 항목에서는 활성화 및 제출 필터와 HPC 작업 스케줄러 서비스에서 필터의 반환 값을 해석하는 방법에 대해 설명합니다. 필터 설치 및 구성에 대한 자세한 내용은 Microsoft HPC 팩제출 및 정품 인증 필터 설치
이 항목에서는 다음을 수행합니다.
사용자 지정 필터가 실행되는 경우
HPC 작업 Scheduler 서비스는 작업이 클러스터에 제출되거나(제출 필터) 작업이 클러스터 리소스(활성화 필터)를 가져올 때 사용자 지정 필터를 실행할 수 있습니다.
제출 필터는 작업이 제출되는 즉시 작업 템플릿에 대해 작업을 검사하기 전에 실행됩니다(제출 필터는 할당된 작업 템플릿을 포함하여 작업 속성을 변경할 수 있습니다). 작업이 제출 필터를 통과하면 사용자 자격 증명이 확인되고 작업 템플릿 기본값과 값 제약 조건이 적용됩니다. 자세한 내용은 활성화 및 제출 필터 이해 [도움말 링크?]참조하세요.
활성화 필터는 후보 리소스가 대기 중이거나 실행 중인 작업에 할당될 때 실행됩니다(작업에 대한 후보 리소스는 작업 및 작업 속성 및 예약 정책을 기반으로 합니다). 활성화 필터는 해당 리소스에서 작업을 시작해야 하는지 여부 또는 작업에 대해 리소스를 유지해야 하는지 또는 해제해야 하는지를 결정할 수 있습니다. 활성화 필터는 리소스가 작업에 할당될 때마다 실행되므로 활성화 필터는 동일한 작업에 대해 여러 번 실행될 수 있습니다. 예를 들어 작업을 시작하려고 할 때 활성화 필터를 실행한 다음 새 리소스가 작업에 추가될 때 다시 실행할 수 있습니다(동적 증가).
클러스터 전체 및 작업 템플릿 관련 필터
사용자 지정 필터는 클러스터 전체 수준에서 정의할 수 있으며 모든 작업에서 실행됩니다. 클러스터 전체 필터는 실행 가능한 애플리케이션 또는 스크립트로 구현됩니다. HPC Pack 2008 R2의 서비스 팩 2부터 사용자 지정 필터를 작업 템플릿 수준에서 정의할 수도 있습니다. 이러한 필터는 연결된 작업 템플릿과 함께 제출된 작업에서만 실행됩니다. 템플릿 수준 필터를 사용하면 특정 유형의 작업에 대해 특정 필터를 실행할 수 있으며 원하는 경우 일련의 필터를 실행할 수도 있습니다.
메모
작업 템플릿 수준 필터는 DLL로 정의하고 IActivationFilter
또는 ISubmissionFilter
인터페이스를 구현해야 합니다.
클러스터 전체 및 작업 템플릿 수준 필터를 클러스터에 추가할 수 있습니다. 작업이 제출되거나 활성화할 준비가 되면 모든 작업 템플릿 필터가 클러스터 전체 필터 전에 실행됩니다.
작업 제출 필터 및 해당 반환 값
HPC 작업 스케줄러 서비스는 작업이 제출될 때마다 작업 제출 필터를 실행할 수 있습니다. 필터는 작업 속성을 확인하여 작업을 큐에 추가해야 하는지 여부를 확인할 수 있습니다.
제출 필터는 작업 설명 XML(작업 조건을 지정함)을 구문 분석하여 허용하지 않거나 제한하려는 옵션을 확인하거나 필요한 옵션을 포함하지 않는지 확인합니다. 제출 필터는 작업 XML 파일을 수정하여 작업 속성 값을 변경할 수도 있습니다. 작업 속성 값을 변경할 수 없습니다.
작업 제출 필터의 반환 값에 따라 HPC 작업 스케줄러 서비스는 다음 표에 설명된 대로 작업을 처리합니다.
종료 코드 | 작업 스케줄러 작업 |
---|---|
0 | 작업이 큐 as-is추가됩니다. |
1 | 필터가 하나 이상의 작업 속성을 수정하고 작업이 큐에 추가됩니다. |
다른 종료 코드 | 작업이 실패한 제출 필터가 작업에 실패했다는 오류 메시지와 함께 표시됩니다. |
필터 시간 제한 | 작업이 제출 필터 시간이 초과되었다는 오류 메시지와 함께 실패한 표시됩니다. 기본 시간 제한은 15초입니다. 이 설정은 작업 스케줄러 구성 대화 상자에서 수정할 수 있습니다. |
필터를 찾을 수 | 작업이 필터를 찾을 수 없다는 오류 메시지와 함께 실패한 표시됩니다. |
메모
제출 필터 체인을 지정한 경우 작업이 모든 필터를 성공적으로 통과할 때까지 나열된 순서대로 각 필터를 통해 실행됩니다. 종료 코드가 0이면 작업이 다음 필터로 전달됩니다. 종료 코드가 1이면 수정된 작업이 다음 필터로 전달됩니다. 체인의 어느 지점에서든 작업이 실패하면 작업에서 이미 실행된 모든 제출 필터가 역순으로 다시 호출되어 필요한 경우 필터가 작업을 되돌릴 수 있도록 합니다.
작업 활성화 필터 및 해당 반환 값
HPC 작업 스케줄러 서비스는 후보 리소스가 대기 중이거나 실행 중인 작업에 할당될 때 활성화 필터를 실행할 수 있습니다. 작업 활성화 필터는 라이선스 사용 불가 또는 제출 사용자에 대한 사용 시간 초과와 같이 활성화될 경우 작업이 실패하는 요인에 대해 작업을 확인할 수 있습니다.
활성화 필터는 작업 설명 XML(작업 조건을 지정함)을 구문 분석하고 작업 속성 및 기타 데이터 원본을 확인하여 작업이 리소스를 사용할 수 있는지 확인할 수 있습니다. 필터에 추가 매개 변수가 전달되어 현재 일정 전달 중에 사용할 수 있는 후보 리소스 수, 큐의 작업 위치 및 클러스터에서 백필을 사용할 수 있는지 여부와 같은 정보를 제공합니다. 이러한 매개 변수에 대한 IActivationFilter
인터페이스 public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)
확인하세요. 필터를 만드는 개발자는 이러한 매개 변수를 사용하여 필터 동작을 미세 조정할 수 있습니다.
활성화 필터의 필터 반환 값에 따라 HPC 작업 스케줄러 서비스는 작업을 시작하거나, 작업이 시작될 때까지 큐를 차단하고, 큐를 차단하지 않고 작업에 대한 리소스를 예약하거나, 작업을 보류합니다. 특정 작업을 보유하는 데 걸리는 시간은 Hold Until 작업 속성으로 설정할 수 있습니다. 작업이 보류되고 해당 작업에 대해 hold 값이 지정되지 않은 경우 기본 보존 기간 클러스터 설정에 지정된 시간(초)에 대해 작업이 유지됩니다. 기본 보존 기간 유효한 값은 60-604800(1분에서 1주 사이)입니다. 기본값은 900초(15분)입니다.
중요하다
작업이 실행되면 Hold Until 속성이 지워집니다.
메모
활성화 필터 및 백필: 작업은 활성화 필터 반환 값이 0인 백필 창에서만 실행할 수 있습니다.
작업 활성화 필터의 반환 값(종료 코드)에 따라 HPC 작업 스케줄러 서비스는 다음 표에 설명된 대로 작업을 처리합니다.
종료 코드 | 큐에 대기된 작업 | 작업 실행 |
---|---|---|
0 | 작업을 시작합니다. 후보 리소스에서 작업이 시작됩니다. |
작업을 성장합니다. 후보 리소스가 실행 중인 작업에 추가됩니다. |
1 | 작업을 시작하지 않고 큐를 차단합니다. 작업이 시작되지 않고 큐에 남아 있습니다. 작업이 통과하거나 취소될 때까지 다른 작업 또는 같거나 낮은 우선 순위가 시작되지 않습니다. 필터는 작업이 통과하거나 작업이 취소될 때까지 주기적으로 작업을 다시 평가합니다. |
일을 성장시키지 마십시오. 후보 리소스는 실행 중인 작업에 추가되지 않습니다. 큐가 차단되지 않으며 리소스를 다른 작업에 사용할 수 있습니다. |
2 | 작업을 시작하고, 리소스를 보관하고, 다른 작업을 계속 예약하지 마세요. 작업이 시작되지는 않았지만 후보 리소스는 예약 모드에 따라 예약됩니다. 대기 중인 경우 작업의 최대 리소스까지 예약됩니다. Balanced에서 최소 리소스는 예약됩니다. 다른 리소스에서 다른 작업을 시작할 수 있습니다. 필터는 작업이 통과될 때까지 정기적으로 작업을 다시 평가합니다. |
정의. 필터는 실행 중인 작업에 대해 이 종료 코드를 반환해서는 안 됩니다. |
3 | 작업을 유지하고, 리소스를 해제하고, 다른 작업을 계속 예약합니다. 작업은 Hold Until 작업 속성에 지정된 날짜 및 시간까지 보류됩니다. 보류 기간이 지나면 필터 프로그램에서 작업을 다시 평가합니다. 필터가 종료 코드 3과 함께 반환되고 해당 작업에 대해 값이 지정될 때까지 |
정의. 필터는 실행 중인 작업에 대해 이 종료 코드를 반환해서는 안 됩니다. |
4 | 작업이 실패합니다. 작업은 활성화 필터에 의해 작업이 실패했음을 알리는 오류 메시지와 함께 실패한 표시됩니다. |
정의. 필터는 실행 중인 작업에 대해 이 종료 코드를 반환해서는 안 됩니다. |
다른 종료 코드 | 정의. 그러나 값 2와 동일하게 처리됩니다. | 정의. 필터는 실행 중인 작업에 대해 이 종료 코드를 반환해서는 안 됩니다. |
필터 시간 제한 | 종료 코드 2와 동일합니다. 기본 시간 제한은 15초입니다. 이 설정은 작업 스케줄러 구성 대화 상자에서 수정할 수 있습니다. |
정의. |
필터를 찾을 수 | 종료 코드 2와 동일합니다. | 정의. |
메모
활성화 필터 체인을 지정한 경우 종료 코드가 0인 경우 나열된 순서대로 각 필터에 의해 작업이 평가됩니다. 필터가 0이 아닌 종료 코드를 반환하는 경우 해당 값은 HPC 작업 스케줄러에 전달되고, 작업에서 이미 실행된 활성화 필터는 필터가 필요한 경우 작업을 되돌릴 수 있도록 역순으로 다시 호출됩니다. 예를 들어 사용 가능한 라이선스를 확인하는 활성화 필터에는 되돌리기 함수가 호출되는 경우 라이선스를 해제하는 코드가 포함될 수 있습니다.
추가 참조
Cluster-Wide 제출 및 활성화 필터 추가 또는 제거하는 방법
작업 템플릿 수준 제출 또는 활성화 필터 추가 또는 제거하는 방법
작업 큐 관리