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 fuera de los contenedores.

El sistema de archivos raíz se activa como solo lectura a fin de proteger la integridad del sistema. 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
  • no ejecutable
  • sin estado
  • tmpfs
Por lo general, conserva tu configuración (por ejemplo, servicios systemd definidos a través de cloud-init). Se recomienda capturar el estado deseado de tus instancias en cloud-init, mientras que cloud-init se aplica cuando se crea o se reinicia una instancia.
/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 conectar un disco persistente o crear una instancia con SSD locales cuando usas 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 práctico adecuado.

Los discos se pueden activar mediante la creación de un subdirectorio en el directorio /mnt/disks. Dado que /etc/ no tiene estado en Container-Optimized OS, no puedes usar /etc/fstab para realizar una operación fsck (verificación de coherencia del sistema de archivos) de forma automática y activar los discos en el inicio. Sin embargo, puedes hacer lo mismo si realizas esas operaciones desde la sección bootcmd de 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 al que deseas formatear y activar.
    • MNT_DIR: Es el directorio en el que se activará el disco.

    Consulta la documentación de Linux para obtener un conjunto completo de 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 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 la secuencia de comandos de metadatos.