Creare e utilizzare le classi di archiviazione nel runtime VM su GDC

Questo documento è rivolto ai proprietari di applicazioni e agli amministratori della piattaforma che eseguono Google Distributed Cloud. Questo documento illustra come creare e utilizzare le classi di archiviazione per le VM che utilizzano il runtime VM su GDC. Un StorageClass ti consente di definire diverse configurazioni di archiviazione per soddisfare le varie esigenze delle tue VM.

Prima di iniziare

Per completare questo documento, devi avere accesso al cluster Google Distributed Cloud 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 Google Distributed Cloud su Compute Engine o consulta la panoramica della creazione dei cluster.

Panoramica delle classi di archiviazione

Utilizza un StorageClass per definire il tipo di archiviazione reso disponibile per le VM. Classi di archiviazione diverse potrebbero essere associate a un tipo diverso di hardware di archiviazione, file system o prestazioni. Puoi creare e utilizzare classi di archiviazione per supportare i tuoi workload di calcolo nel runtime VM su GDC. Per ulteriori informazioni, consulta la sezione Classi di archiviazione.

Nella risorsa personalizzata per il runtime VM su GDC è possibile definire un valore StorageClass predefinito. Se non definisci una classe specifica quando crei un VirtualMachineDisks,, viene utilizzato questo StorageClass predefinito. Nessun StorageClass iniziale è configurato e impostato come predefinito. Nella sezione seguente, scoprirai come impostare o aggiornare questo StorageClass predefinito.

Impostare o aggiornare la classe di archiviazione predefinita

Inizialmente, Google Distributed Cloud con il runtime VM su GDC non ha StorageClass predefinito configurato. Per creare un VirtualMachineDisk senza specificare un StorageClass, devi prima creare un StorageClass e impostarlo come predefinito.

Se vuoi impostare o aggiornare inizialmente il StorageClass predefinito utilizzato dal runtime VM su GDC quando crei un 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 predefinitoStorageClass che vuoi utilizzare. Se devi prima creare un StorageClass, consulta Creare un StorageClass.

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

    Il StorageClass specificato viene ora utilizzato quando crei un disco della macchina virtuale e non specifichi un StorageClass. La sezione seguente descrive come creare un disco e utilizzare un StorageClass specifico.

    Le risorse VirtualMachineDisk esistenti non vengono aggiornate per utilizzare il nuovo StorageClass specificato.

Utilizzare una classe StorageClass specifica

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

Per utilizzare un StorageClass specifico e già definito quando crei un VirtualMachineDisk, segui questi passaggi:

  1. Crea un file 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 disco.
    • STORAGE_CLASS_NAME: il StorageClass da utilizzare per il tuo disco. Questo StorageClass deve già esistere. Se devi prima creare un StorageClass, consulta Creare un StorageClass.
  3. Salva e chiudi il manifest del disco nell'editor.

  4. Crea il disco utilizzando kubectl:

    kubectl apply -f my-disk.yaml
    

Configura i profili di archiviazione

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

In assenza di un profilo di archiviazione configurato, per i dischi viene utilizzata per impostazione predefinita la modalità di accesso ReadWriteOnce. Questa modalità di accesso non è sufficiente per i carichi di lavoro di produzione, poiché funzionalità come migrazione live non funzionano. La modalità del volume predefinita senza un profilo di archiviazione configurato è Filesystem.

Il runtime VM su GDC genera automaticamente un profilo di archiviazione per ogni StorageClass in un cluster. Il profilo di archiviazione ha lo stesso nome del StorageClass associato. L'esempio di output riportato di seguito 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 la modalità del volume:

  1. Modifica la risorsa personalizzata StorageProfile:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Sostituisci STORAGE_PROFILE_NAME con il 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 che utilizzi:

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

    Le impostazioni del profilo di archiviazione che hai definito vengono utilizzate quando crei i dischi virtuali. Le risorse VirtualMachineDisk esistenti non vengono aggiornate in base alle impostazioni del profilo di archiviazione definite.

Passaggi successivi