이 문서에서는 하나 이상의 외부 저장소 볼륨을 사용하는 Batch 작업을 만들고 실행하는 방법을 설명합니다. 외부 저장소 옵션에는 신규 또는 기존 영구 디스크, 새로운 로컬 SSD, 기존 Cloud Storage 버킷, Filestore 파일 공유와 같은 기존 네트워크 파일 시스템(NFS)이 포함되어 있습니다.
외부 저장소 볼륨의 추가 여부와 상관없이 작업의 각 Compute Engine VM에는 작업의 운영체제(OS) 이미지와 안내를 제공하는 부팅 디스크가 있습니다. 작업의 부팅 디스크 구성에 대한 자세한 내용은 대신 VM OS 환경 개요를 참조하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 Batch 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
) -
Cloud Storage 버킷을 사용하는 작업 만들기: 버킷의 스토리지 객체 뷰어(
roles/storage.objectViewer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
프로젝트에 대한 Batch 작업 편집자(
스토리지 볼륨을 사용하는 작업 만들기
필요한 경우 작업에서 다음 유형의 외부 저장소 볼륨 중 하나 이상을 사용할 수 있습니다. 모든 스토리지 볼륨 유형 및 각 유형의 차이 및 제한에 대한 자세한 내용은 Compute Engine VM 스토리지 옵션 문서를 참조하세요.
- 영구 디스크: 영역별 또는 리전별 영구 블록 스토리지
- 로컬 SSD: 고성능 임시 블록 스토리지
- Cloud Storage 버킷: 저렴한 객체 스토리지
- 네트워크 파일 시스템(NFS): 네트워크 파일 시스템 프로토콜을 따르는 분산 파일 시스템(예: Google Cloud에서 호스팅되는 고성능 Filestore 파일 공유)
작업 정의에 스토리지 볼륨을 포함하고 실행 가능한 항목에 마운트 경로(mountPath
)를 지정하여 작업이 각 스토리지 볼륨을 사용하도록 허용할 수 있습니다. 스토리지 볼륨을 사용하는 작업을 만드는 방법을 알아보려면 다음 섹션 중 하나 이상의 참조하세요.
영구 디스크 사용
영구 디스크를 사용하는 작업에는 다음과 같은 제한사항이 있습니다.
모든 영구 디스크: 모든 영구 디스크의 제한사항을 검토하세요.
새 영구 디스크와 기존 영구 디스크 비교: 작업의 각 영구 디스크는 새 영구 디스크(작업에 정의되고 작업에서 생성됨)이거나 기존 영구 디스크(프로젝트에서 이미 만들어지고 작업에 지정됨)일 수 있습니다. 영구 디스크를 사용하려면 작업의 VM에 포맷하고 마운트해야 하며, VM은 영구 디스크와 동일한 위치에 있어야 합니다. Batch는 작업에 포함하는 모든 영구 디스크를 마운트하고 새 영구 디스크를 포맷하지만, 작업에 사용하려는 기존 영구 디스크는 포맷하고 마운트를 해제해야 합니다.
지원되는 위치 옵션, 형식 옵션, 마운트 옵션은 다음 표의 설명처럼 신규 및 기존 영구 디스크 간에 다릅니다.
새로운 영구 디스크 기존 영구 디스크 형식 옵션 영구 디스크는
ext4
파일 시스템으로 자동 포맷됩니다.작업에 사용하려면 먼저
ext4
파일 시스템을 사용할 수 있도록 영구 디스크를 포맷해야 합니다.마운트 옵션 모든 옵션이 지원됩니다.
쓰기를 제외한 모든 옵션이 지원됩니다. 이는 멀티 작성자 모드의 제한 사항 때문입니다.
작업에 사용하려면 먼저 연결된 모든 VM에서 영구 디스크를 분리해야 합니다.
위치 옵션 영역별 영구 디스크만 만들 수 있습니다.
작업의 모든 위치를 선택할 수 있습니다. 영구 디스크는 프로젝트가 실행되는 영역에 생성됩니다.
영역별 및 리전별 영구 디스크를 선택할 수 있습니다.
작업의 위치(지정된 경우 해당 작업의 허용된 위치)를 작업의 모든 영구 디스크가 포함된 위치만으로 설정해야 합니다. 예를 들어, 영역별 영구 디스크의 경우 작업 위치가 디스크 영역이어야 합니다. 각각의 기존 리전별 영구 디스크의 경우에는 작업 위치가 디스크 리전이어야 하고, 영역을 지정할 경우에는 리전별 영구 디스크가 위치한 특정 영역 중 하나 또는 모두여야 합니다.인스턴스 템플릿. 이 작업을 만드는 동안 VM 인스턴스 템플릿을 사용하려면 이 작업의 영구 디스크를 인스턴스 템플릿에 연결해야 합니다. 인스턴스 템플릿을 사용하지 않으려면 작업 정의에 영구 디스크를 직접 연결해야 합니다.
Google Cloud 콘솔, gcloud CLI, Batch API, C++, Go, Java, Node.js 또는 Python을 사용하여 영구 디스크를 사용하는 작업을 만들 수 있습니다.
콘솔
다음 예시에서는 Google Cloud 콘솔을 사용하여 us-central1-a
영역에 있는 기존 영역 영구 디스크에서 파일을 읽는 스크립트를 실행하는 작업을 만듭니다. 예시 스크립트는 루트 디렉터리에 example.txt
라는 텍스트 파일이 포함된 기존 영역 영구 디스크가 작업에 있다고 가정합니다.
선택사항: 영역 영구 디스크 예시 만들기
예시 스크립트를 실행하는 데 사용할 수 있는 영역 영구 디스크를 만들려면 작업을 만들기 전에 다음을 수행합니다.
example-disk
라는 새로운 빈 영구 디스크를us-central1-a
영역의 Linux VM에 연결한 후 VM에서 명령어를 실행하여 디스크를 포맷하고 마운트합니다. 자세한 내용은 VM에 영구 디스크 추가를 참조하세요.아직 VM에서 연결 해제하지 마세요.
영구 디스크에
example.txt
를 만들려면 VM에서 다음 명령어를 실행합니다.현재 작업 디렉터리를 영구 디스크의 루트 디렉터리로 변경하려면 다음 명령어를 입력합니다.
cd VM_MOUNT_PATH
VM_MOUNT_PATH를 이전 단계에서 영구 디스크를 이 VM에 마운트한 디렉터리의 경로로 바꿉니다(예:
/mnt/disks/example-disk
).Enter
키를 누릅니다.example.txt
라는 파일을 만들어 정의하려면 다음 명령어를 입력합니다.cat > example.txt
Enter
키를 누릅니다.파일 콘텐츠를 입력합니다. 예를 들어
Hello world!
를 입력합니다.파일을 저장하려면
Ctrl+D
(또는 macOS의 경우Command+D
)를 누릅니다.
완료되면 VM에서 연결 해제할 수 있습니다.
VM에서 영구 디스크를 분리합니다.
VM이 더 이상 필요하지 않으면 VM을 삭제하면 됩니다. 그러면 영구 디스크가 자동으로 분리됩니다.
그렇지 않으면 영구 디스크를 분리하세요. 자세한 내용은 부팅 디스크 분리 및 재연결을 참조하여 VM의 부팅 디스크 대신
example-disk
영구 디스크를 분리하세요.
기존 영역 영구 디스크를 사용하는 작업 만들기
Google Cloud 콘솔을 사용하여 기존 영역 영구 디스크를 사용하는 작업을 만들려면 다음을 수행합니다.
Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.
만들기를 클릭합니다. 일괄 작업 만들기 페이지가 열립니다. 왼쪽 창에서 작업 세부정보 페이지가 선택됩니다.
작업 세부정보 페이지를 구성합니다.
선택사항: 작업 이름 필드에서 작업 이름을 맞춤설정합니다.
예를 들어
example-disk-job
를 입력합니다.태스크 세부정보 섹션을 구성합니다.
새 실행 가능 항목 창에서 이 작업을 실행할 스크립트 또는 컨테이너를 하나 이상 추가합니다.
예를 들어 이름이
example.txt
이고 이 작업에서 사용하는 영구 디스크의 루트 디렉터리에 있는 파일의 콘텐츠를 출력하는 스크립트를 실행하려면 다음을 수행합니다.스크립트 체크박스를 선택합니다. 텍스트 상자가 나타납니다.
텍스트 상자에 다음 스크립트를 입력합니다.
echo "Here is the content of the example.txt file in the persistent disk." cat MOUNT_PATH/example.txt
MOUNT_PATH를 이 작업의 VM에 영구 디스크를 마운트할 경로로 바꿉니다(예:
/mnt/disks/example-disk
).완료를 클릭합니다.
태스크 수 필드에 이 작업의 태스크 수를 입력합니다.
예를 들어
1
(기본값)을 입력합니다.동시 로드 필드에 동시에 실행할 작업 수를 입력합니다.
예를 들어
1
(기본값)을 입력합니다.
리소스 사양 페이지를 구성합니다.
왼쪽 창에서 리소스 사양을 클릭합니다. 리소스 사양 페이지가 열립니다.
이 작업의 위치를 선택합니다. 기존 영역 영구 디스크를 사용하려면 작업의 VM이 같은 영역에 있어야 합니다.
리전 필드에서 리전을 선택합니다.
예를 들어 영역별 영구 디스크 예시를 사용하려면
us-central1 (Iowa)
(기본값)을 선택합니다.영역 필드에서 영역을 선택합니다.
예를 들어
us-central1-a (Iowa)
를 선택하세요.
추가 구성 페이지를 구성합니다.
왼쪽 창에서 추가 구성을 클릭합니다. 추가 구성 페이지가 열립니다.
이 작업에 마운트하려는 기존 영역 영구 디스크마다 다음을 수행합니다.
스토리지 볼륨 섹션에서 새 볼륨 추가를 클릭합니다. 새 볼륨 창이 나타납니다.
새 볼륨 창에서 다음을 수행합니다.
볼륨 유형 섹션에서 영구 디스크(기본값)를 선택합니다.
디스크 목록에서 이 작업에 마운트하려는 기존 영역 영구 디스크를 선택합니다. 디스크는 이 작업과 같은 영역에 있어야 합니다.
예를 들어 준비한 기존 영역 영구 디스크를 선택합니다. 이 디스크는
us-central1-a
영역에 위치하고example.txt
파일이 포함되어 있습니다.선택사항: 이 영역 영구 디스크의 이름을 바꾸려면 다음을 수행합니다.
기기 이름 맞춤설정을 선택합니다.
기기 이름 필드에 디스크의 새 이름을 입력합니다.
마운트 경로 필드에 이 영구 디스크의 마운트 경로(MOUNT_PATH)를 입력합니다.
예를 들어 다음을 입력합니다.
/mnt/disks/EXISTING_PERSISTENT_DISK_NAME
EXISTING_PERSISTENT_DISK_NAME을 디스크 이름으로 바꿉니다. 영역 영구 디스크 이름을 바꿨으면 새 이름을 사용합니다.
예를 들어 EXISTING_PERSISTENT_DISK_NAME을
example-disk
로 바꿉니다.완료를 클릭합니다.
선택사항: 이 작업의 다른 필드를 구성합니다.
선택사항: 작업 구성을 검토하려면 왼쪽 창에서 미리보기를 클릭합니다.
만들기를 클릭합니다.
작업 세부정보 페이지에 자신이 만든 작업이 표시됩니다.
gcloud
다음 예시에서는 gcloud CLI를 사용하여 기존 영구 디스크와 새 영구 디스크를 연결하고 마운트하는 작업을 만듭니다.
작업에는 3개의 태스크가 있으며, 각 태스크는 스크립트를 실행하여 output_task_TASK_INDEX.txt
라는 새로운 영구 디스크에 파일을 만듭니다. 여기서 TASK_INDEX는 각 태스크의 색인 0, 1, 2에 해당합니다.
gcloud CLI를 사용하여 영구 디스크를 사용하는 작업을 만들려면 gcloud batch jobs submit
명령어를 사용합니다.
작업의 JSON 구성 파일에서 instances
필드에 영구 디스크를 지정하고 volumes
필드에 영구 디스크를 마운트합니다.
JSON 파일을 만듭니다.
이 작업에 인스턴스 템플릿을 사용하지 않는 경우 다음 콘텐츠로 JSON 파일을 만드세요.
{ "allocationPolicy": { "instances": [ { "policy": { "disks": [ { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "existingDisk": "projects/PROJECT_ID/EXISTING_PERSISTENT_DISK_LOCATION/disks/EXISTING_PERSISTENT_DISK_NAME" }, { "newDisk": { "sizeGb": NEW_PERSISTENT_DISK_SIZE, "type": "NEW_PERSISTENT_DISK_TYPE" }, "deviceName": "NEW_PERSISTENT_DISK_NAME" } ] } } ], "location": { "allowedLocations": [ "EXISTING_PERSISTENT_DISK_LOCATION" ] } }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/NEW_PERSISTENT_DISK_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "NEW_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/NEW_PERSISTENT_DISK_NAME", "mountOptions": "rw,async" }, { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/EXISTING_PERSISTENT_DISK_NAME" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDEXISTING_PERSISTENT_DISK_NAME
: 기존 영구 디스크의 이름EXISTING_PERSISTENT_DISK_LOCATION
: 기존 영구 디스크의 위치. 기존 영역별 영구 디스크의 경우 작업 위치가 디스크 영역이어야 합니다. 각각의 기존 리전별 영구 디스크의 경우에는 작업 위치가 디스크 리전이어야 하고, 영역을 지정할 경우에는 리전별 영구 디스크가 위치한 특정 영역 중 하나 또는 모두여야 합니다. 기존 영구 디스크를 지정하지 않는 경우 아무 위치나 선택할 수 있습니다.allowedLocations
필드에 대해 자세히 알아보세요.NEW_PERSISTENT_DISK_SIZE
: 새 영구 디스크의 크기(GB)입니다. 허용되는 크기는 영구 디스크 유형에 따라 다르지만 최솟값은 보통 10GB(10
)이고 최댓값은 보통 64TB(64000
)입니다.NEW_PERSISTENT_DISK_TYPE
: 새 영구 디스크의 디스크 유형으로pd-standard
,pd-balanced
,pd-ssd
,pd-extreme
중 하나입니다. 비부팅 영구 디스크의 기본 디스크 유형은pd-standard
입니다.NEW_PERSISTENT_DISK_NAME
: 새 영구 디스크의 이름입니다.
이 작업에 인스턴스 템플릿을 사용하는 경우
instances
필드를 다음과 같이 바꾸는 것을 제외하고는 이전에 표시된 대로 JSON 파일을 만듭니다."instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ],
여기서
INSTANCE_TEMPLATE_NAME
은 이 작업의 인스턴스 템플릿 이름입니다. 영구 디스크를 사용하는 작업의 경우 이 인스턴스 템플릿이 작업에 사용하려는 영구 디스크를 정의하고 연결해야 합니다. 이 예시에서는 템플릿이NEW_PERSISTENT_DISK_NAME
이라는 새 영구 디스크를 정의 및 연결하고EXISTING_PERSISTENT_DISK_NAME
이라는 기존 영구 디스크를 연결해야 합니다.
다음 명령어를 실행합니다.
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
다음을 바꿉니다.
JOB_NAME
: 작업의 이름LOCATION
: 작업의 위치JSON_CONFIGURATION_FILE
: 작업의 구성 세부정보가 포함된 JSON 파일의 경로
API
다음 예시에서는 Batch API를 사용하여 기존 영구 디스크와 새 영구 디스크를 연결하고 마운트하는 작업을 만듭니다. 작업에는 3개의 태스크가 있으며, 각 태스크는 스크립트를 실행하여 output_task_TASK_INDEX.txt
라는 새로운 영구 디스크에 파일을 만듭니다. 여기서 TASK_INDEX는 각 태스크의 색인 0, 1, 2에 해당합니다.
Batch API를 사용하여 영구 디스크를 사용하는 작업을 만들려면 jobs.create
메서드를 사용합니다.
요청에서 instances
필드에 영구 디스크를 지정하고 volumes
필드에 영구 디스크를 마운트합니다.
이 작업에 인스턴스 템플릿을 사용하지 않으려면 다음 요청을 수행하세요.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME { "allocationPolicy": { "instances": [ { "policy": { "disks": [ { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "existingDisk": "projects/PROJECT_ID/EXISTING_PERSISTENT_DISK_LOCATION/disks/EXISTING_PERSISTENT_DISK_NAME" }, { "newDisk": { "sizeGb": NEW_PERSISTENT_DISK_SIZE, "type": "NEW_PERSISTENT_DISK_TYPE" }, "deviceName": "NEW_PERSISTENT_DISK_NAME" } ] } } ], "location": { "allowedLocations": [ "EXISTING_PERSISTENT_DISK_LOCATION" ] } }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/NEW_PERSISTENT_DISK_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "NEW_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/NEW_PERSISTENT_DISK_NAME", "mountOptions": "rw,async" }, { "deviceName": "EXISTING_PERSISTENT_DISK_NAME", "mountPath": "/mnt/disks/EXISTING_PERSISTENT_DISK_NAME" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDLOCATION
: 작업의 위치JOB_NAME
: 작업의 이름EXISTING_PERSISTENT_DISK_NAME
: 기존 영구 디스크의 이름EXISTING_PERSISTENT_DISK_LOCATION
: 기존 영구 디스크의 위치. 기존 영역별 영구 디스크의 경우 작업 위치가 디스크 영역이어야 합니다. 각각의 기존 리전별 영구 디스크의 경우에는 작업 위치가 디스크 리전이어야 하고, 영역을 지정할 경우에는 리전별 영구 디스크가 위치한 특정 영역 중 하나 또는 모두여야 합니다. 기존 영구 디스크를 지정하지 않는 경우 아무 위치나 선택할 수 있습니다.allowedLocations
필드에 대해 자세히 알아보세요.NEW_PERSISTENT_DISK_SIZE
: 새 영구 디스크의 크기(GB)입니다. 허용되는 크기는 영구 디스크 유형에 따라 다르지만 최솟값은 보통 10GB(10
)이고 최댓값은 보통 64TB(64000
)입니다.NEW_PERSISTENT_DISK_TYPE
: 새 영구 디스크의 디스크 유형으로pd-standard
,pd-balanced
,pd-ssd
,pd-extreme
중 하나입니다. 비부팅 영구 디스크의 기본 디스크 유형은pd-standard
입니다.NEW_PERSISTENT_DISK_NAME
: 새 영구 디스크의 이름입니다.
이 작업에 인스턴스 템플릿을 사용하는 경우
instances
필드를 다음과 같이 바꾸는 것을 제외하고는 이전에 표시된 대로 JSON 파일을 만듭니다."instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ], ...
여기서
INSTANCE_TEMPLATE_NAME
은 이 작업의 인스턴스 템플릿 이름입니다. 영구 디스크를 사용하는 작업의 경우 이 인스턴스 템플릿이 작업에 사용하려는 영구 디스크를 정의하고 연결해야 합니다. 이 예시에서는 템플릿이NEW_PERSISTENT_DISK_NAME
이라는 새 영구 디스크를 정의 및 연결하고EXISTING_PERSISTENT_DISK_NAME
이라는 기존 영구 디스크를 연결해야 합니다.
C++
C++용 Cloud 클라이언트 라이브러리를 사용하여 새 영구 디스크 또는 기존 영구 디스크를 사용하는 Batch 작업을 만들려면 CreateJob
함수를 사용하고 다음을 포함합니다.
- 영구 디스크를 작업의 VM에 연결하려면 다음 중 하나를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
set_remote_path
메서드를 사용합니다. - 이 작업에 VM 인스턴스 템플릿을 사용하는 경우
set_instance_template
메서드를 사용합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
- 영구 디스크를 작업에 마운트하려면
volumes
필드를deviceName
및mountPath
필드와 함께 사용합니다. 새 영구 디스크의 경우mountOptions
필드도 사용하여 쓰기를 사용 설정합니다.
유사한 사용 사례의 코드 샘플은 Cloud Storage 버킷 사용을 참조하세요.
Go
Go용 Cloud 클라이언트 라이브러리를 사용하여 새 영구 디스크 또는 기존 영구 디스크를 사용하는 Batch 작업을 만들려면 CreateJob
함수를 사용하고 다음을 포함합니다.
- 영구 디스크를 작업의 VM에 연결하려면 다음 중 하나를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
AllocationPolicy_AttachedDisk
유형을 포함합니다. - 이 작업에 VM 인스턴스 템플릿을 사용하는 경우
AllocationPolicy_InstancePolicyOrTemplate_InstanceTemplate
유형을 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
- 영구 디스크를 작업에 마운트하려면
Volume_DeviceName
유형 및MountPath
필드와 함께Volume
유형을 사용합니다. 새 영구 디스크의 경우MountOptions
필드도 사용하여 쓰기를 사용 설정합니다.
자바
자바용 Cloud 클라이언트 라이브러리를 사용하여 새 영구 디스크 또는 기존 영구 디스크를 사용하는 Batch 작업을 만들려면 CreateJobRequest
클래스를 사용하고 다음을 포함합니다.
- 영구 디스크를 작업의 VM에 연결하려면 다음 중 하나를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
setDisks
메서드를 포함합니다. - 이 작업에 VM 인스턴스 템플릿을 사용하는 경우
setInstanceTemplate
메서드를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
- 영구 디스크를 작업에 마운트하려면
setDeviceName
메서드 및setMountPath
메서드와 함께Volume
클래스를 사용합니다. 새 영구 디스크의 경우setMountOptions
메서드도 사용하여 쓰기를 사용 설정합니다.
예를 들어 다음 코드 샘플을 사용하세요.
Node.js
Node.js용 Cloud 클라이언트 라이브러리를 사용하여 새 영구 디스크 또는 기존 영구 디스크를 사용하는 Batch 작업을 만들려면 createJob
메서드를 사용하고 다음을 포함합니다.
- 영구 디스크를 작업의 VM에 연결하려면 다음 중 하나를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
AllocationPolicy.AttachedDisk
클래스를 포함합니다. - 이 작업에 VM 인스턴스 템플릿을 사용하는 경우
instanceTemplate
속성을 포함하세요.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
- 영구 디스크를 작업에 마운트하려면
deviceName
속성 및mountPath
속성과 함께Volume
클래스를 사용합니다. 새 영구 디스크의 경우mountOptions
속성도 사용하여 쓰기를 사용 설정합니다.
Python
Python용 Cloud 클라이언트 라이브러리를 사용하여 새 영구 디스크 또는 기존 영구 디스크를 사용하는 Batch 작업을 만들려면 CreateJob
함수를 사용하고 다음을 포함합니다.
- 영구 디스크를 작업의 VM에 연결하려면 다음 중 하나를 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
AttachedDisk
클래스를 포함합니다. - 이 작업에 VM 인스턴스 템플릿을 사용하는 경우
instance_template
속성을 포함합니다.
- 이 작업에 VM 인스턴스 템플릿을 사용하지 않는 경우
- 영구 디스크를 작업에 마운트하려면
device_name
속성 및mount_path
속성과 함께Volume
클래스를 사용합니다. 새 영구 디스크의 경우mount_options
속성도 사용하여 쓰기를 사용 설정합니다.
예를 들어 다음 코드 샘플을 사용합니다.
로컬 SSD 사용
로컬 SSD를 사용하는 작업에는 다음과 같은 제한사항이 있습니다.
- 모든 로컬 SSD. 모든 로컬 SSD의 제한사항을 검토하세요.
- 인스턴스 템플릿. 이 작업을 만드는 동안 VM 인스턴스 템플릿을 지정하려면 이 작업의 영구 디스크를 인스턴스 템플릿에 연결해야 합니다. 인스턴스 템플릿을 사용하지 않으려면 작업 정의에 영구 디스크를 직접 연결해야 합니다.
gcloud CLI, Batch API, Java 또는 Python을 사용하여 로컬 SSD를 사용하는 작업을 만들 수 있습니다.
다음 예시에서는 로컬 SSD를 만들고, 연결, 마운트하는 작업을 만드는 방법을 설명합니다. 또한 이 작업에는 3개의 태스크가 있으며, 각 태스크는 스크립트를 실행하여 output_task_TASK_INDEX.txt
라는 로컬 SSD에 파일을 만듭니다. 여기서 TASK_INDEX
는 각 태스크 0
, 1
, 2
의 색인입니다.
gcloud
gcloud CLI를 사용하여 로컬 SSD를 사용하는 작업을 만들려면 gcloud batch jobs submit
명령어를 사용합니다.
작업의 JSON 구성 파일에서 instances
필드에 로컬 SS를 만들어 연결하고 volumes
필드에 로컬 SSD를 마운트합니다.
JSON 파일을 만듭니다.
이 작업에 인스턴스 템플릿을 사용하지 않는 경우 다음 콘텐츠로 JSON 파일을 만드세요.
{ "allocationPolicy": { "instances": [ { "policy": { "machineType": MACHINE_TYPE, "disks": [ { "newDisk": { "sizeGb": LOCAL_SSD_SIZE, "type": "local-ssd" }, "deviceName": "LOCAL_SSD_NAME" } ] } } ] }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/LOCAL_SSD_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "LOCAL_SSD_NAME", "mountPath": "/mnt/disks/LOCAL_SSD_NAME", "mountOptions": "rw,async" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
MACHINE_TYPE
: 작업의 VM에 대해 사전 정의되거나 커스텀일 수 있는 머신 유형. 허용되는 로컬 SSD 수는 작업 VM의 머신 유형에 따라 다릅니다.LOCAL_SSD_NAME
: 이 작업에 대해 생성된 로컬 SSD의 이름LOCAL_SSD_SIZE
: 모든 로컬 SSD의 크기(GB). 각 로컬 SSD는 375GB이므로 이 값은375
GB의 배수여야 합니다. 예를 들어 2개의 로컬 SSD의 경우 이 값을750
GB로 설정합니다.
이 작업에 인스턴스 템플릿을 사용하는 경우
instances
필드를 다음과 같이 바꾸는 것을 제외하고는 이전에 표시된 대로 JSON 파일을 만듭니다."instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ],
여기서
INSTANCE_TEMPLATE_NAME
은 이 작업의 인스턴스 템플릿 이름입니다. 로컬 SSD를 사용하는 작업의 경우 이 인스턴스 템플릿은 작업에 사용하려는 로컬 SSD를 정의하고 연결해야 합니다. 이 예시에서는 템플릿이LOCAL_SSD_NAME
이라는 로컬 SSD를 정의하고 연결해야 합니다.
다음 명령어를 실행합니다.
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
다음을 바꿉니다.
JOB_NAME
: 작업의 이름LOCATION
: 작업의 위치JSON_CONFIGURATION_FILE
: 작업의 구성 세부정보가 포함된 JSON 파일의 경로
API
Batch API를 사용하여 로컬 SSD를 사용하는 작업을 만들려면 jobs.create
메서드를 사용합니다.
요청에서 instances
필드에 로컬 SSD를 생성하여 연결하고 volumes
필드에 로컬 SSD를 마운트합니다.
이 작업에 인스턴스 템플릿을 사용하지 않으려면 다음 요청을 수행하세요.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME { "allocationPolicy": { "instances": [ { "policy": { "machineType": MACHINE_TYPE, "disks": [ { "newDisk": { "sizeGb": LOCAL_SSD_SIZE, "type": "local-ssd" }, "deviceName": "LOCAL_SSD_NAME" } ] } } ] }, "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> /mnt/disks/LOCAL_SSD_NAME/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "deviceName": "LOCAL_SSD_NAME", "mountPath": "/mnt/disks/LOCAL_SSD_NAME", "mountOptions": "rw,async" } ] }, "taskCount":3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDLOCATION
: 작업의 위치JOB_NAME
: 작업의 이름MACHINE_TYPE
: 작업의 VM에 대해 사전 정의되거나 커스텀일 수 있는 머신 유형. 허용되는 로컬 SSD 수는 작업 VM의 머신 유형에 따라 다릅니다.LOCAL_SSD_NAME
: 이 작업에 대해 생성된 로컬 SSD의 이름LOCAL_SSD_SIZE
: 모든 로컬 SSD의 크기(GB). 각 로컬 SSD는 375GB이므로 이 값은375
GB의 배수여야 합니다. 예를 들어 2개의 로컬 SSD의 경우 이 값을750
GB로 설정합니다.
이 작업에 인스턴스 템플릿을 사용하는 경우
instances
필드를 다음과 같이 바꾸는 것을 제외하고는 이전에 표시된 대로 JSON 파일을 만듭니다."instances": [ { "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ], ...
여기서
INSTANCE_TEMPLATE_NAME
은 이 작업의 인스턴스 템플릿 이름입니다. 로컬 SSD를 사용하는 작업의 경우 이 인스턴스 템플릿은 작업에 사용하려는 로컬 SSD를 정의하고 연결해야 합니다. 이 예시에서는 템플릿이LOCAL_SSD_NAME
이라는 로컬 SSD를 정의하고 연결해야 합니다.
Go
자바
Node.js
Python
Cloud Storage 버킷 사용
기존 Cloud Storage 버킷을 사용하는 작업을 만들려면 다음 방법 중 하나를 선택합니다.
- 권장사항: 이 섹션에 나와 있는 것처럼 작업 정의에 버킷을 지정하여 작업의 VM에 버킷을 직접 마운트합니다. 작업이 실행되면 Cloud Storage FUSE를 사용하여 작업의 VM에 버킷이 자동으로 마운트됩니다.
- gcloud CLI 또는 Cloud Storage API용 클라이언트 라이브러리를 사용하여 Cloud Storage 버킷에 직접 액세스하는 태스크로 작업을 만듭니다. VM에서 직접 Cloud Storage 버킷에 액세스하는 방법은 Cloud Storage 버킷에서 데이터 읽기 및 읽기에 대한 Compute Engine 문서를 참조하세요.
버킷을 사용하는 작업을 만들기 전에 버킷을 만들거나 기존 버킷을 식별합니다. 자세한 내용은 버킷 만들기 및 버킷 나열을 참조하세요.
Google Cloud 콘솔, gcloud CLI, Batch API, C++, Go, 자바, Node.js 또는 Python을 사용하여 Cloud Storage 버킷을 사용하는 작업을 만들 수 있습니다.
다음 예시에서는 Cloud Storage 버킷을 마운트하는 작업을 만드는 방법을 설명합니다. 또한 이 작업에는 3개의 태스크가 있으며, 각 태스크는 스크립트를 실행하여 output_task_TASK_INDEX.txt
라는 버킷에 파일을 만듭니다. 여기서 TASK_INDEX
는 각 태스크 색인 0
, 1
, 2
입니다.
콘솔
Google Cloud 콘솔을 사용하여 Cloud Storage 버킷을 사용하는 작업을 만들려면 다음을 수행합니다.
Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.
만들기를 클릭합니다. 일괄 작업 만들기 페이지가 열립니다. 왼쪽 창에서 작업 세부정보 페이지가 선택됩니다.
작업 세부정보 페이지를 구성합니다.
선택사항: 작업 이름 필드에서 작업 이름을 맞춤설정합니다.
예를 들어
example-bucket-job
를 입력합니다.태스크 세부정보 섹션을 구성합니다.
새 실행 가능 항목 창에서 이 작업을 실행할 스크립트 또는 컨테이너를 하나 이상 추가합니다.
예를 들어 다음을 수행합니다.
스크립트 체크박스를 선택합니다. 텍스트 상자가 나타납니다.
텍스트 상자에 다음 스크립트를 입력합니다.
echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt
MOUNT_PATH를 이 작업의 실행 가능 항목에서 기존 Cloud Storage 버킷에 액세스하는 데 사용하는 마운트 경로로 바꿉니다. 경로는
/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 버킷을my-bucket
이라는 디렉터리로 표시하려면 마운트 경로를/mnt/disks/my-bucket
으로 설정합니다.완료를 클릭합니다.
태스크 수 필드에 이 작업의 태스크 수를 입력합니다.
예를 들어
3
를 입력합니다.동시 로드 필드에 동시에 실행할 작업 수를 입력합니다.
예를 들어
1
(기본값)을 입력합니다.
추가 구성 페이지를 구성합니다.
왼쪽 창에서 추가 구성을 클릭합니다. 추가 구성 페이지가 열립니다.
이 작업에 마운트할 각 Cloud Storage 버킷에 대해 다음을 수행합니다.
스토리지 볼륨 섹션에서 새 볼륨 추가를 클릭합니다. 새 볼륨 창이 나타납니다.
새 볼륨 창에서 다음을 수행합니다.
볼륨 유형 섹션에서 Cloud Storage 버킷을 선택합니다.
스토리지 버킷 이름 필드에 기존 버킷 이름을 입력합니다.
예를 들어 이 작업의 실행 가능 항목에 지정된 버킷을 입력합니다.
마운트 경로 필드에 실행 파일에 지정된 버킷의 마운트 경로(MOUNT_PATH)를 입력합니다.
완료를 클릭합니다.
선택사항: 이 작업의 다른 필드를 구성합니다.
선택사항: 작업 구성을 검토하려면 왼쪽 창에서 미리보기를 클릭합니다.
만들기를 클릭합니다.
작업 세부정보 페이지에 자신이 만든 작업이 표시됩니다.
gcloud
gcloud CLI를 사용하여 Cloud Storage 버킷을 사용하는 작업을 만들려면 gcloud batch jobs submit
명령어를 사용합니다.
작업의 JSON 구성 파일에서 volumes
필드에 버킷을 마운트합니다.
예를 들어 Cloud Storage에 파일을 출력하는 작업을 만들려면 다음 안내를 따르세요.
다음 콘텐츠로 JSON 파일을 만듭니다.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "gcs": { "remotePath": "BUCKET_PATH" }, "mountPath": "MOUNT_PATH" } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
BUCKET_PATH
: 이 작업에서 액세스할 버킷 디렉터리의 경로이며 버킷 이름으로 시작해야 합니다. 예를 들어 이름이BUCKET_NAME
인 버킷의 경우BUCKET_NAME
경로는 버킷의 루트 디렉터리를 나타내고BUCKET_NAME/subdirectory
경로는subdirectory
하위 디렉터리를 나타냅니다.MOUNT_PATH
: 작업의 실행 가능 항목이 이 버킷에 액세스하는 데 사용하는 마운트 경로입니다. 경로는/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 버킷을my-bucket
이라는 디렉터리로 표시하려면 마운트 경로를/mnt/disks/my-bucket
으로 설정합니다.
다음 명령어를 실행합니다.
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
다음을 바꿉니다.
JOB_NAME
: 작업의 이름LOCATION
: 작업의 위치JSON_CONFIGURATION_FILE
: 작업의 구성 세부정보가 포함된 JSON 파일의 경로
API
Batch API를 사용하여 Cloud Storage 버킷을 사용하는 작업을 만들려면 jobs.create
메서드를 사용하고 volumes
필드에 버킷을 마운트합니다.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt"
}
}
],
"volumes": [
{
"gcs": {
"remotePath": "BUCKET_PATH"
},
"mountPath": "MOUNT_PATH"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDLOCATION
: 작업의 위치JOB_NAME
: 작업의 이름BUCKET_PATH
: 이 작업에서 액세스할 버킷 디렉터리의 경로. 버킷 이름으로 시작해야 합니다. 예를 들어 이름이BUCKET_NAME
인 버킷의 경우BUCKET_NAME
경로는 버킷의 루트 디렉터리를 나타내고BUCKET_NAME/subdirectory
경로는subdirectory
하위 디렉터리를 나타냅니다.MOUNT_PATH
: 작업의 실행 가능 항목이 이 버킷에 액세스하는 데 사용하는 마운트 경로입니다. 경로는/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 버킷을my-bucket
이라는 디렉터리로 표시하려면 마운트 경로를/mnt/disks/my-bucket
으로 설정합니다.
C++
C++
자세한 내용은 Batch C++ API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
Go
자세한 내용은 Batch Go API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
자바
Java
자세한 내용은 Batch Java API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Node.js
자세한 내용은 Batch Node.js API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Python
자세한 내용은 Batch Python API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
네트워크 파일 시스템 사용
Google Cloud 콘솔, gcloud CLI 또는 Batch API를 사용하여 Filestore 파일 공유와 같은 기존 네트워크 파일 시스템(NFS)을 사용하는 작업을 만들 수 있습니다.
NFS를 사용하는 작업을 만들기 전에 작업의 VM과 NFS 사이에 트래픽을 허용하도록 네트워크 방화벽이 올바르게 구성되었는지 확인합니다. 자세한 내용은 Filestore의 방화벽 규칙 구성을 참조하세요.
다음 예시는 NFS를 지정하고 마운트하는 작업을 만드는 방법을 설명합니다. 또한 이 작업에는 3개의 태스크가 있으며, 각 태스크는 스크립트를 실행하여 output_task_TASK_INDEX.txt
라는 NFS에 파일을 만듭니다. 여기서 TASK_INDEX
는 각 태스크 0
, 1
, 2
의 색인입니다.
콘솔
Google Cloud 콘솔을 사용하여 NFS를 사용하는 작업을 만들려면 다음을 수행합니다.
Google Cloud 콘솔에서 작업 목록 페이지로 이동합니다.
만들기를 클릭합니다. 일괄 작업 만들기 페이지가 열립니다. 왼쪽 창에서 작업 세부정보 페이지가 선택됩니다.
작업 세부정보 페이지를 구성합니다.
선택사항: 작업 이름 필드에서 작업 이름을 맞춤설정합니다.
예를 들어
example-nfs-job
를 입력합니다.태스크 세부정보 섹션을 구성합니다.
새 실행 가능 항목 창에서 이 작업을 실행할 스크립트 또는 컨테이너를 하나 이상 추가합니다.
예를 들어 다음을 수행합니다.
스크립트 체크박스를 선택합니다. 텍스트 상자가 나타납니다.
텍스트 상자에 다음 스크립트를 입력합니다.
echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt
MOUNT_PATH를 작업에서 실행 가능한 NFS에 액세스하는 데 사용하는 마운트 경로로 바꿉니다. 경로는
/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 NFS를my-nfs
라는 디렉터리로 나타내려면 마운트 경로를/mnt/disks/my-nfs
로 설정합니다.완료를 클릭합니다.
태스크 수 필드에 이 작업의 태스크 수를 입력합니다.
예를 들어
3
를 입력합니다.동시 로드 필드에 동시에 실행할 작업 수를 입력합니다.
예를 들어
1
(기본값)을 입력합니다.
추가 구성 페이지를 구성합니다.
왼쪽 창에서 추가 구성을 클릭합니다. 추가 구성 페이지가 열립니다.
이 작업에 마운트할 각 Cloud Storage 버킷에 대해 다음을 수행합니다.
스토리지 볼륨 섹션에서 새 볼륨 추가를 클릭합니다. 새 볼륨 창이 나타납니다.
새 볼륨 창에서 다음을 수행합니다.
볼륨 유형 섹션에서 네트워크 파일 시스템을 선택합니다.
파일 서버 필드에 이 작업의 실행 가능한 항목에 지정된 NFS가 있는 서버의 IP 주소를 입력합니다.
예를 들어 NFS가 Filestore 파일 공유인 경우 Filestore 인스턴스를 기술하여 가져올 Filestore 인스턴스의 IP 주소를 지정할 수 있습니다.
원격 경로 필드에 이전 단계에서 지정한 NFS에 액세스할 수 있는 경로를 입력합니다.
NFS 디렉터리 경로는
/
로 시작하고 그 뒤에 NFS 루트 디렉터리가 와야 합니다.마운트 경로 필드에 이전 단계에서 지정한 NFS의 마운트 경로(MOUNT_PATH)를 입력합니다.
완료를 클릭합니다.
선택사항: 이 작업의 다른 필드를 구성합니다.
선택사항: 작업 구성을 검토하려면 왼쪽 창에서 미리보기를 클릭합니다.
만들기를 클릭합니다.
작업 세부정보 페이지에 자신이 만든 작업이 표시됩니다.
gcloud
gcloud CLI를 사용하여 NFS를 사용하는 작업을 만들려면 gcloud batch jobs submit
명령어를 사용합니다.
작업의 JSON 구성 파일에서 volumes
필드에 NFS를 마운트합니다.
다음 콘텐츠로 JSON 파일을 만듭니다.
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt" } } ], "volumes": [ { "nfs": { "server": "NFS_IP_ADDRESS", "remotePath": "NFS_PATH" }, "mountPath": "MOUNT_PATH" } ] }, "taskCount": 3 } ], "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
NFS_IP_ADDRESS
: NFS의 IP 주소입니다. 예를 들어 NFS가 Filestore 파일 공유인 경우 Filestore 인스턴스를 기술하여 Filestore 인스턴스의 IP 주소를 지정할 수 있습니다.NFS_PATH
: 이 작업에서 액세스할 NFS 디렉터리의 경로이며/
로 시작한 다음 NFS의 루트 디렉터리가 와야 합니다. 예를 들어FILE_SHARE_NAME
이라는 Filestore 파일 공유의 경우/FILE_SHARE_NAME
경로는 파일 공유의 루트 디렉터리를 나타내고/FILE_SHARE_NAME/subdirectory
경로는subdirectory
하위 디렉터리를 나타냅니다.MOUNT_PATH
: 작업의 실행 가능 항목이 이 NFS에 액세스하는 데 사용하는 마운트 경로입니다. 경로는/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 NFS를my-nfs
라는 디렉터리로 나타내려면 마운트 경로를/mnt/disks/my-nfs
로 설정합니다.
다음 명령어를 실행합니다.
gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
다음을 바꿉니다.
JOB_NAME
: 작업의 이름LOCATION
: 작업의 위치JSON_CONFIGURATION_FILE
: 작업의 구성 세부정보가 포함된 JSON 파일의 경로
API
Batch API를 사용하여 NFS를 사용하는 작업을 만들려면 jobs.create
메서드를 사용하고 volumes
필드에 NFS를 마운트합니다.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}. >> MOUNT_PATH/output_task_${BATCH_TASK_INDEX}.txt"
}
}
],
"volumes": [
{
"nfs": {
"server": "NFS_IP_ADDRESS",
"remotePath": "NFS_PATH"
},
"mountPath": "MOUNT_PATH"
}
]
},
"taskCount": 3
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 IDLOCATION
: 작업의 위치JOB_NAME
: 작업의 이름NFS_IP_ADDRESS
: 네트워크 파일 시스템의 IP 주소. 예를 들어 NFS가 Filestore 파일 공유인 경우 Filestore 인스턴스를 기술하여 Filestore 인스턴스의 IP 주소를 지정할 수 있습니다.NFS_PATH
: 이 작업에서 액세스할 NFS 디렉터리의 경로이며/
로 시작한 다음 NFS의 루트 디렉터리가 와야 합니다. 예를 들어FILE_SHARE_NAME
이라는 Filestore 파일 공유의 경우/FILE_SHARE_NAME
경로는 파일 공유의 루트 디렉터리를 나타내고/FILE_SHARE_NAME/subdirectory
경로는 하위 디렉터리를 나타냅니다.MOUNT_PATH
: 작업의 실행 가능 항목이 이 NFS에 액세스하는 데 사용하는 마운트 경로입니다. 경로는/mnt/disks/
로 시작한 다음 선택한 디렉터리 또는 경로가 와야 합니다. 예를 들어 이 NFS를my-nfs
라는 디렉터리로 나타내려면 마운트 경로를/mnt/disks/my-nfs
로 설정합니다.
자바
Node.js
Python
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기