Panoramica su dischi e filesystem

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina fornisce una panoramica del file system di Container-Optimized OS e descrive come montare e formattare i dischi.

File system

Il layout del file system delle immagini dei nodi del sistema operativo ottimizzato per i container è ottimizzato per migliorare la sicurezza dei nodi. Lo spazio su disco di avvio è suddiviso in tre tipi di partizioni:

  • Partizione principale, che viene montata in modalità di sola lettura.
  • Partizioni stateful, scrivibili e stateful.
  • Partizioni stateless, scrivibili, ma i contenuti non vengono eliminati da tutti i riavvii.

Quando utilizzi Container-Optimized OS, presta attenzione al partizionamento se esegui i tuoi servizi con determinate aspettative sul layout del file system al di fuori dei container.

Il file system principale è montato in sola lettura per proteggerne l'integrità. Tuttavia, le home directory e /mnt/stateful_partition sono permanenti e scrivibili.

Utilizzare il file system di Container-Optimized OS

Di seguito è riportato un elenco di percorsi nel file system del nodo immagine ottimizzato per il container, con le relative proprietà e l'utilizzo consigliato:

Percorso Proprietà Scopo
/
  • sola lettura
  • eseguibile
Il file system radice è montato in sola lettura per garantire l'integrità. Il kernel verifica il filesystem radice di integrità durante l'avvio e rifiuta l'avvio in caso di errori.
/home page
/var
  • scrivibile
  • non eseguibile
  • stateful
Questi percorsi sono pensati per archiviare i dati che durano per tutta la durata del disco di avvio. Montati a partire da /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • scrivibile
  • eseguibile
  • stateful
Questi percorsi funzionano come directory per i pacchetti Compute Engine (ad esempio, il servizio di gestione account), Docker e Toolbox rispettivamente.
/var/lib/cloud
  • scrivibile
  • eseguibile
  • apolide
  • tmpfs
Questo percorso è la directory di lavoro del pacchetto cloud-init.
/etc
  • scrivibile
  • non eseguibile
  • apolide
  • tmpfs
In genere contiene la tua configurazione (ad esempio, i servizi systemd definiti tramite cloud-init). È una buona idea acquisire lo stato desiderato delle istanze in cloud-init, poiché cloud-init viene applicato quando un'istanza viene creata di recente e quando viene riavviata.
/tmp
  • scrivibile
  • non eseguibile
  • apolide
  • tmpfs
In genere utilizzato come spazio temporaneo e non deve essere utilizzato per archiviare dati permanenti.
/mnt/disks
  • scrivibile
  • eseguibile
  • apolide
  • tmpfs
Puoi montare i dischi permanenti nelle directory all'interno di /mnt/disks.

Montaggio e formattazione di dischi

Puoi collegare un disco permanente o creare un'istanza con SSD locali quando utilizzi un sistema operativo ottimizzato per i container. Segui le istruzioni su formattazione e montaggio di un disco permanente oppure su formattazione e montaggio di un dispositivo SSD locale per il caso d'uso appropriato.

I dischi possono essere montati creando una sottodirectory della directory /mnt/disks. Poiché /etc/ è stateless nel sistema operativo ottimizzato per i container, non puoi utilizzare /etc/fstab per il fsck automatico (controllo della coerenza del file system) e per montare i dischi all'avvio. Tuttavia, puoi ottenere lo stesso risultato eseguendo queste operazioni nella sezione bootcmd di cloud-config.

L'esempio seguente monta il disco DEVICE_ID nella directory /mnt/disks.

  1. Crea un file di script utilizzando i seguenti contenuti:

    #cloud-config
    
    bootcmd:
    - fsck.ext4 -tvy /dev/DEVICE_ID
    - mkdir -p /mnt/disks/MNT_DIR
    - mount -t ext4 -O ... /dev/DEVICE_ID /mnt/disks/MNT_DIR
    

    Sostituisci quanto segue:

    • DEVICE_ID: l'ID dispositivo del disco che vuoi formattare e montare.
    • MNT_DIR: la directory in cui montare il disco.

    Consulta la documentazione di Linux per un insieme completo di opzioni supportate dai comandi fsck.ext4 e mount.

  2. Aggiorna i metadati della VM in modo da includere il file dello script utilizzando il flag --metadata-from-file.

    Per creare una VM, utilizza il comando seguente:

    gcloud compute instances create INSTANCE_NAME \
        --metadata-from-file user-data=SCRIPT_FILE_NAME
    

    Per aggiornare un'istanza esistente, utilizza il comando seguente:

    gcloud compute instances add-metadata INSTANCE_NAME \
        --metadata-from-file user-data=SCRIPT_FILE_NAME
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza VM.
    • SCRIPT_FILE_NAME: il nome del file dello script dei metadati.