En un capítulo anterior expliqué cómo meter en casa un buen puñado de teras en forma de caja de discos y lo hice gradualmente, es decir, comencé con un par de discos y fui añadiendo el otro par a lo largo de algo más de un año.
Esta entrada es para recordar cómo se añaden nuevos discos porque cuando llegó el momento de meter el cuarto, no recordaba cómo lo había hecho con el tercero.
el punto de partida#
En la salida del comando pvs se puede ver que la caja cuenta con tres discos de 10.91Tb cada uno y en la de vgs que el tamaño total de disco disponible es de 32,74Tb.
# con tres discos
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sdd yotta_vg lvm2 a-- 10,91t 5,91t
/dev/sde yotta_vg lvm2 a-- 10,91t <936,00g
/dev/sdf yotta_vg lvm2 a-- 10,91t 10,91t
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
yotta_vg 3 2 0 wz--n- 32,74t 17,74t
en el servidor, lo desmontamos todo#
El primer paso es detener y desmontar todos los procesos que estén usando la caja de discos y la desmontamos con seguridad:
docker container stop plex
sudo systemctl stop smbd.service
sudo systemctl stop nmbd.service
sudo umount /media/media
instalación del nuevo disco#
A continuación, lo obvio, detener la caja e instalar el nuevo disco en su peana correspondiente. Es un proceso manual, así que no hay comandos aquí :D.

configuración del nuevo disco#
Arrancamos la caja de nuevo y hacemos dos sencillos pasos:
- asignación del sistema de ficheros
lvmal nuevo disco,/dev/sdg, para que lo reconozca y utilice LVM. De esta forma, disco nuevo formará parte de los discos que podrán ser usados por los grupos de volúmenes. En la salida depvsya se ve el cuarto disco con el sistema de ficheroslvm2.
$ sudo pvcreate /dev/sdg
Physical volume "/dev/sdg" successfully created.
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sdd yotta_vg lvm2 a-- 10,91t 5,91t
/dev/sde yotta_vg lvm2 a-- 10,91t <936,00g
/dev/sdf yotta_vg lvm2 a-- 10,91t 10,91t
/dev/sdg lvm2 --- 10,91t 10,91t
- incluir el nuevo disco,
/dev/sdg, en el grupo de volúmenes correspondiente. Se podría asignar a cualquier grupo (media, backup, computación, etc…) pero, como sólo tengo uno, la elección es sencilla. En la salida del comandovgsya se ve que los volúmenes físicos (#PV) son cuatro, y el espacio en disco disponible ha subido de 32,74Tb a 43,66Tb, mientras que el espacio ocupado se mantiene.
# añado el disco al phisical group, extendiendolo
$ sudo vgextend yotta_vg /dev/sdg
Volume group "yotta_vg" successfully extended
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
yotta_vg 4 2 0 wz--n- <43,66t <28,66t
- ejecutamos
pvspara comprobar que, efectivamente, los cuatro discos ya están disponibles para ser usados.
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sdd yotta_vg lvm2 a-- 10,91t 5,91t
/dev/sde yotta_vg lvm2 a-- 10,91t <936,00g
/dev/sdf yotta_vg lvm2 a-- 10,91t 10,91t
/dev/sdg yotta_vg lvm2 a-- 10,91t 10,91t
+5Tb#
En algún momento usaré todos esos teras ociosos y una forma de darles uso es aumentar el tamaño de una partición. En este caso, voy a aumentar en 5 terabytes la partición media de la caja de discos.
Los pasos son los de siempre:
- extender el volumen lógico (no tiene nada que ver con el físico) con
lvextend - redimensionar la partición, usando
resize2fs(paraext4) para que el cambio se aplique
En comando sería algo así:
# ampliando el volumen en +5Tb
$ sudo lvextend -L +5T /dev/yotta_vg/vol_media
Size of logical volume yotta_vg/vol_media changed from 10,00 TiB (2621440 extents) to 15,00 TiB (3932160 extents).
Logical volume yotta_vg/vol_media successfully resized.
# redimensionando el sistema de ficheros
$ sudo resize2fs /dev/yotta_vg/vol_media
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/yotta_vg/vol_media is mounted on /media/media; on-line resizing required
old_desc_blocks = 1280, new_desc_blocks = 1920
The filesystem on /dev/yotta_vg/vol_media is now 4026531840 (4k) blocks long.
# comprobando el tamaño
$ df -h /media/media/
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/mapper/yotta_vg-vol_media 15T 7,8T 6,5T 55% /media/media
Esta es la salida de lvs antes y después del cambio:
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol_backup yotta_vg -wi-a----- 5,00t
vol_media yotta_vg -wi-ao---- 10,00t
(...)
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol_backup yotta_vg -wi-a----- 5,00t
vol_media yotta_vg -wi-ao---- 15,00t
