A4 VM으로 AI에 최적화된 Slurm 클러스터 만들기
이 페이지에서는 gcloud CLI 및 Cluster Toolkit을 사용하여 A4 가속기 최적화 머신 유형으로 AI에 최적화된 Slurm 클러스터를 빠르게 만들고 배포하는 방법을 설명합니다.
A4 가속기 최적화 머신 유형에는 NVIDIA B200 GPU가 연결되어 있으며 Slurm 클러스터가 대규모 모델 학습 및 추론을 효율적으로 처리할 수 있도록 집약적인 AI 컴퓨팅을 위해 특별히 설계되었습니다. 의 A4 가속기 최적화 머신 유형에 대한 자세한 내용은 Google Cloud GPU 머신 유형을 참고하세요.
또는 Cluster Director를 사용하여 A4 기반 Slurm 클러스터를 만들 수 있습니다. Cluster Director는 클러스터 배포를 간소화하고 자동화하여 운영 오버헤드를 줄이는 관리형 서비스입니다. 자세한 내용은 템플릿을 기반으로 AI에 최적화된 클러스터 만들기를 참고하세요.
콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 Google Cloud 둘러보기를 클릭합니다.
튜토리얼 개요
이 튜토리얼에서는 A4 가속기 최적화 머신 유형을 사용하여 AI에 최적화된 Slurm 클러스터를 설정하는 단계를 설명합니다. 구체적으로는 Compute Engine 가상 머신으로 클러스터를 설정하고, 필요한 Terraform 모듈을 저장할 Cloud Storage 버킷을 만들고, Slurm 클러스터를 프로비저닝할 Filestore 인스턴스를 설정합니다. 이 튜토리얼의 단계를 완료하려면 다음 프로세스를 따르세요.
- 필요한 권한과 환경 변수를 사용하여 Google Cloud 프로젝트를 설정합니다.
- Cloud Storage 버킷을 설정합니다.
- Cluster Toolkit을 설정합니다.
- Cluster Toolkit 디렉터리로 전환합니다.
- Slurm 배포 YAML 파일을 만듭니다.
- 청사진을 사용하여 Slurm 클러스터를 프로비저닝합니다.
- Slurm 클러스터에 연결합니다.
시작하기 전에
- 용량 블록을 예약합니다. 머신 1대에 대한
a4-highgpu-8g이 튜토리얼에는 이러한 머신이 필요합니다. Slurm 클러스터를 프로비저닝하기에 충분한 Filestore 할당량이 있는지 확인합니다. 최소 10,240GiB의 스토리지 영역 용량(대규모 SSD 용량이라고도 함)이 필요합니다.
Filestore 할당량을 확인하려면 Google Cloud 콘솔에서 할당량 및 시스템 한도를 확인하고 테이블을 필터링하여 Filestore 리소스만 표시합니다.
- Filestore 할당량을 확인하는 방법에 관한 자세한 내용은 API별 할당량 보기를 참고하세요.
- 할당량이 충분하지 않으면 할당량 증가를 요청하세요.
Compute Engine, Filestore, Cloud Storage, 서비스 사용량, Cloud Resource Manager API를 사용 설정합니다.
필요한 역할
이 튜토리얼을 완료하려면 Compute Engine 기본 서비스 계정 및 사용자 계정에 부여된 IAM 역할이 필요합니다.
Compute Engine 기본 서비스 계정에 필요한 역할 가져오기
Slurm 클러스터를 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
스토리지 객체 뷰어 (
roles/storage.objectViewer) 프로젝트에 대한 -
Compute 인스턴스 관리자 (v1) (
roles/compute.instanceAdmin.v1) 프로젝트의 -
서비스 계정 사용자 (
roles/iam.serviceAccountUser) 서비스 계정 자체에 대한
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참고하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
사용자 계정에 필요한 역할 가져오기
Cloud Storage 버킷을 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 스토리지 관리자 (roles/storage.admin) IAM 역할을 부여해 달라고 요청하세요.
비용
이 튜토리얼을 실행하는 비용은 튜토리얼 설정 또는 작업 실행과 같이 완료하는 각 섹션에 따라 다릅니다. 가격 계산기를 사용하여 비용을 계산할 수 있습니다.
이 튜토리얼 설정 비용을 추정하려면 다음 사양을 사용하세요.
- 리전당 Filestore (표준) 용량: 10,240GiB
- 표준 영구 디스크: Slurm 로그인 노드용 50GB
pd-standard - 성능(SSD) 영구 디스크: Slurm 컨트롤러용 50GB
pd-ssd - VM 인스턴스: 1
a4-highgpu-8g
Cloud Shell 실행
이 튜토리얼에서는 Cloud Shell을 사용합니다. Cloud Shell은 에서 호스팅되는 리소스를 관리하기 위한 셸 환경입니다. Google Cloud
Cloud Shell에는 Google Cloud CLI가 사전 설치되어 있습니다. gcloud CLI는 의 기본 명령줄 인터페이스를 제공합니다 Google Cloud. Cloud Shell 시작:
Google Cloud 콘솔로 이동합니다.
콘솔의 오른쪽 상단에서 Cloud Shell 활성화 버튼(
)을 클릭합니다.
Cloud Shell 세션이 시작되면 명령줄 프롬프트가 표시됩니다.
이 셸을 사용하여 gcloud 및 Cluster Toolkit 명령어를 실행합니다.
환경 변수 설정하기
Cloud Shell에서 튜토리얼의 나머지 부분에 사용할 다음 환경 변수를 설정합니다. 이러한 환경 변수는 다음 작업의 자리표시자 값을 설정합니다.
예약된
a4-highgpu-8g머신에 액세스하는 데 필요한 관련 값으로 프로젝트를 구성합니다.Cluster Toolkit 모듈을 저장할 Cloud Storage 버킷을 설정합니다.
예약 용량 변수
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
다음을 바꿉니다.
A4_RESERVATION_PROJECT_ID: A4 머신 유형 예약 블록이 부여된 Google Cloud 프로젝트 ID입니다.A4_RESERVATION_NAME: 프로젝트에서 사용되는 GPU 예약의 이름입니다. 예를 들면a4high-exr입니다.A4_DEPLOYMENT_NAME: Slurm 클러스터 배포의 고유한 이름입니다. 예를 들면my-slurm-cluster-deployment입니다.A4_REGION: 예약된 A4 머신 예약 블록을 실행하는 리전입니다. 예를 들면us-central1입니다.A4_ZONE: 예약된 머신이 포함된 영역입니다. 이 문자열에는 리전과 영역이 모두 포함되어야 합니다. 예를 들면us-central1-a입니다.A4_DEPLOYMENT_FILE_NAME: Slurm 청사진 YAML 파일의 고유한 이름입니다. 이 튜토리얼을 두 번 이상 실행하는 경우 매번 고유한 배포 이름을 선택합니다.
스토리지 용량 변수
Cloud Storage 버킷의 환경 변수를 만듭니다.
Cluster Toolkit은 청사진을 사용하여 VM 클러스터를 정의하고 배포합니다. 청사진은 Cloud 인프라를 프로비저닝하는 하나 이상의 Terraform 모듈을 정의합니다. 이 버킷은 이러한 청사진을 저장하는 데 사용됩니다.
export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION
다음을 바꿉니다.
GOOGLE_CLOUD_BUCKET_NAME: 버킷 이름 지정 요구사항을 충족하는 Cloud Storage 버킷에 사용할 이름입니다.GOOGLE_CLOUD_BUCKET_LOCATION: Cloud Storage 버킷을 만들 리전입니다(예:us-central1). Google Cloud
A4 승인 프로젝트로 전환
다음 명령어를 실행하여 A4 머신 유형에 대해 승인된 예약 블록이 있는 Google Cloud 프로젝트에 있는지 확인합니다.
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Cloud Storage 버킷 만들기
Terraform 모듈을 저장할 버킷을 만듭니다. Cloud Shell에서 환경 변수를 사용하여 다음 명령어를 실행합니다.
Terraform을 사용할 때는 버전이 사용 설정된 파일에 상태를 원격으로 저장하는 것이 좋습니다. 에서 Google Cloud버전 관리가 사용 설정된 Cloud Storage 버킷을 만들 수 있습니다.
gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${GOOGLE_CLOUD_BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning
Cluster Toolkit 설정
프로젝트에서 Slurm 클러스터를 만들려면 Cluster Toolkit을 사용하여 클러스터 배포 및 프로비저닝을 처리하면 됩니다. Google Cloud Cluster Toolkit은 에 워크로드를 배포하는 프로세스를 간소화하기 위해 Google Cloud 에서 제공하는 오픈소스 소프트웨어입니다 Google Cloud.
다음 단계에 따라 Cluster Toolkit을 설정합니다.
Cluster Toolkit 설치
Cluster Toolkit을 설치하려면 다음 단계를 완료하여 사전 빌드된 바이너리 번들을 다운로드하세요.
Cloud Shell에서 Cluster Toolkit 버전 태그를 설정합니다.
export TAG=LATEST_VERSION_TAG
LATEST_VERSION_TAG를 최신 Cluster Toolkit 버전의 태그( 예:v1.82.0)로 바꿉니다.curl명령어를 사용하여gcluster_bundle_linux.zip파일을 다운로드합니다.curl -LO https://github.com/GoogleCloudPlatform/cluster-toolkit/releases/download/${TAG}/gcluster_bundle_linux.zip번들 파일을 새
gcluster-bundle디렉터리로 추출합니다.unzip gcluster_bundle_linux.zip -d gcluster-bundle
gcluster-bundle디렉터리로 이동합니다.cd gcluster-bundle
바이너리
gcluster파일을 만듭니다.chmod +x gcluster
설치를 확인하려면 다음 명령어를 실행합니다.
./gcluster --version
바이너리를 설치한 후 이제 클러스터를 배포하여 작업 또는 워크로드를 실행할 수 있습니다.
배포 파일 만들기
Cluster Toolkit 디렉터리에서 Slurm 배포 YAML 파일을 만듭니다.
nano ${A4_DEPLOYMENT_FILE_NAME}.yaml다음 콘텐츠를 YAML 파일에 붙여넣습니다.
--- terraform_backend_defaults: type: gcs configuration: bucket: GOOGLE_CLOUD_BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1파일을 저장하고 종료하려면 Ctrl+O > Enter > Ctrl+X 를 누릅니다.
Slurm 클러스터 프로비저닝
Slurm 클러스터를 프로비저닝하려면 다음 배포 명령어를 실행합니다. 이
명령어는 examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml 청사진 파일을 사용하여 Slurm 클러스터를 프로비저닝합니다.
Cloud Shell에서 클러스터 만들기를 시작합니다.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
클러스터에 연결
배포 후 Google Cloud 콘솔에 연결하여 클러스터를 확인합니다.
Google Cloud 콘솔에서 Compute Engine > VM 인스턴스 페이지로 이동합니다.
a4high-login-001과 유사한 로그인 노드를 찾습니다.SSH 를 클릭하여 연결합니다.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
Slurm 클러스터 폐기
더 이상 필요하지 않은 리소스는 정리하는 것이 좋습니다.
기본적으로 A4 High 청사진은 Filestore 인스턴스에 삭제 보호를 사용 설정합니다. Slurm 클러스터를 폐기할 때는 destroy 명령어를 실행하기 전에 삭제 보호를 사용 중지해야 합니다.
삭제 보호 사용 중지
인스턴스를 업데이트할 때 삭제 보호를 중지하려면 다음과 유사한 명령어를 사용합니다.
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
INSTANCE_NAME을 수정하려는 인스턴스의 이름으로 바꿉니다. 예를 들면 my-genomics-instance입니다.
INSTANCE_NAME을 찾으려면 gcloud filestore instances
list을 실행하면 됩니다. 이 명령어는 현재
프로젝트의 모든 Filestore 인스턴스(이름, 위치(영역),
등급, 용량, 상태 포함)를 나열합니다. Google Cloud
명령어를 실행한 후 이 튜토리얼에서 실행 중인 a4-highgpu-8g 머신과 일치하는 Filestore 인스턴스를 찾습니다.
Slurm 클러스터 폐기
destroy 명령어를 실행하기 전에 Cluster Toolkit 디렉터리의 루트로 이동합니다. 기본적으로
DEPLOYMENT_FOLDER는 Cluster Toolkit 디렉터리의 루트에 있습니다.클러스터를 폐기하려면 다음을 실행합니다.
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
DEPLOYMENT_FOLDER를 배포 폴더의 이름으로 바꿉니다. 일반적으로DEPLOYMENT_NAME과 동일합니다.
폐기가 완료되면 다음과 유사한 메시지가 표시됩니다.
Destroy complete! Resources: xx destroyed.
스토리지 버킷 삭제
이전 명령어가 오류 없이 종료되었는지 확인한 후 Cloud Storage 버킷을 삭제합니다.
gcloud storage buckets delete gs://${GOOGLE_CLOUD_BUCKET_NAME}
문제 해결
오류: 스토리지가 남아 있지 않아 Cloud Shell에서 클러스터를 프로비저닝할 수 없습니다.
Cloud Shell을 자주 사용하는 사용자이고 스토리지 공간이 부족한 경우 이 오류가 표시될 수 있습니다.
이 문제를 해결하려면 Cloud Shell 사용 중지 또는 재설정을 참고하세요.
오류: 클러스터 또는 청사진 이름이 이미 있습니다.
이 튜토리얼에서 이미 사용된 파일 이름과 정확히 같은 이름을 사용한 프로젝트를 사용하는 경우 이 오류가 표시될 수 있습니다. 예를 들어 조직의 다른 사용자가 이 튜토리얼을 처음부터 끝까지 진행한 경우입니다.
이 문제를 해결하려면 튜토리얼을 다시 실행하고 배포 파일의 고유한 이름을 선택한 다음 새 배포 파일로 Slurm 클러스터 프로비저닝 명령어를 다시 실행합니다.
다음 단계
- 고급 Slurm 태스크:
- Slurm 클러스터를 재배포하는 방법 알아보기
- Slurm 클러스터에서 네트워크 성능을 테스트하는 방법 알아보기
- 호스트 이벤트를 관리하는 방법 알아보기
- 컴퓨팅 인스턴스의 토폴로지 보기
- Slurm 클러스터에서 컴퓨팅 인스턴스 모니터링
- 오작동하는 호스트 신고