Ver planes
ESEN

Discos y particiones en Linux: LVM, más de 2 TB y unidades externas

· 8 min de lectura · por el equipo técnico de VPS Argentina

Sumar espacio a un servidor Linux tiene tres caminos según cómo esté armado: si el disco usa LVM, se agrega el disco nuevo al grupo y se extiende el volumen en caliente; si es una partición común, se amplía y se redimensiona el sistema de archivos; y si el disco supera los 2 TB, hay que usar GPT con parted, porque la tabla MBR no direcciona más que eso. Todo se hace con el servidor encendido, salvo el reinicio que a veces pide detectar el disco nuevo.

Ver qué hay

lsblk
df -hT
vgs && lvs

lsblk muestra los discos y sus particiones; df -hT lo que está montado y con qué sistema de archivos; vgs y lvs responden si hay LVM. Si esos dos últimos no devuelven nada, el servidor usa particiones comunes.

Con LVM: sumar espacio sin cortar nada

LVM separa el disco físico del volumen que ves montado, y eso permite crecer en caliente. Con un disco nuevo ya agregado al VPS:

pvcreate /dev/vdb
vgextend vg0 /dev/vdb
lvextend -l +100%FREE /dev/vg0/root
resize2fs /dev/vg0/root        # ext4
xfs_growfs /                   # XFS
  • pvcreate prepara el disco, vgextend lo suma al grupo y lvextend agranda el volumen.
  • El último paso agranda el sistema de archivos: resize2fs para ext4, xfs_growfs para XFS.
  • Todo corre con el servidor funcionando. Aun así, tomá un respaldo antes: es una operación sobre el disco.

Sin LVM

Si el disco creció desde el panel pero la partición sigue igual, hay que extender la partición y después el sistema de archivos:

growpart /dev/vda 1
resize2fs /dev/vda1

Discos de más de 2 TB

La tabla de particiones MBR no direcciona más de 2 TB: un disco de 4 TB particionado así muestra 2 y el resto queda inaccesible. La solución es GPT.

parted /dev/vdb
(parted) mklabel gpt
(parted) mkpart primary ext4 0% 100%
(parted) quit
mkfs.ext4 /dev/vdb1

Los artículos viejos resuelven esto con fdisk y CentOS 6; parted es la herramienta correcta y funciona igual en Debian, Ubuntu y AlmaLinux.

Montar de forma permanente

Un disco montado a mano se pierde en el próximo reinicio. Para que vuelva solo, va en /etc/fstab identificado por UUID y no por nombre de dispositivo, que puede cambiar de orden:

blkid /dev/vdb1
echo "UUID=el-uuid  /datos  ext4  defaults,nofail  0 2" >> /etc/fstab
mount -a

nofail evita que el servidor se quede sin arrancar si ese disco no está. Probá siempre con mount -a antes de reiniciar.

Unidades externas: NTFS y USB

En un servidor virtual esto casi no aplica —no hay puertos físicos— pero sí en un equipo propio alojado en housing. Para leer un disco con formato de Windows:

apt install -y ntfs-3g
mount -t ntfs-3g /dev/sdb1 /mnt/externo

Para formatear una unidad externa en un formato que lean todos los sistemas, exfat es hoy mejor opción que vfat, que no soporta archivos de más de 4 GB.

Preguntas frecuentes

Amplié el disco en el panel y el servidor sigue igual

El panel agranda el disco virtual; adentro hay que extender la partición y el sistema de archivos. Con LVM, lvextend y resize2fs; sin LVM, growpart y resize2fs.

¿Tengo que reiniciar?

Para extender, no. A veces sí para que el sistema detecte un disco recién agregado, aunque suele alcanzar con echo 1 > /sys/block/vdb/device/rescan.

¿Cómo sé si uso LVM?

Con lvs. Si devuelve volúmenes, es LVM; si no devuelve nada, son particiones comunes.

¿Puedo achicar un volumen?

Se puede, pero es la operación más riesgosa de todas y requiere desmontar. Casi siempre conviene crear un volumen nuevo del tamaño correcto y mover los datos.

¿Qué sistema de archivos conviene?

ext4 por compatibilidad y XFS para volúmenes grandes con muchos archivos. Los dos se pueden agrandar en caliente, que es lo que importa en un servidor.

Seguí leyendo