Storage

Vertex AI 학습 클러스터에 관심이 있으면 영업 담당자에게 문의하여 액세스 권한을 받으세요.

적절한 스토리지 구성을 선택하는 것은 학습 클러스터의 성능과 안정성에 매우 중요합니다. 이 서비스는 다음과 같은 두 가지 고성능 스토리지 솔루션과 통합됩니다.

  • Filestore: 클러스터의 모든 노드에 대해 공유 /home 디렉터리를 제공하는 필수 관리형 파일 서비스입니다.
  • Google Cloud Managed Lustre: 극한 수준의 I/O 성능을 위해 설계된 선택적 병렬 파일 시스템으로, 대규모 데이터 세트를 활용한 학습에 적합합니다.

이 페이지에서는 이러한 스토리지의 핵심 사용 사례를 간략하게 설명하고 클러스터와의 성공적으로 통합하기 위한 구체적인 네트워킹 및 배포 요구사항을 설명합니다.

학습 클러스터에 대한 스토리지 통합

Vertex AI 학습 클러스터는 운영을 위해 특정 네트워크 기반 스토리지 솔루션에 의존합니다. Filestore는 클러스터의 공유 /home 디렉터리를 제공하기 위해 필수이며, Managed Lustre는 높은 성능이 요구되는 워크로드를 위한 선택적 고성능 파일 시스템입니다.

클러스터를 배포하기 전에 이러한 스토리지 서비스에 대한 네트워킹을 올바르게 구성하는 것이 매우 중요합니다.

홈 디렉터리를 위한 Filestore

이 서비스는 Filestore 인스턴스를 사용하여 클러스터의 공유 /home 디렉터리를 제공합니다. 적절한 연결을 보장하려면 다음 순서대로 클라우드 리소스를 만들어야 합니다.

  1. VPC 네트워크 만들기: 먼저 권장 MTU(예: 8896)로 구성된 VPC 네트워크를 배포합니다.
  2. Filestore 인스턴스 만들기: 다음으로, 방금 만든 VPC에 Filestore 인스턴스를 배포합니다.
  3. 학습 클러스터 만들기: 마지막으로 클러스터를 배포하면, 동일한 네트워크 내에서 Filestore 인스턴스에 연결할 수 있습니다.

고성능 워크로드를 위한 Google Cloud Managed Lustre

최대 I/O 성능이 필요한 워크로드의 경우 Managed Lustre 파일 시스템을 연결할 수 있습니다. 이 서비스는 비공개 서비스 액세스를 사용하여 VPC에 연결됩니다.

중요한 네트워킹 제한: 전환 피어링 미지원

Filestore와 Google Cloud Managed Lustre 모두 전환 피어링을 지원하지 않는다는 중요한 제한이 있습니다. 즉, 스토리지 서비스와 직접 연결된 VPC의 리소스만 해당 스토리지에 액세스할 수 있습니다. 예를 들어 클러스터의 VPC(N1)가 스토리지 서비스와 피어링되어 있더라도, N1과 피어링된 다른 VPC(N2)는 액세스할 수 없습니다.

학습 클러스터에 대한 스토리지 통합

Vertex AI 학습 클러스터는 운영을 위해 특정 네트워크 기반 스토리지 솔루션에 의존합니다. Filestore는 클러스터의 공유 /home 디렉터리를 제공하기 위해 필수이며, Google Cloud Managed Lustre는 높은 성능이 요구되는 워크로드를 위한 선택적 고성능 파일 시스템입니다. 클러스터를 배포하기 전에 이러한 스토리지 서비스에 대한 네트워킹을 올바르게 구성하는 것이 매우 중요합니다.

Filestore

학습 클러스터에서 Filestore의 주요 활용 사례

필수 /home 디렉터리 역할 외에도 Filestore는 클러스터와 데이터를 공유하는 유연한 방법을 제공합니다.
추가 공유 스토리지: 어떤 노드 풀에든 하나 이상의 추가 Filestore 인스턴스를 연결할 수 있습니다. 이는 학습 작업에 필요한 공유 데이터 세트, 애플리케이션 바이너리 또는 기타 일반 파일을 제공하는 데 유용합니다. 노드 풀 구성에서 이를 지정하면, 학습 클러스터는 각 노드의 /mnt/filestore 디렉터리에 이러한 인스턴스를 자동으로 마운트합니다.

Filestore 요구사항

학습 클러스터에서 Filestore를 성공적으로 통합하려면 다음 구성이 필요합니다.

  • API 사용 설정: 클러스터를 만들기 전에 Google Cloud 프로젝트에서 Filestore API를 사용 설정해야 합니다.
  • 필수 /home 디렉터리: 모든 학습 클러스터는 공유 /home 디렉터리 역할을 하는 전용 Filestore 인스턴스가 필요합니다. 이 인스턴스에는 다음과 같은 특정한 구성 요구사항이 있습니다.
    • 네트워크: 클러스터의 컴퓨팅 노드 및 로그인 노드와 동일한 VPC 네트워크에 있어야 합니다.
    • 위치: 클러스터와 동일한 리전 또는 영역에 있어야 합니다.
    • 구성: API를 통해 클러스터를 만들 때 orchestrator_spec.slurm_spec.home_directory_storage 필드에 해당 Filestore 인스턴스의 전체 리소스 이름을 지정해야 합니다.

Filestore 스토리지 구성

클러스터를 만들려는 영역에 영역 또는 리전 Filestore 인스턴스를 만듭니다. Vertex AI API에서 /home 디렉터리를 제공하기 위해서는 클러스터에 Filestore가 연결되어 있어야 합니다. 이 Filestore는 모든 컴퓨팅 노드 및 로그인 노드와 동일한 영역 또는 리전에 있으며, 동일한 네트워크에 있어야 합니다. 아래 예시에서는 Filestore 배포에 172.16.10.0/24가 사용됩니다.

    SERVICE_TIER=ZONAL # Can use BASIC_SSD

    # Create reserved IP address range
    gcloud compute addresses create CLUSTER_IDfs-ip-range \
        --project=PROJECT_ID \
        --global \
        --purpose=VPC_PEERING \
        --addresses=172.16.10.0 \
        --prefix-length=24 \
        --description="Filestore instance reserved IP range" \
        --network=NETWORK

    # Get the CIDR range
    FS_IP_RANGE=$(
      gcloud compute addresses describe CLUSTER_IDfs-ip-range \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )

    # Create the Filestore instance
    gcloud filestore instances create FS_INSTANCE_ID \
        --project=PROJECT_ID \
        --location=ZONE \
        --tier=ZONAL \
        --file-share=name="nfsshare",capacity=1024 \
    --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
  

Lustre

Google Cloud Managed Lustre는 AI 및 HPC 애플리케이션에 최적화된 고성능 완전 관리형 병렬 파일 시스템을 제공합니다. Managed Lustre는 멀티 페타바이트 규모의 용량과 최대 1TBps의 처리량을 통해 고성능 워크로드를 클라우드로 쉽게 마이그레이션할 수 있도록 합니다.

Managed Lustre 인스턴스는 리전 내 영역에 존재합니다. 리전은 리소스를 실행할 수 있는 특정 지리적 위치입니다. 각 리전은 여러 개의 영역으로 나뉘어 있습니다. 예를 들어 미국 중부에 위치한 us-central1 리전에는 us-central1-a, us-central1-b, us-central1-c, us-central1-f 영역이 있습니다. 자세한 내용은 지역 및 리전을 참조하세요.

네트워크 지연 시간을 줄이기 위해, 사용하려는 위치와 가까운 리전과 영역에 Managed Lustre 인스턴스를 만드는 것이 좋습니다.

Managed Lustre 인스턴스를 만들 때는 다음 속성을 정의해야 합니다.

  • Google Cloud에서 사용하는 인스턴스의 이름입니다.
  • 클라이언트 측 도구에서 사용하는 파일 시스템 이름입니다(예: lfs).
  • 스토리지 용량(기비바이트, GiB)입니다. 용량은 9,000GiB에서 약 8PiB(7,632,000GiB)까지 가능합니다. 인스턴스의 최대 크기는 성능 등급에 따라 달라집니다.
  • Managed Lustre는 TiB당 125MBps에서 1,000MBps까지의 성능 등급을 제공합니다.
  • 최상의 성능을 위해 학습 클러스터와 동일한 영역에 인스턴스를 만드세요.
  • 이 인스턴스가 사용하는 VPC 네트워크는 학습 클러스터가 사용하는 네트워크와 동일해야 합니다.

Managed Lustre는 4가지 성능 등급을 제공하며, 각 등급은 TiB당 최대 처리 속도가 다릅니다. 성능 등급은 최소 및 최대 인스턴스 크기와 허용되는 용량 증가 단위에도 영향을 줍니다. 인스턴스를 만든 후에는 인스턴스의 성능 등급을 변경할 수 없습니다.

Managed Lustre를 배포하려면 비공개 서비스 액세스가 필요합니다. 이 기능은 전용 /20 서브넷을 사용하여 학습 클러스터의 VPC와 Managed Lustre를 호스팅하는 VPC 간에 VPC 피어링을 설정합니다.

Managed Lustre 인스턴스 구성(선택사항)

모델 개발 서비스에서 Managed Lustre를 사용하려는 경우에만 Google Cloud Managed Lustre를 사용하세요.

Google Cloud Managed Lustre는 Google Cloud의 완전 관리형 고성능 병렬 파일 시스템 서비스입니다. AI/머신러닝 및 고성능 컴퓨팅(HPC)의 고부하 워크로드를 가속화하도록 특별히 설계되었습니다.

학습 클러스터에서 최적의 성능을 얻으려면 Google Cloud Managed Lustre를 학습 클러스터와 동일한 VPC 및 영역에 배포하고, 서비스 네트워킹을 통한 VPC 피어링을 사용해야 합니다.

Lustre 인스턴스 만들기

    gcloud lustre instances create LUSTRE_INSTANCE_ID \
    --project=PROJECT_ID \
    --location=ZONE \
    --filesystem=lustrefs \
    --per-unit-storage-throughput=500 \
    --capacity-gib=36000 \
    --network=NETWORK_NAME

  

Cloud Storage 마운트

선행 조건으로, VM 서비스 계정에 스토리지 객체 사용자 역할이 부여되어 있는지 확인합니다.

기본 마운트

Vertex AI 학습 클러스터는 Cloud Storage FUSE를 사용하여 모든 로그인 노드와 컴퓨팅 노드에 Cloud Storage 버킷을 동적으로 마운트하며, 이를 /gcs 디렉터리에서 사용할 수 있게 합니다. 동적으로 마운트된 버킷은 루트 마운트 지점인 /gcs에서 나열할 수 없습니다. 동적으로 마운트된 버킷에 하위 디렉터리로 액세스해야 합니다.

user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name

커스텀 마운트

특정 Cloud Storage 버킷을 커스텀 옵션과 함께 로컬 디렉터리에 마운트하려면, 클러스터 생성 시 시작 스크립트의 일부로 전달하거나 클러스터 생성 후 노드에서 직접 실행하여 다음 명령어 구조를 사용하세요.

sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a

예를 들어 mtdata 버킷을 /data 디렉터리에 마운트하려면 다음 명령어를 사용하세요.

sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a

완전한 자동화와 일관된 구성을 위해, 커스텀 마운트 스크립트를 클러스터의 시작 스크립트에 포함시키는 것이 좋습니다. 이렇게 하면 클러스터가 시작될 때 모든 노드에서 Cloud Storage 버킷이 자동으로 마운트되어 수동으로 구성할 필요가 없습니다.

AI/ML 워크로드에 맞게 조정된 추가 구성 권장사항은 성능 조정 권장사항 가이드를 참조하세요. 이 가이드는 학습, 추론, 체크포인트 작업을 위해 Cloud Storage FUSE를 최적화하는 데 필요한 구체적인 지침을 제공합니다.

다음 단계

다음 단계에서는 대규모 학습을 위해 클러스터를 효과적으로 사용하는 데 중점을 둡니다.