View a markdown version of this page

Utilizzo del driver Amazon EBS CSI su cluster EKS SageMaker HyperPod - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo del driver Amazon EBS CSI su cluster EKS SageMaker HyperPod

SageMaker HyperPod supporta il driver CSI (Amazon Elastic Block Store) Container Storage Interface (Amazon EBS), che gestisce il ciclo di vita dei volumi Amazon EBS come storage per i volumi Kubernetes che crei. Con il driver Amazon EBS CSI, puoi creare, collegare e gestire i tuoi volumi Amazon EBS per i carichi di lavoro di machine learning in esecuzione su cluster con l'orchestrazione di Amazon EKS. SageMaker HyperPod

Funzionalità chiave di archiviazione

Il driver CSI di Amazon EBS supporta le seguenti funzionalità di storage. SageMaker HyperPod

  • 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 StorageClass per un controllo granulare sulla creazione dei volumi.

  • Ridimensionamento dei volumi: espande i volumi esistenti aggiornando le specifiche delle dimensioni in PersistentVolumeClaims senza 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 nella documentazione di Kubernetes.

Considerazioni

L' SageMaker HyperPod AMI gestisce già lo storage di istanze NVMe locale su ogni nodo. All'avvio, combina tutte le unità NVMe del nodo in un singolo gruppo di volumi LVM (vg.01) e monta il risultato in. /opt/sagemaker Non è necessario installare nient'altro per utilizzare lo storage NVMe locale: è pronto per l'uso non appena il nodo è attivo.

Importante

Non installate un secondo driver CSI destinato allo storage di istanze NVMe (a volte chiamato driver CSI di Local Instance Storage). Un secondo gestore di storage è in conflitto vg.01 e causa errori NVMe, I/O errori di montaggio e stato del dispositivo danneggiato che persiste anche dopo i riavvii e le sostituzioni dei nodi.

Questa restrizione si applica solo ai driver che gestiscono lo storage di istanze NVMe locale. Network-backed I driver CSI (Amazon EBS, Amazon FSx, Amazon EFS e Mountpoint for Amazon S3) non sono interessati perché non accedono ai dischi NVMe locali.

Il driver CSI Amazon EBS descritto in questa pagina gestisce solo i volumi Amazon EBS e non è interessato da questo conflitto. Il conflitto si applica solo ai driver CSI che gestiscono lo storage di istanze NVMe locale sul nodo.

Se hai già installato un driver CSI destinato allo storage di istanze NVMe e visualizzi errori NVMe, segui questi passaggi: I/O

  1. Disinstalla il componente aggiuntivo del driver CSI local-instance-storage.

  2. Sostituisci i nodi interessati (si consiglia di sostituirne circa tre alla volta).

  3. Verificare che lo storage delle istanze NVMe sia ripristinato. Lo stato ripristinato persiste anche nei successivi riavvii e sostituzioni.

Importante

Non sostituite i nodi prima di aver disinstallato il componente aggiuntivo. Il conflitto si ripresenterà sui nuovi nodi e gli I/O errori continueranno.

Per utilizzare lo storage di istanze NVMe HyperPod, affidatevi alla configurazione LVM integrata dell'AMI tramite il percorso di montaggio standard (). /opt/sagemaker Per lo storage a blocchi a livello di pod con provisioning dinamico, utilizza il driver CSI Amazon EBS come descritto nel resto di questa pagina.

Casi d’uso

L'integrazione del driver CSI di Amazon EBS consente diversi casi d'uso chiave per carichi di lavoro di formazione e inferenza su cluster EKS. SageMaker HyperPod

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 Amazon EBS CSI sui cluster EKS SageMaker HyperPod

Il driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) consente di effettuare il provisioning e gestire in modo dinamico i volumi Amazon EBS per i carichi di lavoro containerizzati eseguiti su cluster con orchestrazione EKS. SageMaker HyperPod 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à:

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 driver add-on, non il ruolo di esecuzione del 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" } ] }

Utilizzo delle API

In alternativa, puoi utilizzare le operazioni AttachClusterNodeVolume e DetachClusterNodeVolume API per collegare e scollegare i tuoi 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 appartenere alla stessa proprietà. 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 HyperPod nodo, segui le istruzioni in Accesso ai nodi del SageMaker HyperPod cluster per accedere al nodo del cluster e Rendi disponibile un volume da utilizzare per montare il volume collegato.

Autorizzazioni richieste per 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/*" } ] }

Autorizzazioni richieste per 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/*" } ] }

Autorizzazioni richieste per AWS KMS keys

Aggiungi le seguenti AWS KMS autorizzazioni 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).

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

Queste AWS KMS autorizzazioni non sono necessarie per sagemaker:DetachClusterNodeVolume scollegare un volume Cluster Auto Volume Attachment (CAVA) crittografato con chiavi KMS gestite dal cliente.