Files
ProxMenux/web/messages/es/docs/oci-manager/storage-network.json
T
MacRimi a2b96bf6a4 Bring the web documentation in line with develop in every language
- English pages describe backups, the manifest, ROCm GPUs, OCI host directories and storage as develop does, and say user instead of operator
- New paragraph on host directories mounted with everything the host has mounted inside them, and a new update rule for host directories
- The Proxmox Backup Server section of the post-install page is translated into every language
- Spanish and the other six languages follow the updated English
2026-10-18 19:02:17 +02:00

309 lines
14 KiB
JSON

{
"meta": {
"title": "Datos, rutas y red | ProxMenux",
"description": "Cómo conserva OCI manager Apps los datos de un contenedor OCI: discos del contenedor, directorios del host, montajes con rclone, direcciones y redes privadas."
},
"header": {
"title": "Datos, rutas y red",
"description": "Qué se guarda en el rootfs, qué sobrevive a su sustitución, cómo se comparten datos entre contenedores y cómo obtiene cada uno su dirección.",
"section": "OCI manager Apps"
},
"sections": [
{
"id": "intro",
"blocks": [
{
"calloutInfo": {
"title": "La persistencia se decide antes de crear el LXC",
"body": "Antes de crear el contenedor se leen los volúmenes declarados por la imagen y por su archivo Compose. Cada ruta que deba conservarse tras una actualización se convierte en un punto de montaje independiente del rootfs. Así, el rootfs solo contiene lo que pertenece a la imagen y puede sustituirse."
}
}
]
},
{
"id": "questions",
"title": "Qué pregunta el instalador",
"intro": "La plantilla proporciona las rutas que necesita la aplicación. Cada una se ubica en un disco del contenedor o en un directorio del host, y se pueden añadir más rutas antes del resumen.",
"blocks": [
{
"steps": {
"items": [
{
"title": "Rutas necesarias",
"body": "Se enumeran <code>/config</code>, <code>/data</code>, bibliotecas, descargas y todos los volúmenes declarados por la aplicación."
},
{
"title": "Ubicación",
"body": "Cada ruta se ubica en un disco del contenedor o en un directorio del host ya existente."
},
{
"title": "Almacenamiento y tamaño",
"body": "Un disco del contenedor se crea en un almacenamiento de Proxmox VE con el tamaño indicado. La instalación por defecto pregunta una sola vez el almacenamiento del contenedor y sus datos cuando el nodo tiene más de uno; la instalación avanzada pregunta el almacenamiento de cada ruta justo antes de su tamaño y propone el del rootfs. Aparece como <code>vm-VMID-disk-N</code> y se conecta como <code>mpN</code>."
},
{
"title": "Directorio del host",
"body": "El directorio del host se indica mediante su ruta. Si no existe, se crea con el usuario al que se mapea el del contenedor como propietario."
},
{
"title": "Rutas adicionales",
"body": "Antes de instalar se pueden añadir más pares de ruta o volumen del host y ruta dentro del contenedor."
},
{
"title": "Resumen",
"body": "Antes de crear el CT se muestra la correspondencia completa de rutas y se guarda en el contrato de la instancia."
}
]
}
}
]
},
{
"id": "options",
"title": "Las dos ubicaciones persistentes",
"blocks": [
{
"table": {
"headers": [
"Propiedad",
"Disco del contenedor",
"Directorio del host"
],
"rows": [
[
"En la configuración",
"<code>mpN: STORAGE:vm-VMID-disk-N,mp=/config,backup=1,size=16G</code>",
"<code>mpN: /mnt/oci-shared/media,mp=/data/media</code>"
],
[
"Backup del contenedor (vzdump)",
"Incluido, con <code>backup=1</code>",
"No incluido"
],
[
"Tamaño",
"Fijo; se amplía redimensionando el punto de montaje",
"El espacio libre del sistema de archivos o dataset del host"
],
[
"Otros contenedores",
"Solo lo monta el contenedor al que pertenece",
"El mismo directorio se puede montar en varios contenedores"
],
[
"Snapshots y restauración",
"Los gestiona Proxmox VE junto con el CT",
"Se gestionan en el almacenamiento del host"
],
[
"Al eliminar la aplicación",
"Se elimina con el contenedor",
"Se conserva con su contenido"
],
[
"Al mover el CT a otro nodo",
"Se mueve con el CT",
"La misma ruta debe existir en el otro nodo"
]
]
}
},
{
"p": "El rootfs se reserva para los binarios y el contenido de la imagen. Una actualización o recreación lo sustituye sin tocar ninguno de los dos tipos de punto de montaje."
},
{
"p": "Un directorio del host se monta con todo lo que el host tiene montado dentro de él. Un directorio como <code>/mnt/pve</code> muestra en el contenedor sus recursos de red, discos y datasets, y lo que el host monta o desmonta allí después aparece o desaparece sin reiniciar el contenedor. Un directorio añadido como solo lectura lo es junto con lo que tiene montado dentro al iniciar el contenedor. Un sistema de archivos que el host monta después llega con los permisos con los que el host lo monta, y pasa también a solo lectura al reiniciar el contenedor."
}
]
},
{
"id": "example",
"title": "Ejemplo: un contenedor con ambas ubicaciones",
"blocks": [
{
"code": {
"title": "Jellyfin instalado como CT 151 en local-lvm (fragmento)",
"code": "rootfs: local-lvm:vm-151-disk-0,size=8G\n# Container disk, part of the CT backup\nmp0: local-lvm:vm-151-disk-1,mp=/config,backup=1,size=16G\n\n# Host directory, outside the CT backup\nmp1: /mnt/oci-shared/media,mp=/data/media"
}
},
{
"p": "Una actualización o recreación solo sustituye el rootfs: <code>mp0</code> conserva usuarios, bibliotecas y ajustes, y <code>mp1</code> sigue mostrando los mismos archivos multimedia. Al restaurar el backup del CT se recupera <code>/config</code>; si hace falta restaurar el directorio multimedia, se utiliza el backup del almacenamiento del host."
},
{
"flow": {
"nodes": [
{
"label": "Contrato",
"detail": "/config"
},
{
"label": "Ubicación",
"detail": "Disco del contenedor\no directorio del host"
},
{
"label": "LXC",
"detail": "Siempre /config\npara la aplicación"
}
],
"caption": "La aplicación ve la ruta declarada por la imagen; solo cambia dónde se almacena."
}
}
]
},
{
"id": "shared",
"title": "Un directorio del host, varios contenedores",
"blocks": [
{
"mermaid": {
"chartCode": "flowchart TB\n H[\"{{host}}<br/>/mnt/oci-shared/media\"]\n H --> Q[\"qBittorrent<br/>/data\"]\n H --> J[\"Jellyfin<br/>/data\"]\n H --> R[\"Radarr / Sonarr<br/>/data\"]\n Q -. \"{{config}}\" .-> QV[(\"/config mpN\")]\n J -. \"{{config}}\" .-> JV[(\"/config mpN\")]\n R -. \"{{config}}\" .-> RV[(\"/config mpN\")]",
"labels": {
"host": "Directorio del host",
"config": "Configuración propia"
}
}
},
{
"p": "Cada contenedor guarda su configuración en su propio disco. La biblioteca o las descargas se guardan en un único directorio del host, montado en la misma ruta interna en todos los contenedores. Así, una ruta en la que escribe una aplicación es la misma desde la que lee otra."
}
]
},
{
"id": "rclone",
"title": "Almacenamiento en la nube mediante la aplicación rclone",
"intro": "Además de instalarla, la ficha de rclone en el catálogo permite <strong>Activar un montaje en un contenedor OCI de rclone existente</strong>. Se monta un remoto ya creado y autorizado en la interfaz web de rclone y se publica en el host. Otros contenedores pueden usarlo como un directorio del host.",
"blocks": [
{
"steps": {
"items": [
{
"title": "Contenedor y remoto",
"body": "El VMID del contenedor de rclone, el nombre exacto del remoto y, opcionalmente, una ruta dentro de él."
},
{
"title": "Nombre del montaje y caché",
"body": "El nombre del montaje y el modo de caché VFS: <code>off</code>, <code>minimal</code>, <code>writes</code> o <code>full</code> (predeterminado)."
},
{
"title": "Vistas publicadas",
"body": "Una raíz común, <code>/mnt/oci-shared</code> de forma predeterminada, contiene una vista de lectura y escritura en <code>/mnt/oci-shared/remotes/NAME</code> y otra de solo lectura en <code>/mnt/oci-shared/remotes-ro/NAME</code>."
},
{
"title": "Activación",
"body": "Tras confirmar, se detiene el CT, se configuran su comando de arranque y un hookscript de Proxmox VE y se vuelve a iniciar. La operación espera a que ambas vistas estén montadas en el host."
}
]
}
},
{
"calloutInfo": {
"title": "Si el montaje no se activa",
"body": "Se restaura la configuración anterior del contenedor y se vuelve a iniciar. Así, si la activación falla, rclone queda como estaba."
}
}
]
},
{
"id": "network",
"title": "Direcciones y redes",
"intro": "Una aplicación de un solo contenedor necesita una dirección. Una aplicación con varios contenedores también necesita una red estable entre sus miembros.",
"blocks": [
{
"cards": {
"items": [
{
"icon": "network",
"title": "Aplicación de un contenedor",
"body": "Se elige el puente de red y DHCP o una dirección fija en formato CIDR. El LXC tiene su propia dirección y el resumen muestra las URL completas de los servicios."
},
{
"icon": "waypoints",
"title": "Aplicación con varios contenedores",
"body": "Se busca una subred libre, se crea un puente privado persistente y cada miembro —aplicación, base de datos y caché— recibe una dirección fija en él."
}
]
}
},
{
"flow": {
"nodes": [
{
"label": "LAN",
"detail": "Dirección accesible\nsolo para el servicio principal"
},
{
"label": "LXC principal",
"detail": "Web / API\nLAN + red privada"
},
{
"label": "Red privada",
"detail": "PostgreSQL · Valkey · ML\ndirecciones fijas"
}
],
"caption": "Las dependencias se comunican por la red privada y no tienen una dirección en la LAN."
}
},
{
"p": "El contrato de la pila guarda el puente, la subred, las direcciones y las relaciones entre servicios. Al actualizar la aplicación se reutiliza la misma topología para todos sus miembros. ProxMenux Monitor abre el contenedor principal en su dirección de la LAN, no en la de la red privada."
}
]
},
{
"id": "ownership",
"title": "Propietarios de archivos y directorios",
"blocks": [
{
"list": {
"items": [
"Los directorios nuevos se crean con el UID y el GID a los que se mapea el LXC sin privilegios.",
"No se cambia recursivamente el propietario de los directorios existentes.",
"Los sockets, archivos del sistema y rutas sensibles no se ofrecen como directorios genéricos del host."
]
}
}
]
},
{
"id": "backup",
"title": "Qué contiene el backup de un contenedor",
"blocks": [
{
"table": {
"headers": [
"Elemento",
"En el backup vzdump del CT",
"Dónde se conserva"
],
"rows": [
[
"Rootfs OCI",
"Sí",
"En el backup del CT; también se puede reconstruir a partir de la imagen y el contrato"
],
[
"Disco del contenedor con <code>backup=1</code>",
"Sí",
"El backup del CT"
],
[
"Directorio del host",
"No",
"El backup del almacenamiento del host"
],
[
"Contrato de la instancia",
"Sí, la copia que guarda el CT",
"<code>/.proxmenux/oci-record.json</code> dentro del CT; las copias adicionales del host y del clúster se guardan por separado"
],
[
"Aplicación con varios contenedores",
"Cada miembro en su propio backup",
"Los backups de todos los miembros, más el contrato de la pila y su puente de red en el host"
]
]
}
}
]
}
]
}