Cette page présente le système de fichiers de Container-Optimized OS et explique comment installer et formater des disques.
Système de fichiers
La structure du système de fichiers dans l'image de nœud Container-Optimized OS est optimisée pour améliorer la sécurité des nœuds. L'espace disque d'amorçage est divisé en trois types de partitions :
- Partition racine, installée en lecture seule.
- Partitions avec état, accessibles en écriture et avec état.
- Partitions sans état, accessibles en écriture, mais dont le contenu ne persiste pas après un redémarrage.
Lorsque vous utilisez Container-Optimized OS, tenez compte du partitionnement si vous exécutez vos propres services ayant certaines exigences concernant l'organisation du système de fichiers en dehors des conteneurs.
Le système de fichiers racine est installé en lecture seule pour protéger l'intégrité du système.
Cependant, les répertoires d'accueil et /mnt/stateful_partition
sont persistants et accessibles en écriture.
Travailler avec le système de fichiers de Container-Optimized OS
Vous trouverez ci-dessous la liste des chemins du système de fichiers dans l'image de nœud Container-Optimized OS, ainsi que leurs propriétés et leur utilisation recommandée :
Chemin | Propriétés | Objectif |
---|---|---|
/ |
|
Le système de fichiers racine est utilisé en lecture seule pour préserver son intégrité. Le noyau vérifie l'intégrité du système de fichiers racine lors du démarrage et refuse de démarrer en cas d'erreur. |
/home /var |
|
Ces chemins d'accès sont destinés à stocker des données qui sont conservées pendant toute la durée de vie du disque de démarrage. Ils sont installés à partir de /mnt/stateful_partition . |
/var/lib/google /var/lib/docker /var/lib/toolbox |
|
Ces chemins d'accès sont des répertoires de travail pour les packages Compute Engine (par exemple, le service de gestion des comptes), Docker et Toolbox, respectivement. |
/var/lib/cloud |
|
Ce chemin correspond au répertoire de travail du package cloud-init . |
/etc |
|
Contient généralement votre configuration (par exemple, les services systemd définis via cloud-init ). Il est judicieux d'enregistrer l'état souhaité de vos instances dans cloud-init , car cloud-init est appliqué lors de la création, ainsi que lors du redémarrage d'une instance. |
/tmp |
|
Généralement utilisé comme espace de travail et ne doit pas être utilisé pour stocker des données persistantes. |
/mnt/disks |
|
Vous pouvez installer des disques persistants dans des répertoires sous /mnt/disks . |
Installer et formater des disques
Vous pouvez associer un disque persistant ou créer une instance avec des disques SSD locaux lorsque vous utilisez Container-Optimized OS. Suivez les instructions des pages Formater et installer un disque persistant ou Formater et installer un disque dur SSD local pour trouver le cas d'utilisation approprié.
Les disques peuvent être installés en créant un sous-répertoire dans le répertoire /mnt/disks
. Étant donné que /etc/
est sans état sur Container-Optimized OS, vous ne pouvez pas utiliser /etc/fstab
pour faire une vérification automatique de la cohérence du système de fichiers et installer les disques au démarrage. Cependant, vous pouvez obtenir le même résultat en effectuant ces opérations à partir de la section bootcmd
dans votre cloud-config
.
L'exemple suivant permet d'installer le disque DEVICE_ID
sous le répertoire /mnt/disks
.
Créez un fichier de script avec le contenu suivant :
#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
Remplacez les éléments suivants :
DEVICE_ID
: ID de l'appareil pour le disque que vous souhaitez formater et installer.MNT_DIR
: répertoire dans lequel installer votre disque.
Reportez-vous à la documentation Linux pour obtenir un ensemble complet d'options compatible avec le
fsck.ext4
etmount
.Mettez à jour les métadonnées de la VM pour inclure le fichier de script à l'aide de l'option
--metadata-from-file
.Pour créer une VM, utilisez la commande suivante :
gcloud compute instances create INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME
Pour mettre à jour une instance existante, utilisez la commande suivante :
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata-from-file user-data=SCRIPT_FILE_NAME
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de votre instance de VM.SCRIPT_FILE_NAME
: nom du fichier de script de métadonnées.