Saltar al contenido principal Saltar a navegación Saltar al pie de página

Repositorios

Cree, gestione y opere repositorios cifrados con LUKS en máquinas remotas.

Repositorios

Un repositorio es una imagen de disco cifrada con LUKS en un servidor remoto. Cuando se monta, proporciona:

  • Un sistema de archivos aislado para los datos de su aplicación
  • Un daemon Docker dedicado (separado del Docker del host)
  • IPs de loopback únicas para cada servicio dentro de una subred /26

Crear un Repositorio

rdc repo create --name my-app -m server-1 --size 10G
OpciónRequeridoDescripción
-m, --machine <name>Máquina destino donde se creará el repositorio.
--size <size>Tamaño de la imagen de disco cifrada (por ejemplo, 5G, 10G, 50G).
--skip-router-restartNoOmitir el reinicio del servidor de rutas después de la operación

La salida mostrará tres valores generados automáticamente:

  • GUID del Repositorio — Un UUID que identifica la imagen de disco cifrada en el servidor.
  • Credencial — Una frase de contraseña aleatoria utilizada para cifrar/descifrar el volumen LUKS.
  • ID de Red — Un número entero (comenzando en 2816, incrementando en 64) que determina la subred IP para los servicios de este repositorio.

Almacene la credencial de forma segura. Es la clave de cifrado de su repositorio. Si se pierde, los datos no se pueden recuperar. La credencial se almacena en su config.json local pero no se almacena en el servidor.

Montar y Desmontar

Montar descifra y hace accesible el sistema de archivos del repositorio. Desmontar cierra el volumen cifrado.

rdc repo mount --name my-app -m server-1  # Descifrar y montar
rdc repo unmount --name my-app -m server-1  # Desmontar y re-cifrar
OpciónDescripción
--checkpointCrear un checkpoint CRIU antes de montar/desmontar (para contenedores con etiqueta rediacc.checkpoint=true)
--skip-router-restartOmitir el reinicio del servidor de rutas después de la operación

Verificar Estado

rdc repo status --name my-app -m server-1

Listar Repositorios

rdc repo list -m server-1

Redimensionar

Establezca el repositorio a un tamaño exacto o expanda una cantidad dada:

rdc repo resize --name my-app -m server-1 --size 20G  # Establecer tamaño exacto
rdc repo expand --name my-app -m server-1 --size 5G  # Agregar 5G al tamaño actual

El repositorio debe estar desmontado antes de redimensionar.

Bifurcar

Cree una copia de un repositorio existente en su estado actual:

rdc repo fork --parent my-app --tag staging -m server-1

Las bifurcaciones usan el modelo name:tag: la bifurcación resultante se llama my-app:staging. Esto crea una nueva copia cifrada con su propio GUID e ID de red, compartiendo el nombre del repositorio padre. La bifurcación comparte la misma credencial LUKS que el repositorio padre.

Validar

Verifique la integridad del sistema de archivos de un repositorio:

rdc repo validate --name my-app -m server-1

Propiedad

Establezca la propiedad de archivos dentro de un repositorio al usuario universal (UID 7111). Esto es típicamente necesario después de subir archivos desde su estación de trabajo, que llegan con su UID local.

rdc repo ownership --name my-app -m server-1

El comando detecta automáticamente los directorios de datos de contenedores Docker (montajes bind de escritura) y los excluye. Esto previene daños en contenedores que gestionan archivos con sus propios UIDs (por ejemplo, MariaDB=999, www-data=33).

OpciónDescripción
--uid <uid>Establecer un UID personalizado en lugar de 7111
--skip-router-restartOmitir el reinicio del servidor de rutas después de la operación

Para forzar la propiedad en todos los archivos, incluyendo datos de contenedores:

rdc repo ownership --name my-app -m server-1

Consulte la Guía de Migración para un recorrido completo de cuándo y cómo usar la propiedad durante la migración de proyectos.

Plantilla

Aplique una plantilla para inicializar un repositorio con archivos:

rdc repo template apply --name my-template -m server-1 -r my-app --file ./my-template.tar.gz

Eliminar

Destruya permanentemente un repositorio y todos los datos dentro de él:

rdc repo delete --name my-app -m server-1

Esto destruye permanentemente la imagen de disco cifrada. Esta acción no se puede deshacer.