Crea e utilizza classi di archiviazione in Anthos VM Runtime

Questo documento è destinato a proprietari di applicazioni e amministratori di piattaforme che eseguono cluster Anthos su Bare Metal. Questo documento mostra come creare e utilizzare le classi di archiviazione per le VM che utilizzano Anthos VM Runtime. Un StorageClass consente di definire configurazioni di archiviazione diverse per soddisfare le varie esigenze delle tue VM.

Prima di iniziare

Per completare questo documento, devi accedere ai cluster Anthos su Bare Metal versione 1.12.0 (anthosBareMetalVersion: 1.12.0) o successiva. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire carichi di lavoro. Se necessario, prova i cluster Anthos su Bare Metal su Compute Engine o consulta la panoramica sulla creazione dei cluster.

Panoramica delle classi di archiviazione

Puoi utilizzare un StorageClass per definire il tipo di archiviazione che metti a disposizione delle VM. Classi di archiviazione diverse possono essere mappate a un tipo diverso di hardware, file system o prestazioni di archiviazione. Puoi creare e utilizzare classi di archiviazione per supportare i tuoi carichi di lavoro di computing in Anthos VM Runtime. Per ulteriori informazioni, consulta Classi di archiviazione.

È possibile definire un oggetto StorageClass predefinito nella risorsa personalizzata per Anthos VM Runtime. Se non definisci una classe specifica quando crei un VirtualMachineDisks,, viene utilizzato questo StorageClass predefinito. Nessuna StorageClass iniziale è configurata e impostata come predefinita. Nella sezione seguente puoi scoprire come impostare o aggiornare questo valore StorageClass predefinito.

Imposta o aggiorna il valore predefinito StorageClass

Inizialmente, per i cluster Anthos su Bare Metal con Anthos VM Runtime non è configurato StorageClass predefinito. Per creare un VirtualMachineDisk senza specificare un StorageClass, devi prima creare un StorageClass e poi impostarlo come predefinito.

Se vuoi configurare o aggiornare inizialmente il StorageClass predefinito utilizzato da Anthos VM Runtime quando crei una VirtualMachineDisk, aggiorna la risorsa personalizzata VMRuntime.

  1. Modifica la risorsa personalizzata VMRuntime:

    kubectl edit vmruntime
    
  2. Aggiungi o aggiorna la sezione spec.storage che specifica il valore predefinito StorageClass da utilizzare:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      storage:
        defaultStorageClass: STORAGE_CLASS_NAME
    ...
    

    Modifica STORAGE_CLASS_NAME con il nome del valore predefinito StorageClass che vuoi usare. Se devi prima creare un StorageClass, consulta la sezione Creare un StorageClass.

  3. Salva e chiudi la risorsa personalizzata VMRuntime nell'editor.

    Il StorageClass specificato viene ora utilizzato quando crei il disco di una macchina virtuale e non devi specificare un StorageClass. La seguente sezione mostra come creare un disco e utilizzare un oggetto StorageClass specifico.

    Le risorse VirtualMachineDisk esistenti non vengono aggiornate in modo da utilizzare il nuovo StorageClass specificato.

Utilizza un oggetto StorageClass specifico

Se non vuoi utilizzare il StorageClass predefinito quando crei un VirtualMachineDisk, utilizza il campo storageClassName per specificare un StorageClass diverso.

Per utilizzare un elemento StorageClass specifico già definito quando crei un elemento VirtualMachineDisk, procedi nel seguente modo:

  1. Crea un manifest VirtualMachineDisk, ad esempio my-disk.yaml, nell'editor che preferisci:

    nano my-disk.yaml
    
  2. Copia e incolla il seguente manifest YAML:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      storageClassName: STORAGE_CLASS_NAME
    

    Sostituisci i seguenti valori:

    • DISK_NAME: il nome del tuo disco.
    • STORAGE_CLASS_NAME: il StorageClass da utilizzare per il tuo disco. StorageClass deve già esistere. Se devi prima creare un StorageClass, consulta la sezione Creare un oggetto StorageClass.
  3. Salva e chiudi il manifest del disco nell'editor.

  4. Crea il disco utilizzando kubectl:

    kubectl apply -f my-disk.yaml
    

Configura profili di archiviazione

I profili di archiviazione forniscono opzioni di configurazione aggiuntive associate a StorageClass. Queste opzioni di configurazione includono le modalità di accesso e di volume da utilizzare per VirtualMachineDisks che utilizzano StorageClass.

Senza un profilo di archiviazione configurato, la modalità di accesso per i dischi è predefinita su ReadWriteOnce. Questa modalità di accesso non è sufficiente per i carichi di lavoro di produzione, in quanto funzionalità come la migrazione live non funzionano. La modalità volume predefinita senza un profilo di archiviazione configurato è Filesystem.

Il runtime VM di Anthos genera automaticamente un profilo di archiviazione per ogni StorageClass in un cluster. Il profilo di archiviazione è lo stesso nome dell'oggetto StorageClass associato. L'output di esempio che segue mostra che il cluster ha quattro classi di archiviazione e profili associati:

  $ kubectl get storageprofiles

  NAME            AGE
  anthos-system   11d
  node-disk       11d
  standard        11d
  nfs             11d

Per modificare un profilo di archiviazione e cambiare la modalità di accesso o di volume, procedi nel seguente modo:

  1. Modifica la risorsa personalizzata StorageProfile per la modifica:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Sostituisci STORAGE_PROFILE_NAME con la StorageProfile che vuoi modificare.

  2. Aggiungi una singola voce all'elenco spec.claimPropertySets di StorageProfile:

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    accessMode e volumeMode utilizzano i componenti Kubernetes sottostanti. I valori impostati dipendono dal driver di archiviazione utilizzato. Sostituisci i seguenti valori in base allo spazio di archiviazione utilizzato:

    • ACCESS_MODE: la modalità di accesso che vuoi utilizzare. Se supportata dal StorageClass associato, la modalità di accesso preferita è ReadWriteMany.
      • I valori accettabili includono ReadWriteOnce, ReadOnlyMany, ReadWriteMany e ReadWriteOncePod. Se non specificato, viene utilizzato ReadWriteOnce in base ai valori predefiniti del runtime VM di Anthos. Per ulteriori informazioni, consulta Modalità di accesso.
    • VOLUME_MODE: la modalità del volume che vuoi utilizzare.
      • I valori accettabili includono Filesystem e Block. Se non specificato, viene utilizzato Filesystem in base ai valori predefiniti di Kubernetes. Per maggiori informazioni, consulta la pagina Modalità volume.
  3. Salva e chiudi la risorsa personalizzata StorageProfile nell'editor.

    Le impostazioni del profilo di archiviazione definite vengono utilizzate quando crei i dischi virtuali. Le risorse VirtualMachineDisk esistenti non vengono aggiornate in modo da utilizzare le impostazioni del profilo di archiviazione definite.

Passaggi successivi