Escolher a configuração de armazenamento certa é fundamental para o desempenho e a estabilidade do cluster de preparação. O serviço integra-se com duas soluções de armazenamento distintas de alto desempenho:
- Filestore: um serviço de ficheiros gerido necessário que fornece os diretórios
/homepartilhados para todos os nós no cluster. - Google Cloud Managed Lustre: um sistema de ficheiros paralelo opcional concebido para um desempenho de E/S extremo, ideal para preparação em conjuntos de dados massivos.
Esta página oferece uma vista geral das principais utilizações e descreve os requisitos específicos de implementação e de rede para uma integração bem-sucedida com o seu cluster.
Integração de armazenamento para clusters de preparação
Os clusters de preparação da Vertex AI baseiam-se em soluções de armazenamento específicas em rede para o seu funcionamento. O Filestore é necessário para fornecer os diretórios /home partilhados para o cluster, enquanto o Lustre gerido é um sistema de ficheiros de elevado desempenho opcional para cargas de trabalho exigentes.
É fundamental configurar corretamente a rede para estes serviços de armazenamento antes de implementar o cluster.
Filestore para diretórios iniciais
Este serviço usa uma instância do Filestore para fornecer o diretório /home
partilhado para o cluster. Para garantir a conetividade adequada, tem de criar os recursos na nuvem nesta ordem específica:
- Crie a rede VPC: primeiro, implemente uma rede VPC configurada com a MTU recomendada (por exemplo, 8896).
- Crie a instância do Filestore: a seguir, implemente a instância do Filestore na VPC que acabou de criar.
- Crie o cluster de preparação: Por último, implemente o cluster, que poderá estabelecer ligação à instância do Filestore na mesma rede.
Google Cloud Managed Lustre para cargas de trabalho de elevado desempenho
Para cargas de trabalho que requerem o máximo desempenho de E/S, pode anexar um sistema de ficheiros Lustre gerido. Este serviço liga-se à sua VPC através do Private Service Access.
Limitação de rede crítica: não existe intercâmbio transitivo
Uma limitação crítica para o Filestore e o Google Cloud Managed Lustre é que não suportam peering transitivo. Isto significa que apenas os recursos na VPC diretamente ligada podem aceder ao serviço de armazenamento. Por exemplo, se a VPC do cluster (N1) estiver interligada com o serviço de armazenamento, outra VPC (N2) que esteja interligada com N1 não tem acesso.
Integração de armazenamento para clusters de preparação
Os clusters de preparação da Vertex AI baseiam-se em soluções de armazenamento específicas em rede para o seu funcionamento. O Filestore é necessário para fornecer os diretórios /home partilhados para o cluster, enquanto o Google Cloud Managed Lustre é um sistema de ficheiros opcional de elevado desempenho para cargas de trabalho exigentes.
É fundamental configurar corretamente a rede para estes serviços de armazenamento
antes de implementar o cluster.
Filestore
Principais utilizações do Filestore com clusters de preparação
Além da sua função como diretório base obrigatório, o Filestore oferece uma forma flexível de partilhar dados com o seu cluster.
Armazenamento partilhado adicional: pode anexar uma ou mais instâncias do Filestore a qualquer conjunto de nós. Isto é útil para fornecer conjuntos de dados partilhados, binários de aplicações ou outros ficheiros comuns aos seus trabalhos de treino. Quando especificado na configuração do node pool,
os clusters de preparação montam automaticamente estas instâncias no diretório /mnt/filestore em cada nó.
Requisitos do Filestore
Uma integração bem-sucedida do Filestore com clusters de preparação requer a seguinte configuração:
- Ative a API: a API Filestore tem de estar ativada no seu projeto do Google Cloud antes de poder criar o cluster.
- Obrigatório
/homediretório: cada cluster de preparação requer uma instância do Filestore dedicada para servir como o/homediretório partilhado. Esta instância tem requisitos de configuração específicos:- Rede: tem de residir na mesma rede de VPC que os nós de computação e início de sessão do cluster.
- Localização: tem de estar localizada na mesma região ou zona que o cluster.
- Configuração: tem de especificar o nome completo do recurso desta instância no campo
quando criar o cluster através da API.orchestrator_spec.slurm_spec.home_directory_storage
Configure o armazenamento do Filestore
Crie uma instância do Filestore zonal ou regional na zona onde quer criar o cluster. A API Vertex AI requer que um Filestore seja anexado ao cluster para servir como o diretório /home.
Este Filestore tem de estar na mesma zona ou região e na mesma rede que todos os nós de computação e os nós de início de sessão. No exemplo abaixo, 172.16.10.0/24 é usado para a implementação do Filestore.
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
O Google Cloud Managed Lustre oferece um sistema de ficheiros paralelo de elevado desempenho e totalmente gerido otimizado para aplicações de IA e HPC. Com uma capacidade de vários petabytes e um débito de até 1 TBps, o Lustre gerido facilita a migração de cargas de trabalho exigentes para a nuvem.
As instâncias do Lustre geridas estão localizadas em zonas dentro de regiões. Uma região é uma
localização geográfica específica na qual pode executar os seus recursos. Cada região está subdividida em várias zonas. Por exemplo, a região us-central1 no centro dos Estados Unidos tem as zonas us-central1-a, us-central1-b, us-central1-c e us-central1-f. Para mais informações, consulte o artigo
Geografia e regiões.
Para diminuir a latência da rede, recomendamos que crie uma instância do Lustre gerida numa região e numa zona próximas do local onde planeia usá-la.
Quando cria uma instância do Lustre gerida, tem de definir as seguintes propriedades:
- O nome da instância usada pelo Google Cloud.
- O nome do sistema de ficheiros usado por ferramentas do lado do cliente, por exemplo,
lfs. - A capacidade de armazenamento em gibibytes (GiB). A capacidade pode variar entre 9000 GiB e ~8 PiB (7 632 000 GiB). O tamanho máximo de uma instância depende do respetivo nível de desempenho.
- O Lustre gerido oferece níveis de desempenho que variam entre 125 MBps por TiB e 1000 MBps por TiB.
- Para o melhor desempenho, crie a instância na mesma zona que o cluster de preparação.
- A rede VPC desta instância tem de ser a mesma que o cluster de preparação usa.
As ofertas Lustre geridas têm 4 níveis de desempenho, cada um com uma velocidade de débito máxima diferente por TiB. Os níveis de desempenho também afetam o tamanho mínimo e máximo da instância, bem como o tamanho do passo entre os valores de capacidade aceitáveis. Não pode alterar o nível de desempenho de uma instância depois de esta ter sido criada.
A implementação do Lustre gerido requer o acesso privado ao serviço, que estabelece o peering de VPC entre a VPC do cluster de preparação e a VPC que aloja o Lustre gerido, através de uma sub-rede /20 dedicada.
Configure a instância do Managed Lustre (opcional)
Use o Google Cloud Managed Lustre apenas se quiser usar o Managed Lustre no serviço de desenvolvimento de modelos.
O Google Cloud Managed Lustre é um serviço de sistema de ficheiros paralelo de alto desempenho totalmente gerido no Google Cloud. Foi especificamente concebido para acelerar cargas de trabalho exigentes em IA/aprendizagem automática e computação de alto desempenho (HPC).
Para um desempenho ideal ao usar clusters de preparação, o Lustre gerido do Google Cloud deve ser implementado a partir da mesma VPC e zona que o cluster de preparação, usando o peering de VPC para serviços de rede.
Crie uma instância do 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
Montagem do Cloud Storage
Como pré-requisito, certifique-se de que a conta de serviço da VM tem a função de utilizador do objeto de armazenamento.
Montagem predefinida
Os clusters de preparação do Vertex AI usam o FUSE do Cloud Storage para montar dinamicamente os seus contentores do
Cloud Storage
em todos os nós de início de sessão e de computação, tornando-os acessíveis no diretório /gcs. Não é possível listar os contentores montados dinamicamente a partir do ponto de montagem /gcs raiz. Pode aceder aos contentores montados dinamicamente como subdiretórios:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Suporte personalizado
Para montar um contentor do Cloud Storage específico num diretório local com opções personalizadas, use a seguinte estrutura de comando, transmitindo-a como parte do script de arranque na criação do cluster ou executando-a diretamente no nó após a criação do cluster.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Por exemplo, para montar o contentor mtdata no diretório /data, use o seguinte comando:
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
Para uma configuração totalmente automatizada e consistente, inclua os seus scripts de montagem personalizados nos scripts de arranque do cluster. Esta prática garante que os contentores do Cloud Storage são montados automaticamente em todos os nós no arranque, eliminando a necessidade de configuração manual.
Para recomendações de configuração adicionais adaptadas às cargas de trabalho de IA/AM, consulte o guia de práticas recomendadas de otimização do desempenho. Fornece orientações específicas para otimizar o FUSE do Cloud Storage para a preparação, a inferência e a criação de pontos de verificação.
O que se segue?
Os passos seguintes focam-se na utilização eficaz do cluster para a preparação em grande escala.
- Adapte o seu código para o treino distribuído: para tirar o máximo partido de um cluster com vários nós e do armazenamento de alto desempenho, adapte o seu código de treino para um ambiente distribuído.
- Orquestre as suas tarefas com os pipelines da Vertex AI: para fluxos de trabalho de produção, automatize o processo de preparação de dados, envio de tarefas e registo de modelos através dos pipelines da Vertex AI.
- Monitorize e depure as suas tarefas de preparação: acompanhe o progresso e a utilização de recursos das suas tarefas de preparação distribuída para identificar e resolver problemas.