Cómo extender un volumen LVM en Linux
En este artículo te voy a mostrar cómo extender un volumen LVM existente en Linux.
Este artículo es de esos que los escribo para tenerlo como referencia para mi mismo, ya que esto de agrandar los discos no es algo que haga todos los días y siempre de algo me estoy olvidando, así que como ayuda memoria, este artículo.
Vamos por parte, diría Jack. Así que vamos a ejecutar lo siguiente para ver cómo están montados nuestros discos.
df -h
En este caso, aparece algo así:
Filesystem Size Used Avail Use% Mounted on
udev 955M 0 955M 0% /dev
tmpfs 198M 1.3M 196M 1% /run
/dev/sda2 20G 4.6G 14G 25% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
/dev/loop0 94M 94M 0 100% /snap/core/8935
/dev/loop1 90M 90M 0 100% /snap/core/8268
/dev/mapper/a-disco 969M 2.5M 900M 1% /mnt/disco2
tmpfs 198M 0 198M 0% /run/user/1000
El disco que queremos agrandar es este:
/dev/mapper/a-disco 969M 2.5M 900M 1% /mnt/disco2
El mismo tiene un tamaño de 1gb y esta montado en el directorio /mnt/disco2, en este caso, lo voy a llevar al doble, para que quede un volumen LVM de 2gb.
Para eso, primero, debo agregar el disco a la máquina virtual y luego, tengo que ver la identificación que el sistema le dió a ese disco y eso lo hago con el siguiente comando.
fdisk -l
Deberíamos ver algo como esto:
Disk /dev/loop0: 89.1 MiB, 93417472 bytes, 182456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 93.8 MiB, 98336768 bytes, 192064 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EAB3EDBC-7716-4B7B-9328-3D238759C495
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 41940991 41936896 20G Linux filesystem
Disk /dev/sdb: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xeb92df94
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 2097151 2095104 1023M 8e Linux LVM
Disk /dev/sdc: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/a-disco: 1000 MiB, 1048576000 bytes, 2048000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Fijense, que el último es nuestro LVM actual y el ante último de la lista, es el nuevo disco que acabamos de instalar el: "/dev/sdc".
Disk /dev/sdc: 1 GiB, 1073741824 bytes, 2097152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Vamos a particionarlo y formatearlo para extender la LVM actual, que se llama "a". Si queremos saber más detalles del "Volume Group" que vamos a extender con este nuevo disco. Tipeamos lo siguiente:
vgdisplay
Para este caso, solo hay un "Volume Group" así que se ve así:
--- Volume group ---
VG Name a
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 1020.00 MiB
PE Size 4.00 MiB
Total PE 255
Alloc PE / Size 250 / 1000.00 MiB
Free PE / Size 5 / 20.00 MiB
VG UUID X18nn3-W3U7-TjLc-iogG-Fo4d-fAnH-EIw4oo
Ahora bien, ya sabemos que la unidad nueva que queremos crear una partición se llama /dev/sdc, así que vamos a eso.
Lo primero que debemos hacer es ejecutar:
fdisk /dev/sdc
Vamos a comenzar a particionar nuestro disco, tengan en cuenta la sección donde dice "Created a new partition 1 of type 'linux' and of size 1023MiB, ya que a partir de ahí, debemos tipear "t" y luego elegimos el tipo de partición. "8e" es el código para LVM.
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x26b1d169.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-2097151, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151):
Created a new partition 1 of type 'Linux' and of size 1023 MiB.
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'.
Si estamos seguros que quedó parecido a esto de aca arriba, apretamos "w" quedando mas o menos así:
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Lo siguiente en la lista es crear un "Physical Volume", así que vamos a eso:
pvcreate /dev/sdc1
Debería devolver esto:
Physical volume "/dev/sdc1" successfully created.
Ahora vamos a extender el "Volume Group" llamado "a", para eso, vamos a tipear lo siguiente:
vgextend a /dev/sdc1
La devolución de la terminal debe ser así:
Volume group "a" successfully extended
y ahora lo clave, vamos a extender el "Logical Volume" "disco" para que use todo lo disponible, que en este caso es 1gb más del disco que agregamos a la maquina virtual.
lvextend -L +1g /dev/mapper/a-disco
Devuelve esto:
Size of logical volume a/disco changed from 1000.00 MiB (250 extents) to <1.98 GiB (506 extents).
Logical volume a/disco successfully resized.
Por último, vamos a, efectivamente agrandar el disco, para que lo use todo.
resize2fs /dev/mapper/a-disco
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/mapper/a-disco is mounted on /mnt/disco2; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/a-disco is now 518144 (4k) blocks long.
Y con esto, ya estaríamos, vamos a ejecutar "df -h" y vamos a ver que nuestro "a-disco" que está montado en el "/mnt/disco2" ahora es de 2gb.
Filesystem Size Used Avail Use% Mounted on
udev 955M 0 955M 0% /dev
tmpfs 198M 1.4M 196M 1% /run
/dev/sda2 20G 4.6G 14G 25% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
/dev/loop0 90M 90M 0 100% /snap/core/8268
/dev/loop1 94M 94M 0 100% /snap/core/8935
/dev/mapper/a-disco 2.0G 3.0M 1.9G 1% /mnt/disco2
tmpfs 198M 0 198M 0% /run/user/1000
Para ir cerrando
Espero que este tutorial, que lo escribí como ayuda memoria mio, te sirva para entender cómo extender un volumen LVM en Linux. Cabe aclarar, que yo ejecute este laboratorio en Ubuntu Server pero es el mismo proceso en el resto de los sistemas operativos Linux.
¿Anduvo, no anduvo? dejame tu comentario.