

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
<a name="sagemaker-hyperpod-eks-ebs"></a>

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 

**Topics**
+ [Funzionalità chiave di archiviazione](#sagemaker-hyperpod-eks-ebs-features)
+ [Considerazioni](#sagemaker-hyperpod-eks-ebs-considerations)
+ [Casi d’uso](#sagemaker-hyperpod-eks-ebs-use)
+ [Configurazione del driver Amazon EBS CSI sui cluster EKS SageMaker HyperPod](#sagemaker-hyperpod-eks-ebs-setup)
+ [Utilizzo delle API](#sagemaker-hyperpod-eks-ebs-setup-apis)

## Funzionalità chiave di archiviazione
<a name="sagemaker-hyperpod-eks-ebs-features"></a>

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](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) da utilizzare nei pod.
+ Provisioning dinamico: crea automaticamente i volumi Amazon EBS e i volumi persistenti associati da [`PersistentVolumeClaims`](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims). I parametri possono essere passati tramite [`StorageClass`](https://kubernetes.io/docs/concepts/storage/storage-classes/) per un controllo granulare sulla creazione dei volumi.
+ Ridimensionamento dei volumi: espande i volumi esistenti aggiornando le specifiche delle dimensioni in [`PersistentVolumeClaims`](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#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](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/).

Per ulteriori informazioni sul driver CSI di Amazon EBS, consulta [Use Kubernetes volume storage with Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) in *Amazon EKS User Guide*.

Per ulteriori informazioni sull’archiviazione nei pod del cluster, consulta [Storage](https://kubernetes.io/docs/concepts/storage/) nella *documentazione di Kubernetes*.

## Considerazioni
<a name="sagemaker-hyperpod-eks-ebs-considerations"></a>

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.

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

1. 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
<a name="sagemaker-hyperpod-eks-ebs-use"></a>

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
<a name="sagemaker-hyperpod-eks-ebs-setup"></a>

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
<a name="sagemaker-hyperpod-eks-ebs-setup-prerequisite"></a>

Prima di iniziare, esegui queste attività:
+ [Installa e configura il AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [Crea un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)
+ Installazione del driver CSI di Amazon EBS versione [v1.47.0](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md#v1470)

### Autorizzazioni aggiuntive
<a name="sagemaker-hyperpod-eks-ebs-setup-permissions"></a>

Per configurare il componente aggiuntivo del driver CSI di Amazon EBS, segui le istruzioni in [Use Kubernetes volume storage with Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) 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
<a name="sagemaker-hyperpod-eks-ebs-setup-apis"></a>

In alternativa, puoi utilizzare le operazioni [ AttachClusterNodeVolume ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AttachClusterNodeVolume.html) e [ DetachClusterNodeVolume ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DetachClusterNodeVolume.html) 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 ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-access-through-terminal.html) per accedere al nodo del cluster e [ Rendi disponibile un volume ](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html) da utilizzare per montare il volume collegato.

### Autorizzazioni richieste per sagemaker`: AttachClusterNodeVolume`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-attach"></a>

------
#### [ 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`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-detach"></a>

------
#### [ 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
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-kms"></a>

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.