Descripción general de discos y sistemas de archivos

En esta página, se proporciona una descripción general del sistema de archivos de Container-Optimized OS y se describe cómo activar y formatear discos.

Sistema de archivos

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

  • Partición raíz, que es de solo lectura
  • Particiones con estado, en las que se puede escribir y tienen estado
  • Particiones sin estado, en las que se puede escribir, pero el contenido se pierde cuando el sistema se reinicia

Cuando uses Container-Optimized OS, ten en cuenta las particiones si ejecutas servicios que necesiten un diseño especial del sistema de archivos aparte de los contenedores.

El sistema de archivos raíz se activa como solo lectura a fin de proteger su integridad. Sin embargo, los directorios de inicio y /mnt/stateful_partition son persistentes y admiten escritura.

Trabaja con el sistema de archivos de Container-Optimized OS

A continuación, se muestra una lista de las rutas del sistema de archivos de las imágenes de nodo de Container-Optimized OS, junto con sus propiedades y uso recomendado:

Ruta Propiedades Propósito
/
  • solo lectura
  • ejecutable
El sistema de archivos raíz se activa como solo lectura a fin de mantener su integridad. El kernel verifica la integridad del sistema de archivos raíz durante el arranque y, en caso de encontrar errores, no inicia el sistema.
/home
/var
  • admite escritura
  • no ejecutable
  • con estado
El objetivo de estas rutas es almacenar los datos que se mantienen durante toda la vida del disco de arranque. Se activan desde /mnt/stateful_partition.
/var/lib/google
/var/lib/docker
/var/lib/toolbox
  • admite escritura
  • ejecutable
  • con estado
Estas rutas son directorios de trabajo que funcionan para los paquetes de Compute Engine (por ejemplo, el servicio de administrador de cuentas), Docker y Toolbox, respectivamente.
/var/lib/cloud
  • admite escritura
  • ejecutable
  • sin estado
  • tmpfs
Esta ruta es el directorio de trabajo del paquete cloud-init.
/etc
  • admite escritura
  • ejecutable
  • sin estado
  • tmpfs
Por lo general, conserva tu configuración (por ejemplo, los servicios systemd definidos a través de cloud-init). Es una buena idea capturar el estado deseado de tus instancias en cloud-init, ya que cloud-init se aplica cuando una instancia acaba de crearse y cuando se reinicia.
/tmp
  • admite escritura
  • no ejecutable
  • sin estado
  • tmpfs
Por lo general, se usa como espacio temporal y no se debe usar para almacenar datos persistentes.
/mnt/disks
  • admite escritura
  • ejecutable
  • sin estado
  • tmpfs
Puedes activar discos persistentes en los directorios de /mnt/disks.

Activa y formatea discos

Puedes adjuntar un disco persistente o crear una instancia con SSD locales cuando utilizas Container-Optimized OS. Sigue las instrucciones que figuran en Cómo formatear y activar un disco persistente o Cómo formatear y activar un dispositivo SSD local para obtener información sobre el caso de uso adecuado.

Los discos se pueden activar si creas un subdirectorio en el directorio /mnt/disks. Debido a que /etc/ está sin estado en Container-Optimized OS, no puedes usar /etc/fstab para realizar la operación (comprobación de la coherencia del sistema de archivos) ni activar los discos en el arranque de forma automática. Pero puedes lograr lo mismo si realizas esas operaciones de la sección bootcmd en tu cloud-config.

En el siguiente ejemplo, se activa 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
    

    Reemplaza lo siguiente:

    • DEVICE_ID: El ID de dispositivo del disco que deseas formatear y activar.
    • MNT_DIR: El directorio en el que se activará el disco.

    Consulta la documentación de Linux para obtener un conjunto completo de opciones. compatible con fsck.ext4 y mount.

  2. Actualiza los metadatos de la VM para incluir el archivo de secuencia de comandos mediante el comando --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 existente, usa el siguiente comando:

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

    Reemplaza lo siguiente:

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