
Como ya os contamos en un post anterior, antiguamente, el almacenamiento LVM Thin no existía y las imágenes de disco de máquinas virtuales y contenedores se guardaban como archivos normales (.qcow2, .raw
) en subdirectorios con el identificador del contenedor o máquina virtual alojados dentro del directorio /var/lib/vz.
En este post, os vamos a mostrar, con un ejemplo práctico, como migrar el almacenamiento de un contenedor a LVM_thin:
Supongamos que tenemos un contenedor cuyo identificador es 105 y queremos migrar su almacenamiento a LVM_thin.
Lo primero que vamos a hacer es verificar que dispoenmos de un almacenamiento LVM_thin en nuestro servidor. Para ello, usamos el comando pvesm status:
pvesm status
Name Type Status Total Used Available %
local dir active 958743672 371119612 538848892 38.71%
local-backup dir active 1921724696 633274696 1190757940 32.95%
local-lvm lvmthin active 1073741824 21796959 1051944864 2.03%
nas-backup nfs active 7198859264 6027270144 862897152 83.73%
En este caso, comprobamos que sí lo tenemos puesto que hay una línea que dice:
local-lvm lvmthin active 1073741824 21796959 1051944864 2.03%
Y que tiene espacio disponible (Tan sólo tiene ocupado un 2.03%).
Bien, pues una vez comprobado, verificamos el almacenamiento actual del contenedor:
pct config 105
arch: amd64
cores: 1
description: features%3A nesting=1%0A
hostname: fogserver
lock: disk
memory: 1024
nameserver: 172.19.144.8 172.19.144.3 172.19.144.2
net0: name=eth0,bridge=vmbr0,hwaddr=AA:C7:AB:97:CA:1C,ip=172.19.144.68/23,type=veth
onboot: 1
ostype: debian
protection: 1
rootfs: local:105/vm-105-disk-0.raw,size=345G
searchdomain: valledeljerte3
swap: 1024
lxc.mount.entry: /dev/net dev/net none bind,create=dir
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.apparmor.profile: unconfined
Como podemos ver en la configuración del contenedor, éste tiene una imagen de disco en el almacenamiento local:
rootfs: local:105/vm-105-disk-0.raw,size=345G
Así que paramos el contenedor:
pct shutdown 105
Una vez detenido, movemos el volumen al almacenamiento local-lvm (LVM_Thin):
pct move-volume 105 rootfs local-lvm
Logical volume "vm-105-disk-0" created.
Creating filesystem with 90439680 4k blocks and 22609920 inodes
Filesystem UUID: a74884a2-ac96-4bff-a6e5-7c606fb0680b
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968
Donde:
- 105: ID del contenedor
- rootfs: volumen que queremos mover
- local-lvm: almacenamiento destino
Bien, pues una vez terminado el proceso, comprobamos que el contenedor apunte al nuevo volumen:
pct config 105
Deberíamos ver algo como:
rootfs: local-lvm:vm-105-disk-0,size=345G
Lo que significa que todo ha ido bien.
Ahora bien, si al ejecutar pct config, veis una línea como la siguiente:
unused0: local:105/vm-105-disk-1.raw
Significa que el almacenamiento antiguo sigue configurado en el contenedor como un almacenamiento sin usar. Para eliminarlo de la configuración, tan sólo tenemos que usar el comando:
pct set 105 --delete unused0
Para finalizar, arrancamos de nuevo el contenedor:
pct start 105
¿Y si el contenedor tiene volúmenes adicionales (como mp0
, mp1
)?
Podemos moverlos del mismo modo con:
pct move-volume 105 mp0 local-lvm
Be the first to comment