El Estudio Lumen hace fotos de bodas, de producto y de lo que haga falta, y graba vídeo. Todo eso pesa: su servidor con Proxmox se ha quedado corto. Esta semana les ha llegado un disco nuevo, que alguien ya ha metido en la torre, y tienen un NAS en la red con sitio de sobra. Además, el servidor avisa de que algo está casi lleno. Te toca ordenarlo.
Los almacenes
Proxmox no guarda las cosas «en un disco»: las guarda en almacenes (storage). Un almacén es un sitio con un nombre, un tipo (cómo guarda: en carpetas, en volúmenes de LVM, en ZFS, en un NAS…) y un contenido: qué cosas acepta. Las que vas a ver:
- Disk image: los discos de las VM.
- Container: los discos de los contenedores.
- ISO image: las ISO para instalar VM.
- Container template: las plantillas para crear contenedores.
- Backup: las copias de seguridad de VM y contenedores.
Un nodo recién instalado trae dos. local es una carpeta del disco del sistema, /var/lib/vz,
para archivos (ISO, plantillas, copias); local-lvm es un LVM-Thin en el resto de ese disco,
para los discos de las VM y los contenedores. Están en /etc/pve/storage.cfg, el archivo que manda:
root@pve1:~# cat /etc/pve/storage.cfg dir: local path /var/lib/vz content iso,vztmpl,backup,import lvmthin: local-lvm thinpool data vgname pve content rootdir,images
Cada almacén es un bloque: tipo: nombre y, debajo, sus opciones. content dice qué guarda, con
nombres cortos: images (Disk image), rootdir (Container), iso, vztmpl (Container template)
y backup. En la web, en Datacenter ▸ Storage; en la shell, pvesm (storage manager):
root@pve1:~# pvesm status Name Type Status Total (KiB) Used (KiB) Available (KiB) % local dir active 43807744 40791480 758756 93.11% local-lvm lvmthin active 65531904 0 65531904 0.00%
Cada almacén sale también en el árbol, debajo del nodo, con su resumen y lo que guarda.
Un almacén se puede desactivar sin quitarlo: en su Edit, la casilla Enable (en
storage.cfg, la línea disable 1; en la shell, pvesm set <nombre> --disable 1). Sigue
configurado, pero Proxmox no lo usa: nada se guarda ahí ni se arranca desde ahí hasta que se vuelve
a activar (--disable 0, o marcando Enable).
Un disco nuevo: LVM-Thin
Un disco nuevo no sirve de nada hasta que se convierte en un almacén. Primero, ver cuál es. En la
web, pve1 ▸ Disks (modelo, número de serie, tamaño y si ya tiene algo); en la shell, lsblk:
root@pve1:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS fd0 2:0 1 4K 0 disk sda 8:0 0 200G 0 disk vda 253:0 0 128G 0 disk ├─vda1 253:1 0 1007K 0 part ├─vda2 253:2 0 1G 0 part └─vda3 253:3 0 127G 0 part ├─pve-swap 252:0 0 4G 0 lvm [SWAP] ├─pve-root 252:1 0 42.7G 0 lvm / ├─pve-data_tmeta 252:2 0 1G 0 lvm │ └─pve-data-tpool 252:4 0 62.5G 0 lvm │ ├─pve-data 252:5 0 62.5G 1 lvm │ └─pve-vm--100--disk--0 252:6 0 32G 0 lvm └─pve-data_tdata 252:3 0 62.5G 0 lvm └─pve-data-tpool 252:4 0 62.5G 0 lvm ├─pve-data 252:5 0 62.5G 1 lvm └─pve-vm--100--disk--0 252:6 0 32G 0 lvm
vda es el disco del sistema, con todo su árbol de LVM debajo (en pve-data vive el disco de la
VM 100, la galería de la web). sda está vacío: es el nuevo. Antes de tocar un disco, mira
bien cuál es (el tamaño, el modelo y el número de serie de la caja, que en Disks salen en su fila).
Qué hacer con él depende de lo que vaya a guardar:
- LVM-Thin: para discos de VM y contenedores. Cada disco de VM es un volumen que solo ocupa lo que de verdad tiene escrito (thin, fino): puedes dar a las VM más de lo que el disco tiene, y vigilarlo.
- Directory: el disco con un sistema de archivos (ext4) montado en
/mnt/pve/nombre, para archivos: ISO, plantillas, copias. - ZFS: sistema de archivos y volúmenes a la vez, con sumas de comprobación de todo; brilla con varios discos (espejo, RAID-Z), y pide memoria.
Para los discos de las VM del estudio, pve1 ▸ Disks ▸ LVM-Thin ▸ Create: Thinpool: el disco, un nombre y Add Storage marcado (así se crea también el almacén). Es una tarea, y su registro cuenta lo que hace LVM:
root@pve1:~# pvesh create /nodes/pve1/disks/lvmthin --device /dev/sda --name fotos --add_storage 1 Physical volume "/dev/sda" successfully created. Volume group "fotos" successfully created Rounding up size to full physical extent <195.88 GiB Rounding up size to full physical extent 2.00 GiB Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data. Logical volume "fotos" created. UPID:pve1:000004B2:00001A90:6AC4B898:lvmthincreate:fotos:root@pam:
El disco entero se hace un grupo de volúmenes (fotos) y, dentro, un thin pool que se
llama igual. De 200 GiB quedan unos 196 para datos: 2 GiB son de metadatos (dónde está cada
trozo de cada disco) y otros 2, su copia de reserva. En storage.cfg aparece el almacén nuevo:
root@pve1:~# cat /etc/pve/storage.cfg dir: local path /var/lib/vz content iso,vztmpl,backup,import lvmthin: local-lvm thinpool data vgname pve content rootdir,images lvmthin: fotos thinpool fotos vgname fotos content rootdir,images nodes pve1
Ejercicio
El disco nuevo
Al servidor del Estudio Lumen le han puesto un disco nuevo, vacío, para los discos de las VM. Mira en la Shell del nodo cuál es y créale un LVM-Thin llamado fotos, con su almacén.
Encendiendo el nodo…
ISO y plantillas
Para instalar una VM hace falta su ISO, y para crear un contenedor, una plantilla. Los dos
van en un almacén de archivos (como local). En la web, en local ▸ ISO Images y local ▸ CT
Templates:
- Upload sube un archivo desde tu ordenador (como el de los drivers de un escáner).
- Download from URL hace que el nodo lo baje directamente: con Query URL pregunta al
servidor su nombre y su tamaño, y con Download lo baja (una tarea, con el registro de
wget). Mucho más rápido que bajarlo a tu ordenador y subirlo. - Templates (en CT Templates) enseña el catálogo de plantillas de Proxmox, por secciones.
Lo bajado, desde la shell:
root@pve1:~# pvesm list local --content iso Volid Format Type Size VMID local:iso/debian-13.7.0-amd64-netinst.iso iso iso 792723456
El volid (local:iso/…) es como Proxmox nombra cada cosa de un almacén: el almacén, dos
puntos y lo de dentro. Por debajo, un archivo en /var/lib/vz/template/iso/.
Ejercicio
La ISO del instalador
Para instalar una VM nueva hace falta la ISO de Debian 13. Bájala directamente al nodo, a local, desde su URL: https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.7.0-amd64-netinst.iso
Encendiendo el nodo…
Ejercicio
Una plantilla de contenedor
El estudio quiere un contenedor pequeño para sus avisos. Baja a local la plantilla de Debian 13 (la estándar, la de amd64: el servidor es un PC normal).
Encendiendo el nodo…
Un NAS por NFS
Un NAS es un servidor de archivos en la red. Con NFS, Proxmox monta una de sus carpetas compartidas y la usa como un almacén más: ideal para las copias, que así no viven en el mismo servidor que lo que copian. Antes de añadirlo, se puede ver qué comparte:
root@pve1:~# pvesm scan nfs 192.168.60.20 /volume1/estudio 192.168.60.0/24
La carpeta (export) y a quién se la deja. En la web, Datacenter ▸ Storage ▸ Add ▸ NFS: un
ID (el nombre del almacén), el Server, el Export (la lista sale sola al escribir el
servidor) y el Content. Proxmox la monta en /mnt/pve/ID y crea dentro las carpetas de lo que
guarde (dump, para las copias):
root@pve1:~# mount | grep nas 192.168.60.20:/volume1/estudio on /mnt/pve/nas type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,fatal_neterrors=none,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.60.10,local_lock=none,addr=192.168.60.20)
Un almacén NFS es compartido (shared): si un día hay más nodos, todos lo ven a la vez. Si el
NAS no contesta, Proxmox no lo deja añadir: storage 'nas' is not online.
Ejercicio
El NAS
El estudio tiene un NAS en 192.168.60.20, que comparte /volume1/estudio por NFS. Añádelo como almacén, con el nombre nas, para guardar copias.
Encendiendo el nodo…
Cuando local se llena
local está en el disco del sistema. Si se llena, se llena también la raíz de Debian, y el nodo
empieza a fallar por todas partes. Lo dice pvesm status (el 93 %) y df:
root@pve1:~# df -h / Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 42G 39G 741M 99% /
¿Qué ocupa tanto? En local ▸ Backups, o en la shell:
root@pve1:~# pvesm list local Volid Format Type Size VMID local:backup/vzdump-qemu-100-2026_09_01-21_00_00.vma.zst vma.zst backup 33822867456 100 local:backup/vzdump-qemu-100-2026_10_04-21_00_00.vma.zst vma.zst backup 1825361101 100 local:backup/vzdump-qemu-100-2026_10_05-21_00_00.vma.zst vma.zst backup 1717986918 100
Una copia vieja de septiembre, de más de 30 GiB. Se borra con Remove en Backups, o:
root@pve1:~# pvesm free local:backup/vzdump-qemu-100-2026_09_01-21_00_00.vma.zst Removed volume 'local:backup/vzdump-qemu-100-2026_09_01-21_00_00.vma.zst'
Ejercicio
local, lleno
local está casi lleno y ya no caben ni las ISO. Mira qué ocupa tanto y bórralo, pero sin perder las copias de esta semana.
Encendiendo el nodo…
Cada cosa en su sitio
Que local no se vuelva a llenar de copias se arregla en su contenido: en Datacenter ▸
Storage ▸ local ▸ Edit ▸ Content, se quita Backup. Las copias irán al almacén que sí las
acepta, el del NAS. En la shell:
root@pve1:~# pvesm set local --content iso,vztmpl,import
Quitar un tipo de contenido no borra nada: lo que ya había se queda en la carpeta, solo que Proxmox deja de enseñarlo y de usar ese almacén para eso.
Ejercicio
Las copias, al NAS
El NAS ya está añadido (nas, para copias). Para que local no se vuelva a llenar, que deje de guardar copias: solo ISO, plantillas e importaciones.
Encendiendo el nodo…
Lo que no se borra
En Disks, Wipe Disk borra lo que haya en un disco. Proxmox no deja borrar uno que esté en uso (con un grupo de LVM, un pool o algo montado):
root@pve1:~# pvesh set /nodes/pve1/disks/wipedisk --disk /dev/sda disk/partition '/dev/sda' has a holder
Pero un disco que no se use sí lo borra, sin más preguntas que su confirmación: el día que borres el disco equivocado, lo que tuviera se pierde.
Quitar un almacén (Remove en Datacenter ▸ Storage, o pvesm remove) es otra cosa: solo lo
quita de storage.cfg. Los datos siguen en el disco, pero las VM que tienen ahí sus discos dejan de
arrancar:
root@pve1:~# qm start 100 storage 'local-lvm' does not exist
Se arregla volviendo a añadirlo igual (pvesm add lvmthin local-lvm --vgname pve --thinpool data --content rootdir,images), pero mejor no llegar ahí.
Resumen
- Proxmox guarda en almacenes: un tipo (Directory, LVM-Thin, ZFS, NFS…) y un contenido
(discos de VM, de contenedores, ISO, plantillas, copias). Están en
/etc/pve/storage.cfg; en la shell,pvesm. - local (
/var/lib/vz) guarda archivos; local-lvm (LVM-Thin), los discos de las VM. - Un disco nuevo se mira en Disks (o
lsblk) y se convierte en almacén: LVM-Thin para discos de VM, Directory para archivos, ZFS para lo que pide integridad. - Las ISO y las plantillas: Upload, Download from URL (las baja el nodo) y Templates. Ojo con amd64 y arm64.
- Un NAS por NFS es un almacén compartido: para las copias, lejos del servidor que copian.
- Si local se llena, mira qué ocupa (
pvesm list) y borra lo viejo; quítale Backup del contenido para que no vuelva a pasar. - Wipe Disk no borra un disco en uso, pero sí el equivocado. Quitar un almacén no borra datos, pero deja sin arrancar las VM que lo usan.