Actualmente tengo una maquina con un Oracle al que se le termina el espacio de disco. Tiene un disco de 68Gb en RAID1 montado por LVM (el /dev/sda). Hemos montado otro disco de 68Gb en RAID1 (el /dev/sdb) con la idea de ampliar el espacio del volum-group formado en la maquina.
Miramos primero que se ha reconocido el segundo disco:
root@virtuozo:~# ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 2009-12-11 11:50 /dev/sda brw-rw---- 1 root disk 8, 1 2009-12-11 11:50 /dev/sda1 brw-rw---- 1 root disk 8, 2 2009-12-11 11:50 /dev/sda2 brw-rw---- 1 root disk 8, 5 2009-12-11 11:50 /dev/sda5 brw-rw---- 1 root disk 8, 16 2009-12-12 16:39 /dev/sdb
Miramos cómo está montado el LVM en esta máquina. Miramos los Physical Volumen o los discos físicos que forman mi LVM:
root@virtuozo:~# pvscan
PV /dev/sda5 VG virtuozo.barcelona lvm2 [68.00 GB / 0 free]
Total: 1 [68.00 GB] / in use: 1 [68.00 GB] / in no VG: 0 [0 ]
Vemos que existe un volum-group llamado “virtuozo.barcelona” que está compuesto de la partición física /dev/sda5 de 68Gb.
Vemos ahora como está particionado este volum-group en diferentes logical-volum:
root@virtuozo:~# lvscan
ACTIVE '/dev/virtuozo.barcelona/root' [65.18 GB] inherit
ACTIVE '/dev/virtuozo.barcelona/swap_1' [2.82 GB] inherit
Está particionado en dos. La primera en “root” de 65Gb y la segunda es “swap_1” de 2Gb.
Ahora que tenemos esto presente, la idea de añadir un nuevo disco (el /dev/sdb) es aumentar el tamaño del logical-volum “root”, pasando de 65Gb a 133Gb aproximadamente.
Vamos pues. Lo primero que haremos es crear una única partición en /dev/sdb de system id “8e” (tipo LVM).
root@virtuozo:~# fdisk /dev/sdb The number of cylinders for this disk is set to 8908. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8908, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-8908, default 8908): Using default value 8908 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Una vez creada la partición (ver ls –l /dev/sd*), la formateamos. En mi caso es formato ext3:
root@virtuozo:~# mkfs -t ext3 -c /dev/sdb1
Ahora ya podemos añadir nuestro nuevo disco al volum-group:
root@virtuozo:~# pvcreate /dev/sdb1 root@virtuozo:~# vgextend virtuozo.barcelona /dev/sdb1 root@virtuozo:~# pvdisplay --- Physical volume --- PV Name /dev/sda5 VG Name virtuozo.barcelona PV Size 68.00 GB / not usable 1.27 MB Allocatable yes (but full) PE Size (KByte) 4096 Total PE 17408 Free PE 0 Allocated PE 17408 PV UUID gextNx-qoAF-aNn9-1ARg-72bY-oQeY-sHaOQ7 --- Physical volume --- PV Name /dev/sdb1 VG Name virtuozo.barcelona PV Size 68.24 GB / not usable 454.00 KB Allocatable yes PE Size (KByte) 4096 Total PE 17469 Free PE 17469 Allocated PE 0 PV UUID dCibq8-B4TY-adnR-HR6j-iLv6-f15H-pBknpX
Para finalizar aumentamos el tamaño del logical-volum llamado “root”:
root@virtuozo:~# lvextend -l+17469 /dev/virtuozo.barcelona/root Extending logical volume root to 133.42 GB Logical volume root successfully resized root@virtuozo:~# lvscan ACTIVE '/dev/virtuozo.barcelona/root' [133.42 GB] inherit ACTIVE '/dev/virtuozo.barcelona/swap_1' [2.82 GB] inherit # resize2fs /dev/virtuozo.barcelona/root Filesystem Size Used Avail Use% Mounted on /dev/mapper/virtuozo.barcelona-root 133G 2.8G 123G 3% / varrun 1008M 84K 1008M 1% /var/run varlock 1008M 0 1008M 0% /var/lock udev 1008M 52K 1008M 1% /dev devshm 1008M 0 1008M 0% /dev/shm /dev/sda1 236M 26M 199M 12% /boot
Observar como utilizamos el parámetro +17469 para aumentar el espacio con los “Free PE” (Physical Extended) del nuevo disco que hemos añadido. También podríamos utilizar algo como “lvextend -L+68G /dev/virtuozo.barcelona/root”.
Esta es una tabla de todos los comandos que se pueden utilizar para LVM:
-------------------- Comandos de volúmenes físicos -------------------- pvchange | Cambia los atributos de un volumen físico pvcreate | Crea un volumen físico pvdata | Muestra información de depuración sobre un volumen físico pvdisplay | Muestra información sobre un volumen físico pvmove | Mueve extensiones físicas de un volumen físico a otro. pvscan | Localiza y enumera todos los volúmenes físicos -------------------- Comandos de grupos volumen -------------------- vgcfgbackup | Hace una copia del área del descriptor de grupo volumen vgcfgrestore | Recupera el área del descriptor de grupo volumen al disco vgchange | Cambia los atributos de un grupo volumen vgck | Comprueba la consistencia del área del descriptor de grupo volumen vgcreate | Crea un grupo volumen a partir de volúmenes físicos vgdisplay | Muestra los atributos de un grupo volumen vgexport | Exporta un grupo volumen del sistema vgextend | Añade volúmenes físicos a un grupo volumen vgimport | Importa un grupo volumen al sistema vgmerge | Combina dos grupos volumen vgmknodes | Combina un directorio y los archivos especiales de un grupo volumen vgreduce | Elimina volúmenes físicos de un grupo volumen vgremove | Elimina un grupo volumen vgrename | Renombra un grupo volumen vgscan | Localiza y enumera todos los grupos volumen del sistema vgsplit | Divide un grupo volumen -------------------- Comandos de volúmenes lógicos -------------------- lvchange | Cambia los atributos de un volumen lógico lvcreate | Crea un volumen lógico lvdisplay | Muestra los atributos de un volumen lógico lvextend | Incrementa el tamaño de un volumen lógico lvreduce | Reduce el tamaño de un volumen lógico lvremove | Elimina un volumen lógico lvrename | Renombra un volumen lógico lvscan | Localiza y enumera todos los volúmenes lógicos, creando /etc/lvmtab y /etc/lvmtab.d/* -------------------- Comandos del Administrador de Volúmenes Lógicos (LVM) -------------------- lvmchange | Cambia los atributos del sistema LVM lvmdiskscan | Localiza y enumera todos los discos disponibles, los dispositivos múltiples y las particiones lvmsadc | Recoge información sobre la actividad de LVM lvmsar | Muestra información sobre la actividad de LVM
6 comentarios:
Hola Amperis, has ampliado la particion logica pero falta ampliar el filesystem con resize2fs
Hola buenas,
Entiendo que para realizar estos pasos, debes de tener configurado lvm en la particion original, sino tocaria reparticionar y reinstalar.
Mi pregunta es ¿recomendarias siempre instalar el sistema operativo en una particion LVM?
Saludos
Correcto faltaba el resize2fs para expandir el filesystem.
Respecto a instalar el SO en LVM supongo que eso depende mucho de tú entorno.
Que pasa si tienes un sistema que genera muchos /tmp o muchos /var/log... estaría bien poder ir dimensionando con LVM segun tus necesidades.
Otra cosa es poder instalar el SO en un particion tradicional y /var/log, /home, etc sobre LVM.
Otra cosa es que LVM complica la gestión y puede ser que tú entorno no lo necesite.
Por ejemplo un servidor Web (hosting) o un Samba pondria un LVM, pero para un servir de Nagios que solo monitoriza pues no pondria LVM.
Este paso no es necesario:
"Una vez creada la partición (ver ls –l /dev/sd*), la formateamos. En mi caso es formato ext3:
root@virtuozo:~# mkfs -t ext3 -c /dev/sdb1"
Si añadimos un disco nuevo en un entorno virtual y no queremos reiniciar el servidor, podemos ejecutar el script siguiente para que el SO vea el disco nuevo:
#!/bin/bash
HOSTID=`ls /sys/class/scsi_host`
echo $HOSTID
echo "- - -" > /sys/class/scsi_host/$HOSTID/scan
hacer un comentario en esta entrada