Cloud TPU VM에 Filestore 인스턴스 마운트

Filestore는 Compute Engine용 완전 관리형 네트워크 연결 스토리지 (NAS)입니다. Filestore는 기존 기업 애플리케이션과 원활하게 호환되며 NFSv3 호환 클라이언트를 지원합니다.

시작하기 전에

Cloud TPU VM에 Filestore 인스턴스를 마운트하려면 Cloud TPU VM과 연결된 서비스 계정에 Filestore 역할 (Cloud Filestore 편집자 또는 Cloud Filestore 뷰어)을 추가합니다. Cloud TPU VM을 만들 때 커스텀 서비스 계정을 지정하지 않으면 Cloud TPU VM은 기본 Compute Engine 서비스 계정을 사용합니다. Cloud TPU VM을 만들 때 서비스 계정을 지정하는 방법에 대한 자세한 내용은 Cloud TPU 환경 설정을 참조하세요. 서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기를 참조하세요.

서비스 계정에 Filestore 편집자 역할 추가

이 섹션에서는 기본 Compute Engine 서비스 계정에 Cloud Filestore 편집자 역할을 추가하는 방법을 설명합니다. 다음 안내에 따라 모든 서비스 계정에 Cloud Filestore 편집자 역할을 추가합니다. 2단계에서 기본 Compute Engine 서비스 계정 대신 커스텀 서비스 계정을 검색하여 사용합니다.

  1. IAM 콘솔로 이동합니다.

  2. **주 구성원별로 보기** 탭을 선택하고 **필터** 필드에 Name:Compute Engine default service account를 입력합니다.

  3. 서비스 계정 옆에 있는 수정 을 클릭합니다. 기본 Compute Engine 서비스 계정에 할당된 역할이 나열된 대화상자가 IAM 콘솔에 표시됩니다.

  4. 추가 를 클릭하여 다른 역할을 추가합니다.

  5. 역할 선택 메뉴를 펼치고 필터에 Filestore를 입력한 후 Cloud Filestore 편집자 를 선택합니다.

  6. 저장 을 클릭하여 대화상자를 닫습니다. 기본 Compute Engine 서비스 계정에 Filestore 편집자 역할을 추가했습니다.

서비스 계정에 대한 자세한 내용은 서비스 계정 개요를 참조하세요. IAM 역할에 대한 자세한 내용은 역할 및 권한을 참조하세요.

Filestore 인스턴스 만들기

Filestore 인스턴스 만들기의 안내에 따라 Filestore 인스턴스를 만듭니다.

Cloud TPU VM에 Filestore 인스턴스 마운트

Cloud TPU VM에 Filestore 인스턴스를 마운트하는 명령어는 단일 Cloud TPU VM 또는 Cloud TPU 슬라이스를 사용하는지 여부에 따라 다릅니다.

단일 Cloud TPU VM에 Filestore 인스턴스 마운트

  1. SSH를 사용하여 Cloud TPU VM에 연결합니다.

    gcloud compute ssh TPU_NAME \
      --zone=ZONE
    

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

    • TPU_NAME: TPU VM 이름
    • ZONE: TPU VM의 영역
  2. nfs-common 패키지를 설치합니다.

    sudo apt-get update --allow-releaseinfo-change \
      && sudo apt-get -y update \
      && sudo apt-get -y install nfs-common
    
  3. NFS를 마운트할 디렉터리를 만듭니다.

    sudo mkdir -p MOUNT_DIR \
      && sudo chmod ugo+rw MOUNT_DIR
    

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

    • MOUNT_DIR: Filestore 인스턴스를 마운트할 디렉터리
  4. Filestore의 IP 주소를 찾습니다.

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

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

    • FILESTORE_INSTANCE_NAME: Filestore 인스턴스 이름
    • FILESTORE_REGION: Filestore 인스턴스 리전
  5. Cloud TPU VM의 Filestore 인스턴스를 마운트 디렉터리에 마운트합니다.

    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

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

    • FILESTORE_IP: Filestore 인스턴스 IP 주소
    • FILE_SHARE_NAME: Filestore 인스턴스의 파일 공유 이름
    • MOUNT_DIR: Filestore 인스턴스를 마운트할 디렉터리

Cloud TPU 슬라이스에 Filestore 인스턴스 마운트

Cloud TPU 슬라이스는 Compute Engine 관리형 인스턴스 그룹 (MIG)으로 프로비저닝됩니다. MIG는 컴퓨팅 용량 전반에 VM을 분산하므로 인스턴스 템플릿에 연결된 시작 스크립트를 사용하여 Filestore 인스턴스를 슬라이스의 모든 머신에 마운트합니다. 이렇게 하면 인스턴스가 생성되거나 자동으로 복구될 때마다 마운트를 자동으로 사용할 수 있습니다.

  1. Filestore 인스턴스의 IP 주소를 찾습니다.

    gcloud filestore instances describe FILESTORE_INSTANCE_NAME \
      --location FILESTORE_REGION
    

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

    • FILESTORE_INSTANCE_NAME: Filestore 인스턴스 이름
    • FILESTORE_REGION: Filestore 인스턴스 리전
  2. 시작 스크립트를 만듭니다. 이 스크립트는 nfs-common 패키지를 설치하고 마운트 디렉터리를 만들고 Filestore 인스턴스를 연결합니다. 다음 코드를 mount-filestore.sh라는 로컬 파일로 저장합니다.

    #!/bin/bash
    sudo apt-get update --allow-releaseinfo-change && sudo apt-get -y update && sudo apt-get -y install nfs-common
    sudo mkdir -p MOUNT_DIR
    sudo chmod ugo+rw MOUNT_DIR
    sudo mount FILESTORE_IP:FILE_SHARE_NAME MOUNT_DIR
    

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

    • FILESTORE_IP: Filestore 인스턴스 IP 주소
    • FILE_SHARE_NAME: Filestore 인스턴스의 파일 공유 이름
    • MOUNT_DIR: Filestore 인스턴스를 마운트할 디렉터리
  3. 시작 스크립트를 인스턴스 템플릿에 적용합니다. MIG의 인스턴스 템플릿을 만들 때 --metadata-from-file 플래그를 사용하여 스크립트를 제공합니다.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
      --metadata-from-file=startup-script=mount-filestore.sh \
      ...
    

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

    • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿 이름

Filestore 인스턴스에 데이터 쓰기

Filestore 인스턴스를 마운트하는 디렉터리에 Linux 읽기 및 쓰기 권한을 부여합니다. 그러면 디렉터리를 로컬 파일 시스템과 마찬가지로 사용할 수 있습니다.