Información general sobre los discos y el sistema de archivos

En esta página se ofrece una descripción general del sistema de archivos de Container-Optimized OS y se explica cómo montar y formatear discos.

Sistema de archivos

El diseño del sistema de archivos de la imagen de nodo de Container-Optimized OS se ha optimizado para mejorar la seguridad de los nodos. El espacio del disco de arranque se divide en tres tipos de particiones:

  • Partición raíz: se monta como de solo lectura.
  • Particiones con reconocimiento del estado: se pueden escribir y tienen estado.
  • Particiones sin estado: se pueden escribir, pero el contenido no se conserva al reiniciar.

Cuando uses Container-Optimized OS, ten en cuenta las particiones si ejecutas tus propios servicios que tengan ciertas expectativas sobre el diseño del sistema de archivos fuera de los contenedores.

El sistema de archivos raíz se monta como de solo lectura para proteger la integridad del sistema. Sin embargo, los directorios principales y /mnt/stateful_partition son persistentes y se pueden escribir.

Trabajar con el sistema de archivos de Container-Optimized OS

La siguiente es una lista de rutas en el sistema de archivos de la imagen de nodo de Container-Optimized OS, junto con sus propiedades y el uso recomendado:

Ruta Propiedades Finalidad
/
  • Solo lectura
  • Ejecutable
El sistema de archivos raíz está activado como solo lectura para mantener la integridad. El kernel verifica la integridad del sistema de archivos raíz durante el arranque y se niega a arrancar si se producen errores.
/home
/var
  • editable
  • No ejecutable
  • Con reconocimiento del estado
Estas rutas se usan para almacenar datos que se conservan durante la vida útil del disco de arranque. Se montan desde /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • editable
  • Ejecutable
  • Con reconocimiento del estado
Estas rutas son directorios de trabajo de los paquetes de Compute Engine (por ejemplo, el servicio de gestión de cuentas), Docker y Toolbox, respectivamente.
/var/lib/cloud
  • editable
  • Ejecutable
  • Sin reconocimiento del estado
  • Tmpfs
Esta ruta es el directorio de trabajo del paquete cloud-init.
/etc
  • editable
  • Ejecutable
  • Sin reconocimiento del estado
  • Tmpfs
Normalmente, contiene tu configuración (por ejemplo, systemd servicios definidos mediante cloud-init). Es recomendable registrar el estado deseado de tus instancias en cloud-init, ya que cloud-init se aplica cuando se crea una instancia y cuando se reinicia.
/tmp
  • Editable
  • No ejecutable
  • Sin reconocimiento del estado
  • Tmpfs
Se suele usar como espacio de almacenamiento temporal y no se debe usar para almacenar datos persistentes.
/mnt/disks
  • editable
  • Ejecutable
  • Sin reconocimiento del estado
  • Tmpfs
Puedes activar discos persistentes en directorios de /mnt/disks.

Montar y formatear discos

Puedes conectar un disco persistente o crear una instancia con SSDs locales cuando utilices Container-Optimized OS. Sigue las instrucciones de Formatear y montar un disco persistente o Formatear y montar un dispositivo SSD local, según el caso.

Los discos se pueden montar creando un subdirectorio en el directorio /mnt/disks. Como /etc/ no tiene estado en Container-Optimized OS, no puedes usar /etc/fstab para hacer un fsck (comprobación de coherencia del sistema de archivos) automáticamente y montar los discos al arrancar. Sin embargo, puedes conseguir lo mismo haciendo esas operaciones desde la sección bootcmd de tu cloud-config.

En el siguiente ejemplo se monta el disco DEVICE_ID en el directorio /mnt/disks.

  1. Crea un archivo de secuencia de comandos con el siguiente contenido:

    #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
    

    Haz los cambios siguientes:

    • DEVICE_ID: el ID del dispositivo del disco que quieres formatear y montar.
    • MNT_DIR: el directorio en el que montar el disco.

    Consulta la documentación de Linux para ver todas las opciones compatibles con los comandos fsck.ext4 y mount.

  2. Actualiza los metadatos de la VM para incluir el archivo de secuencia de comandos mediante la marca --metadata-from-file.

    Para crear una VM, usa el siguiente comando:

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

    Para actualizar una instancia, usa el siguiente comando:

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

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de tu instancia de VM.
    • SCRIPT_FILE_NAME: el nombre del archivo de secuencia de comandos de metadatos.