다시 시작하거나 이미지로 다시 설치할 때 일괄 처리 노드 만들기 지연 해결
이 문서에서는 노드를 다시 시작하거나 이미지로 다시 설치할 때 일괄 처리 노드 생성 지연을 해결하는 방법을 설명합니다. 대규모 Python 런타임 및 Python 패키지를 설치하여 발생하는 Microsoft Azure Batch의 문제를 방지합니다. 이 설치는 일괄 처리 노드를 일괄 처리 풀에 처음 추가하거나 노드를 다시 시작하거나 이미지로 다시 설치할 때 긴 지연과 예기치 않은 오류를 발생합니다.
증상
일괄 처리 풀을 만들고 풀에 노드를 추가하거나 노드를 다시 시작하거나 이미지로 다시 설치하는 경우 애플리케이션 설치가 완료되는 데 너무 오래 걸리거나 긴 설치 시간 후에 실패합니다.
원인
이 문제는 Python 패키지가 너무 커서 시작 작업으로 사용하기 때문에 발생합니다.
Azure Batch에서 일괄 처리 풀을 만들고 일괄 처리 노드를 추가하는 경우 권장되는 프로세스는 시작 작업을 사용하여 운영 환경을 준비하는 것입니다. 이 시작 작업은 다음 작업을 수행할 수 있습니다.
태스크가 실행되는 애플리케이션을 설치합니다.
일괄 처리 노드를 풀에 처음 추가하거나 노드를 다시 시작하거나 이미지로 다시 설치할 때 백그라운드 프로세스를 시작합니다.
그러나 Python 언어 런타임 및 Python을 실행해야 하는 애플리케이션의 경우 패키지가 너무 커서 시작 작업이 설치되는 데 시간이 오래 걸릴 수 있습니다. 대부분의 설치가 발생한 후에도 예기치 않은 문제로 인해 설치가 실패할 수 있습니다.
솔루션
이 문제를 해결하려면 Gen1 이미지를 캡처하기 전에 VM(가상 머신) 및 일괄 처리 계정 위치 및 OS 버전을 일치시키고 Python 및 해당 패키지를 미리 설치합니다.
미리 패키지된 사용자 지정 이미지를 사용하여 일괄 처리 노드를 할당합니다. 이 프로세스에 대한 일반적인 내용은 관리되는 이미지 사용을 참조 하여 사용자 지정 이미지 풀을 만듭니다.
긴 설치 시간을 방지하고 설치 실패를 방지하려면 다음 일반적인 방법을 따르세요.
일괄 처리 계정을 만들고 VM 일괄 처리 노드를 만들 때 사용할 동일한 위치 또는 지역을 지정합니다.
이름에 Gen1이 있는 이미지(예: Windows Server 2019 Datacenter - Gen1(Windows 노드) 또는 Ubuntu Server 18.04 LTS - Gen1(Linux 노드)을 선택합니다. 일부 VM 제품군은 Gen2 이미지를 지원하지 않으므로 Gen1 이미지가 필요합니다.
Azure Portal에서 노드 풀을 만들 때 운영 체제 섹션의 Sku 목록에 지정한 시스템 버전이 포함되어 있는지 확인합니다.
이미지에 미리 설치되고 모든 사용자에 대해 작동할 수 있도록 Python 설치를 사용자 지정합니다.
시스템별 절차
다음 탭 섹션에서는 Windows 일괄 처리 노드 또는 Linux 일괄 처리 노드에 대해 수행해야 하는 단계를 설명합니다.
Windows 노드: C 드라이브에 필요한 버전의 Python을 설치하고 시스템 경로를 수동으로 추가합니다.
절차 요약
VM을 만들고 시작한 후 RDP(원격 데스크톱 프로토콜)를 사용하여 VM에 연결합니다. 그런 다음 필요한 버전의 Python 런타임(예: Python 3.10.4)을 포함하여 VM에 필요한 모든 항목을 설치하고 시스템 경로를 편집합니다. 마지막으로 VM 이미지를 캡처하고, VM 이미지를 사용하는 일괄 처리 풀에 배포하고, 새 일괄 처리 풀 노드에 연결한 다음, 테스트하여 미리 설치된 Python 런타임 및 패키지가 제대로 작동하는지 확인합니다.
프로시저 단계
다음 설정을 지정하여 Azure Portal 에서 Windows VM을 만듭니다.
설정 이름 설정 값 지역 일괄 처리 계정에 할당된 동일한 지역 Image 이름에 Gen1(Gen2 아님)이 있고 일괄 처리 서비스에서 지원되는 Windows 이미지 RDP를 사용하여 VM에 연결합니다.
Python 설치 마법사를 실행한 다음 설치 사용자 지정 옵션을 선택합니다. 그런 다음 고급 옵션 페이지에서 설치 위치 사용자 지정 상자로 이동하여 C 드라이브에 경로를 지정합니다.
Python 설치 경로(예: C:\Python\) 및 Python 설치 패키지 경로(예: C:\Python\Scripts\)가 포함되도록 시스템 환경 변수
Path
를 편집합니다.참고 항목
Python 설치 마법사는 이러한 경로를 사용자 환경 변수에
Path
만 추가합니다. 따라서 해당 시스템 환경 변수에 경로를 추가해야 합니다. 그렇지 않으면 VM 이미지를 캡처할 때 사용자가 설치한 Python 설정 및 추가 소프트웨어 패키지가 이미지에서 삭제됩니다.이러한 경로를 시스템 환경 변수에 추가하려면 다음 단계를 수행합니다.
시작을 선택한 다음 설정을 검색하여 선택합니다.
설정 앱에서 시스템>고급>시스템 설정을 선택합니다.
시스템 속성 대화 상자에서 고급 탭을 선택한 다음 환경 변수를 선택합니다.
환경 변수 대화 상자에서 시스템 변수 섹션으로 이동하여 경로 변수를 선택한 다음 편집을 선택합니다.
환경 변수 편집 대화 상자에서 새로 만들기를 선택한 다음 Python 설치된 패키지의 경로를 입력합니다. 그런 다음, 이 단계를 반복하여 Python 런타임에 대한 경로를 입력합니다.
확인을 세 번 선택하여 세 개의 대화 상자에서 변경 내용을 적용합니다.
콘솔에서 Python 설치를 테스트합니다.
예를 들어 설치한 Python 버전을 확인하기 위해 실행
python --version
한 후 Python 인터프리터를 실행하여 아직 설치되지 않은 패키지(예:numpy
)를 가져오려고 할 수 있습니다. 예상ModuleNotFoundError
된 예외가 발생하면 명령을 실행pip install <package-name>
하여 패키지를 설치한 다음 Python 인터프리터를 다시 실행하여 해당 패키지를 가져옵니다. 이제 가져오기 명령이 성공합니다.포털에서 VM 이미지 만들기의 단계에 따라 VM 이미지를 캡처하지만 이미지 만들기 페이지에서 다음 설정만 적용합니다.
설정 이름 설정 값 리소스 그룹 리소스 그룹 목록에서 선택하거나 새로 만들기를 선택하여 리소스 그룹을 만듭니다. 대상 Azure 컴퓨팅 갤러리 Azure 컴퓨팅 갤러리 목록에서 선택하거나 새로 만들기를 선택하여 Azure 컴퓨팅 갤러리를 만듭니다. 대상 VM 이미지 정의 새로 만들기를 선택합니다. VM 이미지 정의 만들기 페이지에서 이미지에 제공하려는 VM 이미지 정의 이름만 입력합니다. (페이지는 자동으로 다음을 제공합니다.게시자, 제품 및 SKU 설정입니다.) 버전 번호 VM 이미지에 제공하려는 버전 번호를 입력합니다. VM 이미지 설정을 적용한 후 검토 + 만들기를 선택하여 설정을 확인한 다음 만들기를 선택하여 이미지를 만듭니다. 이 단계에서는 다음 세 가지 리소스 유형을 만듭니다.
- Azure Compute Gallery
- 사용자 지정 이미지 정의
- 사용자 지정 이미지 정의 버전
세 개의 리소스를 만든 후 다음 단계에 따라 VM 이미지를 사용하는 새 일괄 처리 풀을 만듭니다.
Azure Portal에서 Batch 계정을 검색하고 선택합니다.
일괄 처리 계정 목록에서 계정을 선택합니다.
일괄 처리 계정의 메뉴 창에서 풀을 선택한 다음 추가를 선택하여 일괄 처리 풀을 만듭니다.
풀 추가 페이지에서 다음 설정을 지정한 다음 확인을 선택합니다.
설정 이름 설정 값 풀 ID 풀의 새 이름 이미지 형식 사용자 지정 이미지 - 공유 이미지 갤러리 * 공유 이미지 갤러리 VM 이미지를 만들 때 지정한 대상 Azure 컴퓨팅 갤러리의 이름 Image VM 이미지를 만들 때 지정한 VM 이미지 정의 이름 버전 VM 이미지를 만들 때 지정한 버전 번호 운영 체제 Windows OS 배포 windowsserver OS sku 선택한 OS 버전의 제품 코드(예: microsoftwindowsserver-2019-datacenter) * 공유 이미지 갤러리는 Azure Compute 갤러리의 또 다른 이름입니다. VM 이미지를 만드는 동안 만들어진 리소스 중 하나입니다.
일괄 처리 풀 노드가 할당된 후 일괄 처리 풀 노드 페이지로 이동한 다음 제목 메뉴에서 연결을 선택합니다.
연결 창에서 사용자 생성 옵션을 선택하고 임의의 사용자 생성 단추를 선택한 다음 RDP 파일 다운로드를 선택합니다.
다운로드한 RDP 파일을 실행하여 새 일괄 처리 노드에 연결합니다.
Python 설치를 다시 테스트하여 사전 설치된 버전이 제대로 작동하는지 확인합니다.
참조
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.