Utilizzo del driver CSI di Amazon EBS su cluster SageMaker HyperPod EKS
SageMaker HyperPod supporta il driver Container Storage Interface (CSI) per Amazon Elastic Block Store (Amazon EBS) che gestisce il ciclo di vita dei volumi Amazon EBS come archiviazione per i volumi Kubernetes creati. Con il driver CSI di Amazon EBS puoi creare, collegare e gestire i volumi Amazon EBS per i carichi di lavoro di machine learning in esecuzione su cluster SageMaker HyperPod con orchestrazione Amazon EKS.
In questo argomento:
Funzionalità chiave di archiviazione
Il driver CSI di Amazon EBS su SageMaker HyperPod supporta le seguenti funzionalità di archiviazione.
-
Provisioning statico: associa i volumi Amazon EBS precreati ai volumi persistenti Kubernetes
da utilizzare nei pod. -
Provisioning dinamico: crea automaticamente i volumi Amazon EBS e i volumi persistenti associati da
PersistentVolumeClaims. I parametri possono essere passati tramite StorageClassper un controllo granulare sulla creazione dei volumi. -
Ridimensionamento dei volumi: espande i volumi esistenti aggiornando le specifiche delle dimensioni in
PersistentVolumeClaimssenza arrestare l’esecuzione dei carichi di lavoro. Questa opzione potrebbe essere essenziale per gestire repository di modelli in crescita o adattarsi a nodi più grandi senza interrompere il servizio. -
Snapshot di volumi: crea snapshot point-in-time di volumi per il backup, il ripristino e il controllo delle versioni dei dati.
-
Volumi a blocchi: fornisce l’accesso ai dispositivi a blocchi non elaborati per applicazioni ad alte prestazioni che richiedono l’accesso diretto all’archiviazione.
-
Modifica del volume: modifica le proprietà del volume, ad esempio il tipo, le operazioni di input o output al secondo (IOPS) o il throughput utilizzando le classi di attributi del volume
.
Per ulteriori informazioni sul driver CSI di Amazon EBS, consulta Use Kubernetes volume storage with Amazon EBS in Amazon EKS User Guide.
Per ulteriori informazioni sull’archiviazione nei pod del cluster, consulta Storage
Casi d'uso
L’integrazione del driver CSI di Amazon EBS consente diversi casi d’uso chiave per carichi di lavoro di addestramento e inferenza sui cluster SageMaker HyperPod EKS.
Carichi di lavoro di addestramento
-
Archiviazione di set di dati: alloca volumi per set di dati di addestramento che persistono anche dopo il riavvio del pod.
-
Archiviazione dei checkpoint: salva i checkpoint del modello e i risultati intermedi dell’addestramento.
-
Artefatti condivisi: accedi a set di dati comuni e ad artefatti dei modelli in più job di addestramento.
Carichi di lavoro di inferenza
-
Archiviazione dei modelli: alloca dinamicamente volumi di dimensione appropriata in base ai requisiti del modello.
-
Caching dei container: crea un’archiviazione temporanea per migliorare le prestazioni di inferenza.
-
Registrazione di log degli eventi: archivia i risultati di inferenza e i log con archiviazione persistente.
Configurazione del driver CSI di Amazon EBS sui cluster SageMaker HyperPod EKS
Il driver Container Storage Interface (CSI) per Amazon Elastic Block Store (Amazon EBS) consente di allocare e gestire in modo dinamico i volumi Amazon EBS per i carichi di lavoro containerizzati in esecuzione su cluster SageMaker HyperPod con orchestrazione EKS. Questa sezione descrive l’installazione e la configurazione del driver CSI di Amazon EBS per abilitare l’archiviazione persistente per i carichi di lavoro di machine learning.
Prerequisiti
Prima di iniziare, esegui queste attività:
-
Creazione di un cluster SageMaker HyperPod con orchestrazione di Amazon EKS
-
Installazione del driver CSI di Amazon EBS versione v1.47.0
Autorizzazioni aggiuntive
Per configurare il componente aggiuntivo del driver CSI di Amazon EBS, segui le istruzioni in Use Kubernetes volume storage with Amazon EBS in Amazon EKS User Guide. Devi anche aggiungere le autorizzazioni seguenti al ruolo IAM utilizzato per eseguire il componente aggiuntivo del driver. Tieni presente che questo è il ruolo IAM specificato nella configurazione dell’account di servizio per il componente aggiuntivo del driver, non il ruolo di esecuzione del cluster HyperPod.
{ "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" } ] }
Utilizzo delle API
In alternativa, puoi utilizzare le operazioni API AttachClusterNodeVolume e DetachClusterNodeVolume per collegare e scollegare i volumi Amazon EBS alle istanze del cluster SageMaker HyperPod EKS.
I requisiti chiave per l’utilizzo di queste API includono quanto segue.
-
Sia il volume Amazon EBS che il cluster SageMaker HyperPod EKS devono essere di proprietà dello stesso Account AWS.
-
Il principale che esegue la chiamata necessita di autorizzazioni minime specifiche per eseguire correttamente l’operazione di collegamento o scollegamento. Per ulteriori informazioni su queste autorizzazioni, consulta le sezioni seguenti.
-
Dopo aver collegato un volume al nodo HyperPod, segui le istruzioni in Accesso ai nodi del cluster SageMaker HyperPod per accedere al nodo del cluster e in Make a volume available for use per montare il volume collegato.
Autorizzazioni necessarie per sagemaker:AttachClusterNodeVolume
{ "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:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }
Autorizzazioni necessarie per sagemaker:DetachClusterNodeVolume
{ "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:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }
Autorizzazioni necessarie per le chiavi AWS KMS
Aggiungi le autorizzazioni AWS KMS seguenti solo se utilizzi chiavi KMS gestite dal cliente per crittografare i volumi Amazon EBS collegati ai nodi del cluster HyperPod. Queste autorizzazioni non sono necessarie se utilizzi chiavi KMS gestite da AWS (l’opzione di crittografia predefinita).
{ "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.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } } } ] }
Nota
Queste autorizzazioni AWS KMS non sono necessarie per sagemaker:DetachClusterNodeVolume quando scolleghi un volume Cluster Auto Volume Attachment (CAVA) crittografato con chiavi KMS gestite dal cliente.