View a markdown version of this page

Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS

SageMaker HyperPod suporta o driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI), que gerencia o ciclo de vida dos volumes do Amazon EBS como armazenamento para os volumes Kubernetes que você cria. Com o driver CSI do Amazon EBS, você pode criar, anexar e gerenciar seus volumes do Amazon EBS para suas cargas de trabalho de aprendizado de máquina executadas em clusters SageMaker HyperPod com a orquestração do Amazon EKS.

Principais capacidades de armazenamento

O driver CSI do Amazon EBS é SageMaker HyperPod compatível com os seguintes recursos de armazenamento.

  • Provisionamento estático: associa volumes predefinidos do Amazon EBS a volumes persistentes do Kubernetes para serem usados em pods.

  • Provisionamento dinâmico: cria automaticamente volumes do Amazon EBS e volumes persistentes correspondentes a partir de PersistentVolumeClaims. Os parâmetros podem ser transmitidos por meio de StorageClass para um controle refinado sobre a criação de volumes.

  • Redimensionamento de volumes: expande os volumes existentes atualizando a especificação de tamanho PersistentVolumeClaims sem interromper as workloads em execução. Isso pode ser essencial para lidar com repositórios de modelos crescentes ou para se adaptar a nós maiores sem interrupção do serviço.

  • Snapshot de volume: cria snapshots pontuais dos volumes para backup, recuperação e versionamento de dados.

  • Volume de blocos: fornece acesso a dispositivos de blocos brutos para aplicações de alto desempenho que exigem acesso direto ao armazenamento.

  • Modificação do volume: altera as propriedades do volume, como tipo, operações de entrada ou saída por segundo (IOPS) ou throughput, usando classes de atributos de volume.

Para ter mais informações sobre o driver da CSI do Amazon EBS, consulte Usar armazenamento de volumes do Kubernetes com o Amazon EBS no Guia do usuário do Amazon EKS.

Para ter mais informações sobre armazenamento de pods em um cluster, consulte Storage na documentação do Kubernetes.

Considerações

A SageMaker HyperPod AMI já gerencia o armazenamento local da instância NVMe em cada nó. Na inicialização, ele combina todas as unidades NVMe do nó em um único grupo de volumes LVM (vg.01) e monta o resultado em. /opt/sagemaker Você não precisa instalar mais nada para usar o armazenamento NVMe local — ele estará pronto para uso assim que o nó estiver ativo.

Importante

Não instale um segundo driver CSI que tenha como alvo o armazenamento de instâncias NVMe (às vezes chamado de driver CSI de armazenamento de instâncias locais). Um segundo gerenciador de armazenamento entra em conflito vg.01 e causa falhas de NVMe, I/O falhas de montagem e estado de dispositivo corrompido que persiste nas reinicializações e substituições de nós.

Essa restrição se aplica somente aos drivers que gerenciam o armazenamento local da instância NVMe. Network-backed Os drivers CSI (Amazon EBS, Amazon FSx, Amazon EFS e Mountpoint para Amazon S3) não são afetados porque não acessam os discos NVMe locais.

O driver CSI do Amazon EBS descrito nesta página gerencia somente volumes do Amazon EBS e não é afetado por esse conflito. O conflito se aplica somente aos drivers CSI que gerenciam o armazenamento local da instância NVMe no nó.

Se você já instalou um driver CSI direcionado ao armazenamento da instância NVMe e está vendo I/O erros de NVMe, siga estas etapas:

  1. Desinstale o complemento do driver CSI de armazenamento de instância local.

  2. Substitua os nós afetados (recomenda-se substituir aproximadamente três por vez).

  3. Verifique se o armazenamento da instância NVMe foi restaurado. O estado restaurado persiste por meio de reinicializações e substituições subsequentes.

Importante

Não substitua os nós antes de desinstalar o complemento. O conflito se repetirá nos novos nós e os I/O erros continuarão.

Para usar o armazenamento de instâncias NVMe HyperPod, confie na configuração LVM integrada da AMI por meio do caminho de montagem padrão (). /opt/sagemaker Para armazenamento em blocos provisionado dinamicamente em nível de pod, use o driver CSI do Amazon EBS conforme descrito no restante desta página.

Casos de uso

A integração do driver CSI do Amazon EBS permite vários casos de uso importantes para cargas de trabalho de treinamento e inferência em clusters EKS. SageMaker HyperPod

Workloads de treinamento

  • Armazenamento de conjuntos de dados: provisione volumes para conjuntos de dados de treinamento que persistem nas reinicializações de pod.

  • Armazenamento de ponto de verificação: salve os pontos de verificação do modelo e os resultados intermediários do treinamento.

  • Artefatos compartilhados: acesse conjuntos de dados comuns e artefatos do modelo em várias tarefas de treinamento.

Workloads de inferência

  • Armazenamento de modelos: provisione dinamicamente volumes de tamanho adequado com base nos requisitos do modelo.

  • Armazenamento em cache de contêineres: crie armazenamento efêmero para melhorar o desempenho da inferência.

  • Registro em log de eventos: armazene resultados e logs de inferência com armazenamento persistente.

Configurando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS

O driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) permite que você provisione e gerencie dinamicamente volumes do Amazon EBS para suas cargas de trabalho em contêineres executadas em clusters com orquestração EKS. SageMaker HyperPod Esta seção mostra como instalar e configurar o driver CSI do Amazon EBS para permitir o armazenamento persistente para suas workloads de machine learning.

Pré-requisitos

Antes de começar, faça o seguinte:

Permissões adicionais

Para configurar o complemento do driver da CSI do Amazon EBS, siga as instruções em Usar armazenamento de volumes do Kubernetes com o Amazon EBS no Guia do usuário do Amazon EKS. Você também deve acrescentar as permissões adicionais a seguir ao perfil do IAM usado para executar o complemento do driver. Observe que essa é a função do IAM especificada na configuração da sua conta de serviço para o complemento do driver, não a função de execução do HyperPod cluster.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume", "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" } ] }

Usar as APIs

Como alternativa, você pode usar as operações AttachClusterNodeVolumee de DetachClusterNodeVolumeAPI para anexar e separar seus volumes do Amazon EBS às instâncias de cluster do SageMaker HyperPod EKS.

Os principais requisitos para usar essas APIs são os seguintes:

  • Tanto o volume do Amazon EBS quanto o cluster SageMaker HyperPod EKS devem pertencer ao mesmo Conta da AWS.

  • A entidade principal da chamada precisa de permissões mínimas específicas para realizar com êxito a operação de anexação ou desconexão. Para ter mais informações sobre essas permissões mínimas, consulte as seções a seguir.

  • Depois de anexar um volume ao seu HyperPod nó, siga as instruções em Acessar os nós do SageMaker HyperPod cluster para acessar o nó do cluster e Disponibilizar um volume para uso na montagem do volume conectado.

Permissões necessárias para o sagemaker: AttachClusterNodeVolume

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DescribeVolumes" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permissões necessárias para o sagemaker: DetachClusterNodeVolume

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:DetachVolume", "ec2:DescribeVolumes" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permissões necessárias para AWS KMS keys

Adicione as seguintes AWS KMS permissões somente se você estiver usando chaves KMS gerenciadas pelo cliente para criptografar seus volumes do Amazon EBS anexados aos HyperPod nós do cluster. Essas permissões não são obrigatórias se você estiver usando chaves do KMS gerenciadas pela AWS(a opção de criptografia padrão).

JSON
{ "Version":"2012-10-17", "Id": "key-default-1", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-east-1.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } } } ] }
nota

Essas AWS KMS permissões não são necessárias para sagemaker:DetachClusterNodeVolume desanexar um volume Cluster Auto Volume Attachment (CAVA) criptografado com chaves KMS gerenciadas pelo cliente.