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 dell'immagine del nodo Container-Optimized OS è ottimizzato per migliorare la sicurezza del nodo. Lo spazio su disco di avvio è suddiviso in tre tipi di partizioni:
Partizione principale, montata come di sola lettura.
Partizioni con stato integro, che sono scrivibili e con stato integro.
Partizioni senza stato, che sono scrivibili, ma i cui contenuti non rimangono invariati tra i riavvii.
Quando utilizzi Container-Optimized OS, tieni presente la partizione se esegui i tuoi servizi che hanno determinate aspettative sul layout del file system al di fuori dei container.
Il file system principale viene montato come di sola lettura per proteggere l'integrità del sistema.
Tuttavia, le home directory e /mnt/stateful_partition sono permanenti e scrivibili.
Utilizzo del file system di Container-Optimized OS
Di seguito è riportato un elenco di percorsi nel sistema di file dell'immagine del nodo Container-Optimized OS, insieme alle relative proprietà e all'utilizzo consigliato:
Percorso
Proprietà
Finalità
/
di sola lettura
eseguibile
Il file system principale viene montato in sola lettura per mantenere l'integrità. Il
kernel verifica l'integrità del file system principale durante l'avvio e si rifiuta di avviarsi
in caso di errori.
/home
/var
scrivibile
non eseguibili
stateful
Questi percorsi sono destinati alla memorizzazione di dati permanenti per tutta la durata del
disco di avvio. Sono montati da /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
scrivibile
eseguibile
stateful
Questi percorsi sono le directory di lavoro per i pacchetti Compute Engine (ad esempio il servizio Account Manager), Docker e Toolbox.
/var/lib/cloud
scrivibile
eseguibile
stateless
tmpfs
Questo percorso è la directory di lavoro del pacchetto cloud-init.
/etc
scrivibile
eseguibile
stateless
tmpfs
In genere contiene la configurazione (ad esempio,
i servizi systemd definiti tramite cloud-init).
È buona norma acquisire lo stato desiderato delle istanze in
cloud-init, poiché cloud-init viene applicato quando viene creata una nuova istanza e quando un'istanza viene riavviata.
/tmp
scrivibile
non eseguibili
stateless
tmpfs
In genere viene utilizzato come spazio temporaneo e non deve essere utilizzato per archiviare
dati permanenti.
/mnt/disks
scrivibile
eseguibile
stateless
tmpfs
Puoi montare i dischi permanenti nelle directory sotto /mnt/disks.
I dischi possono essere montati creando una sottodirectory nella directory /mnt/disks. Poiché /etc/ è stateless su Container-Optimized OS, non puoi usarlo per eseguire automaticamente fsck (controllo di consistenza del file system) e montare i dischi all'avvio./etc/fstab Tuttavia, puoi ottenere lo stesso risultato eseguendo queste operazioni dalla sezione bootcmd in cloud-config.
Nell'esempio seguente, il disco DEVICE_ID viene montato nella directory /mnt/disks.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eContainer-Optimized OS uses a file system layout with read-only root, stateful, and stateless partitions to enhance node security.\u003c/p\u003e\n"],["\u003cp\u003eThe root file system is read-only to protect system integrity, but home directories and \u003ccode\u003e/mnt/stateful_partition\u003c/code\u003e are writable and persistent.\u003c/p\u003e\n"],["\u003cp\u003eSpecific paths like \u003ccode\u003e/var/lib/google\u003c/code\u003e, \u003ccode\u003e/var/lib/docker\u003c/code\u003e, and \u003ccode\u003e/var/lib/toolbox\u003c/code\u003e are designated for working directories of certain services, and are stateful.\u003c/p\u003e\n"],["\u003cp\u003ePersistent disks can be attached and mounted under \u003ccode\u003e/mnt/disks\u003c/code\u003e using \u003ccode\u003ecloud-config\u003c/code\u003e scripts, as the \u003ccode\u003e/etc/fstab\u003c/code\u003e method is not available due to the stateless nature of \u003ccode\u003e/etc/\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eYou can use \u003ccode\u003ecloud-init\u003c/code\u003e to handle configuration and mounting of disks on Container-Optimized OS instances, ensuring that configurations are applied on creation and restarts.\u003c/p\u003e\n"]]],[],null,["# Disks and file system overview\n\nThis page provides an overview of the Container-Optimized OS file system\nand describes how to mount and format disks.\n\nFile system\n-----------\n\nThe Container-Optimized OS node image file system layout is optimized to\nenhance node security. The boot disk space is split into three types of\npartitions:\n\n- **Root partition**, which is mounted as read-only.\n- **Stateful partitions**, which are writable and stateful.\n- **Stateless partitions**, which are writable but the contents do not persist across reboots.\n\nWhen using Container-Optimized OS, be aware of the partitioning if you run\nyour own services that have certain expectations about the file system layout\noutside of containers.\n\nThe root file system is mounted as read-only to protect system integrity.\nHowever, home directories and `/mnt/stateful_partition` are persistent and\nwritable.\n\n### Working with the Container-Optimized OS file system\n\n\nThe following is a list of paths in the Container-Optimized OS node image file\nsystem, along with their properties and recommended usage:\n\nMounting and formatting disks\n-----------------------------\n\nYou can attach a persistent disk or create an instance with Local SSDs when using\nContainer-Optimized OS. Follow the instructions on [Formatting and mounting\na persistent disk](/compute/docs/disks/format-mount-disk-linux#format_linux) or\n[Format and mount a local SSD device](/compute/docs/disks/add-local-ssd#formatandmount)\nfor the appropriate use-case.\n\nThe disks can be mounted by creating a subdirectory under `/mnt/disks`\ndirectory. Since `/etc/` is stateless on Container-Optimized OS, you\ncannot use `/etc/fstab` to automatically fsck (file system consistency check)\nand mount the disks on boot. But you can achieve the same by doing those\noperations from the `bootcmd` section in your\n[`cloud-config`](http://cloudinit.readthedocs.io/en/latest/topics/examples.html).\n\nThe following example mounts the disk \u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e\nunder the `/mnt/disks` directory.\n\n1. Create a script file using the following contents:\n\n #cloud-config\n\n bootcmd:\n - fsck.ext4 -tvy /dev/\u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e\n - mkdir -p /mnt/disks/\u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e\n - mount -t ext4 -o ... /dev/\u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e /mnt/disks/\u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eDEVICE_ID\u003c/var\u003e: the device ID of the disk that you want to format and mount.\n - \u003cvar translate=\"no\"\u003eMNT_DIR\u003c/var\u003e: the directory in which to mount your disk.\n\n Refer to the Linux documentation for a full set of options\n supported by the [`fsck.ext4`](http://man7.org/linux/man-pages/man8/e2fsck.8.html)\n and [`mount`](http://man7.org/linux/man-pages/man8/mount.8.html) commands.\n2. Update the VM metadata to include the script file by using the\n `--metadata-from-file` flag.\n\n To create a VM, use the following command: \n\n gcloud compute instances create \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e \\\n --metadata-from-file user-data=\u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e\n\n To update an existing instance, use the following command: \n\n gcloud compute instances add-metadata \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e \\\n --metadata-from-file user-data=\u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of your VM instance.\n - \u003cvar translate=\"no\"\u003eSCRIPT_FILE_NAME\u003c/var\u003e: the name of the metadata script file."]]