TPU VM에 내구성이 우수한 블록 스토리지 연결

TPU VM에는 10GB 부팅 디스크가 포함됩니다. 일부 시나리오에서는 학습 또는 전처리를 위해 추가 스토리지가 필요합니다. 로컬 디스크 용량을 확장하려면 Google Cloud Hyperdisk 또는 Persistent Disk (PD) 볼륨을 추가하세요.

최고 성능과 고급 기능을 위해 TPU 버전에서 Hyperdisk를 사용할 수 있으면 이를 사용하는 것이 좋습니다. 그렇지 않으면 Persistent Disk를 사용하세요. Compute Engine에서 제공하는 블록 스토리지 옵션에 대한 자세한 내용은 디스크 유형 선택을 참조하세요.

Hyperdisk 및 Persistent Disk에 대한 TPU 지원

다음 표에서는 TPU 버전별로 지원되는 디스크 유형을 보여줍니다.

TPU 버전 지원되는 디스크 유형 VM당 최대 디스크 수
(부팅 디스크 포함)
TPU7x Hyperdisk Balanced
Hyperdisk ML
128
v6e Hyperdisk Balanced
Hyperdisk ML
32
v5p Hyperdisk ML
균형 있는 영구 디스크
128

액세스 모드

단일 TPU VM(단일 호스트 TPU 슬라이스라고도 함)에 연결된 디스크(예: ct6e-standard-4t)를 읽기-쓰기(rw) 또는 읽기 전용(ro) 모드로 구성합니다.

멀티 호스트 TPU 슬라이스에 디스크를 연결하면 디스크가 슬라이스의 각 VM에 연결됩니다. 여러 TPU VM이 동시에 디스크에 쓰지 못하게 하려면 멀티 호스트 TPU 슬라이스에 연결된 모든 디스크를 읽기 전용 (ro)으로 구성해야 합니다. 읽기 전용 디스크는 TPU 슬라이스에서 처리할 데이터 세트를 저장하는 데 유용합니다.

기본 요건

이 절차를 사용하기 전에 계정과 프로젝트를 설정하세요. Google Cloud 자세한 내용은 Cloud TPU 환경 설정을 참조하세요.

디스크 만들기

디스크를 만들려면 다음 명령어를 사용합니다.

gcloud compute disks create DISK_NAME \
    --size DISK_SIZE  \
    --zone ZONE \
    --type DISK_TYPE

다음 자리표시자를 바꿉니다.

  • DISK_NAME: 새 디스크의 이름입니다.
  • DISK_SIZE: 새 디스크의 크기입니다. 값은 정수이며 뒤에 크기 단위(기비바이트는 GB, 테비바이트는 TB)가 와야 합니다. 크기 단위를 지정하지 않으면 시스템에서 GB로 간주합니다.
  • ZONE: 새 디스크를 만들 영역 의 이름입니다. TPU를 만드는 영역과 같아야 합니다.
  • DISK_TYPE: 디스크 유형입니다. 다음 값 중 하나를 사용합니다. hyperdisk-balanced, hyperdisk-ml 또는 pd-balanced.

Hyperdisk의 경우 다음 값 중 하나를 사용하여 --access-mode 플래그를 선택적으로 지정할 수 있습니다.

  • READ_WRITE_SINGLE: 하나의 인스턴스에서 읽기-쓰기 액세스 (기본값)
  • READ_ONLY_MANY: (Hyperdisk ML만 해당됨) 인스턴스 여러 개의 동시 읽기 전용 액세스를 허용합니다.

디스크를 만드는 방법에 대한 자세한 내용은 새 Hyperdisk 볼륨 만들기새 Persistent Disk 볼륨 만들기를 참조하세요.

디스크 연결

TPU VM 또는 슬라이스를 만들 때 디스크 볼륨을 연결하거나 만든 후에 연결합니다.

TPU VM을 만들 때 디스크 연결

TPU VM 또는 인스턴스 템플릿을 만들 때 --disk 플래그를 사용하여 디스크 볼륨을 연결합니다.

단일 TPU VM을 만들 때 디스크 연결

다음 예시에서는 단일 TPU VM을 만들 때 디스크 볼륨을 연결하는 방법을 보여줍니다.

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --disk=name=DISK_NAME,device-name=DEVICE_NAME,mode=MODE

다음 자리표시자를 바꿉니다.

  • TPU_NAME: TPU VM의 이름입니다.
  • MACHINE_TYPE: TPU VM의 머신 유형 입니다 (예: ct6e-standard-8t).
  • IMAGE_FAMILY: TPU VM의 OS 이미지 계열 입니다. 특정 OS 버전을 설치하려면 --image 플래그를 사용합니다. OS 이미지에 대한 자세한 내용은 OS 이미지를 참조하세요.
  • IMAGE_PROJECT: OS 이미지가 포함된 프로젝트입니다. TPU 이미지의 경우 ubuntu-os-accelerator-images입니다.
  • ZONE: TPU VM의 영역 입니다.
  • DEVICE_NAME: 디스크에 사용할 기기의 이름입니다. 이 이름은 OS에서 디스크를 식별합니다.
  • MODE: 디스크의 모드입니다. rw (읽기-쓰기) 또는 ro (읽기 전용)일 수 있습니다. 자세한 내용은 액세스 모드를 참조하세요.

멀티 호스트 TPU 슬라이스를 만들 때 디스크 연결

멀티 호스트 TPU 슬라이스를 만들 때는 mode=read-only(Hyperdisk ML 및 균형 있는 영구 디스크만 해당)를 지정해야 합니다. 자세한 내용은 액세스 모드를 참조하세요.

멀티 호스트 TPU 슬라이스에서 디스크를 연결하려면 연결된 디스크가 있는 인스턴스 템플릿을 만들고, 워크로드 정책을 만든 후 MIG를 만듭니다.

  1. 인스턴스 템플릿 만들기

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --disk=name=DISK_NAME,mode=MODE
    

    다음 자리표시자를 바꿉니다.

    • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.
    • MACHINE_TYPE: TPU VM의 머신 유형 입니다(예: ct6e-standard-8t).
    • IMAGE_FAMILY: TPU VM의 OS 이미지 계열 입니다. 특정 OS 버전을 설치하려면 --image 플래그를 사용합니다. OS 이미지에 대한 자세한 내용은 OS 이미지를 참조하세요.
    • IMAGE_PROJECT: OS 이미지가 포함된 프로젝트입니다. TPU 이미지의 경우 ubuntu-os-accelerator-images입니다.
    • DISK_NAME: TPU VM에 연결할 디스크의 이름입니다.
    • MODE: 디스크의 모드입니다. 모드는 멀티 호스트 TPU 슬라이스의 경우 ro (읽기 전용)여야 합니다.
  2. 워크로드 정책 만들기

    gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY
    

    다음 자리표시자를 바꿉니다.

    • WORKLOAD_POLICY_NAME: 워크로드 정책의 이름입니다.
    • TOPOLOGY: TPU VM의 토폴로지입니다(예: 4x4x8). TPU 버전별 토폴로지에 대한 자세한 내용은 시스템 아키텍처를 참조하세요.
  3. MIG 만들기:

    gcloud compute instance-groups managed create MIG_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --template=TEMPLATE_NAME \
        --size=SIZE \
        --workload-policy=WORKLOAD_POLICY_NAME
    

    다음 자리표시자를 바꿉니다.

    • MIG_NAME: MIG의 이름입니다.
    • PROJECT_ID: 프로젝트 ID입니다.
    • ZONE: Cloud TPU가 있는 영역입니다.
    • TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.
    • SIZE: 멀티 호스트 TPU 슬라이스의 VM 수입니다.
    • WORKLOAD_POLICY_NAME: 워크로드 정책의 이름입니다.

단일 호스트 TPU 슬라이스가 여러 개 있는 MIG를 만들 때 디스크 연결

단일 호스트 TPU 슬라이스를 만드는 경우 mode=read-only(Hyperdisk ML 및 균형 있는 영구 디스크만 해당) 또는 mode=read-write를 지정할 수 있습니다.

독립형 단일 호스트 TPU 슬라이스가 있는 MIG에 내구성이 우수한 스토리지를 연결하려면 --create-disk 플래그를 사용하여 각 인스턴스의 새 디스크를 만들도록 인스턴스 템플릿을 구성합니다.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --disk=name=DISK_NAME,mode=MODE

다음 자리표시자를 바꿉니다.

  • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.
  • MACHINE_TYPE: TPU VM의 머신 유형입니다 (예: ct6e-standard-8t).
  • IMAGE_FAMILY: TPU VM의 OS 이미지 계열입니다.
  • IMAGE_PROJECT: OS 이미지가 포함된 프로젝트 (ubuntu-os-accelerator-images)입니다.
  • DISK_NAME: 각 TPU VM에 만들고 연결할 디스크의 기본 이름입니다.
  • DISK_SIZE: 디스크의 크기(GB)입니다.
  • DISK_TYPE: 디스크 유형입니다 (예: pd-balanced, hyperdisk-balanced).

그런 다음 이전 섹션에 표시된 대로 MIG를 만들고, --size를 선택한 TPU VM 수로 설정합니다.

기존 TPU VM에 디스크 연결

기존 TPU VM에 디스크를 연결하려면 gcloud compute instances attach-disk 명령어를 사용합니다.

gcloud compute instances attach-disk VM_NAME \
    --zone=ZONE \
    --disk=DISK_NAME \
    --mode=MODE

다음 자리표시자를 바꿉니다.

  • VM_NAME: TPU VM의 이름입니다.
  • ZONE: Cloud TPU가 있는 영역입니다.
  • DISK_NAME: TPU VM에 연결할 디스크의 이름입니다.
  • MODE: 디스크의 모드입니다. 자세한 내용은 액세스 모드를 참조하세요.

어떤 이유로든 VM이 종료되면 VM을 다시 시작한 후에 디스크를 마운트해야 할 수 있습니다. VM을 다시 시작할 때 디스크가 자동으로 마운트되도록 사용 설정하는 방법은 시스템 다시 시작 시 자동 마운트 구성을 참조하세요.

디스크 자동 삭제에 대한 자세한 내용은 Hyperdisk 수정 및 Persistent Disk 수정을 참조하세요.

디스크 포맷 및 마운트

비어 있는 새 디스크를 TPU VM에 연결한 경우 디스크를 사용하려면 먼저 디스크를 포맷하고 마운트해야 합니다. 이미 데이터가 있는 디스크를 연결한 경우 사용하려면 먼저 디스크를 마운트해야 합니다.

비부팅 디스크를 포맷하고 마운트하는 방법에 대한 자세한 내용은 Linux VM에서 비부팅 디스크 포맷 및 마운트를 참조하세요.

디스크 분리

TPU VM에서 디스크를 분리하려면 다음 명령어를 실행합니다.

gcloud compute instances detach-disk VM_NAME \
    --zone=ZONE \
    --disk=DISK_NAME

다음 자리표시자를 바꿉니다.

  • VM_NAME: TPU VM의 이름입니다.
  • ZONE: Cloud TPU가 있는 영역입니다.
  • DISK_NAME: TPU VM에서 분리할 디스크의 이름입니다.

디스크 분리에 대한 자세한 내용은 디스크 분리를 참조하세요.

정리

Cloud TPU 및 Compute Engine 리소스 사용을 마쳤으면 해당 리소스를 삭제합니다.

  1. Cloud TPU에서 아직 연결을 해제하지 않았으면 연결을 해제합니다.

    exit
    
  2. TPU VM을 삭제합니다.

    gcloud compute instances delete VM_NAME \
        --zone=ZONE
    

    다음 자리표시자를 바꿉니다.

    • VM_NAME: TPU VM의 이름입니다.
    • ZONE: Cloud TPU가 있는 영역입니다.

    MIG를 사용하여 멀티 호스트 TPU 슬라이스를 만든 경우 대신 인스턴스 그룹을 삭제합니다.

    gcloud compute instance-groups managed delete MIG_NAME \
        --zone=ZONE
    

    다음 자리표시자를 바꿉니다.

    • MIG_NAME: MIG 이름입니다.
    • ZONE: Cloud TPU가 있는 영역입니다.
  3. Cloud TPU 삭제를 확인합니다. 삭제하는 데 몇 분 정도 걸릴 수 있습니다.

    gcloud compute instances list --zone=ZONE
    
  4. 디스크를 만든 영역의 모든 디스크를 나열하여 TPU VM이 삭제될 때 디스크가 자동으로 삭제되는지 확인합니다.

    gcloud compute disks list --filter="zone:( ZONE )"
    

    다음 자리표시자를 바꿉니다.

    • ZONE: Cloud TPU가 있는 영역입니다.

    TPU VM이 삭제될 때 디스크가 삭제되지 않으면 다음 명령어를 사용하여 디스크를 삭제합니다.

    gcloud compute disks delete DISK_NAME \
        --zone=ZONE
    

    다음 자리표시자를 바꿉니다.

    • DISK_NAME: 삭제할 디스크의 이름입니다.
    • ZONE: Cloud TPU가 있는 영역입니다.