Logical Volumen Manager

·

8 min read

Logical Volumen Manager

Tareas a realizar

-Crear el volumen físico

-Crear grupo de volúmenes (dos discos de 2G y uno de 4G)

-Crear dos volumenes lógicos de 3G cada uno

-Crear sistema de archivos en volumen lógico

-Agregar el nuevo volumen a /etc/fstab

-Montar los volúmenes lógicos en los directorios correspondientes

-Comprobar su integridad

-El sistema me informa de un posible fallo.

-Extiendo el volumen físico

-Extiendo el grupo de volúmenes

-Extiendo volúmenes lógicos

-Compruebo integridad

Compruebo que no estoy usando LVM

Mediante los comando pvs y pvdisplay voy a comprobar que no tengo creado anteriormente Logical Volumen Manager. (en la salida de este comando no vere nada si está bien)

$sudo pvs 
$sudo pvdisplay

Añado discos

En Proxmox,en el apartado de Hardware, he añadido 3 discos. Dos de ellos de 2G y un tercero de 4G.

Creación de volúmenes físicos

A continuación voy a crear volumenes físicos, sobre los tres discos que acabo de añadir.

$sudo pvcreate /dev/sdb
$sudo pvcreate /dev/sdc
$sudo pvcreate /dev/sdd

A continuación procedo a comprobar la creación de los volumenes físicos.

$sudo pvs

Teniendo los volúmenes creados, me dispongo a crear el grupo de volumenes llamado vg_datos10

$sudo vgcreate vg_datos10 /dev/sdb /dev/sdc /dev/sdd

Me dispongo a comprobar con el comando pvdisplay, veré mucha información de los volúmenes . Veo que los discos creados estan agrupados en el grupo de volúmenes vg_datos10

$sudo pvdisplay

Creación de volúmenes lógicos

Creo dos volúmenes lógicos llamados lv_docs10 y lv_imagenes10 de 3GB cada uno.

$sudo lvcreate -L 3G vg_datos10 -n lv_docs10
$sudo lvcreate -L 3G vg_datos10 -n lv_imagenes10

Procedo a comprobar que se han creado con éxito:

$sudo lvs

Vuelvo a ejecutar el comano pvdisplay y compruebo que apesar de no haber guardado nada aun en los volúmenes, ya tengo el disco sdb sin espacio libre y en sdc y sdd el espacio libre se ha reducido considerablemente.

$sudo pvdisplay

Creación del sistema de árchivos

Procedo a crear el sistema de archivos que tendrán los volúmenes lógicos.

$sudo mkfs -t ext4 /dev/vg_datos10/lv_docs10
$sudo mkfs -t ext4 /dev/vg_datos10/lv_imagenes10

Compruebo como está quedando el grupo de volúmenes, el volumen lógico y los volúmenes físicos.

$sudo vgs
$sudo lvs
$sudo pvs

Veo que al ir creandose los volúmenes físicos han cogido el espacio disponible, primero el del primer disco, y cuando no tenian más han pasado a coger espacio del segundo y del tercero. Esto es lógico ya que los volúmenes físicos tenian los dos primeros solo 2G cada uno y al crear los grupos de volúmenes que ya eran de 3G cada uno. Cómo me reporta el comando pvs, veo el espacio libre que les queda a los discos. Empieza a ocupar los discos dejando, el primer disco lleno, como se puede ver en la imagen el sdb tiene 0 espacio libre y sigue cogiendo el del siguiente disco en este caso el sdc al cual le quedan 1016 m de espacio disponible. El tercer disco que en tenia 4G sin problemas ha almacenado el contenido del volúmen de 3g dejando 1020m de espacio libre.

Montaje de los volúmenes lógicos

Antes crearé los directorios correspondientes donde quiero montar los volumenes, pensando que voy a guardar imagnes y documentos, crearé dos directorios separados. En mi caso llamaré a los directorios documentos10 y fotos10

cd /mnt
mkdir documentos10
mkdir fotos10

Procedo a montar los volúmenes lógicos en sus correspondientes directorios:

$sudo mount /dev/vg_datos10/lv_docs10 /mnt/documentos10/
$sudo mount /dev/vg_datos10/lv_docs10 /mnt/fotos10/

Editar /etc/fstab

Lo siguiente será modificar el archivo de configuracion que se encuentra en /etc/fstab añadiré las líneas correspondientes a los directorios que acabo de montar en el paso anterior.

$sudo nano /etc/fstab

Ahora procedo a montar todo.

$sudo mount -a

Tras reiniciar el equipo, cambio los permisos en los directorios recientemente creados.

$sudo chmod 777 /mnt/documentos10
$sudo chmod 777 /mnt/fotos10

Crear archivos dentro de los directorios

Creo 5 archivos que ocupen 2,5GB en total en /mnt/documentos10

$dd if=/dev/random of=documento1 count=500k
$dd if=/dev/random of=documento2 count=500k
$dd if=/dev/random of=documento3 count=500k
$dd if=/dev/random of=documento4 count=500k
$dd if=/dev/random of=documento5 count=500k

lo mismo en el directorio /fotos10 pero con el tamaño 733K, en total 2,2GB:

$dd if=/dev/random of=imagen1 count=733K
$dd if=/dev/random of=imagen2 count=733K
$dd if=/dev/random of=imagen3 count=733K

Vuelvo a comprobar el espacio libre que queda ahora con el comando pvdisplay que me muetra información más detallada. Veo ha cambiado el espacio libre del disco sdc ahora solo tiene 254 megabytes de espacio libre, veo que tengo mucho menos espacio libre.

$sudo pvdisplay

Ahora que los nuevos archivos esta recien creados voy ha hacerles un hash. Y voy a guardar los hases en un directorio distinto, en /var/backups/hashes, por si tengo algun fallo en este /mnt/documentos10 o en /mnt/fotos10 poder estar segura de que estos hashes iniciales no se hayan visto afectados.

Estando en en /var/backups/hashes doy todos los permisos en los ficheros donde guardare los hashses:

$sudo chmod 777 hashdocu
$sudo chmod 777 hashimg

Creo los hashes

sudo md5sum documento1 >> /var/backups/hashes/hashdocu
sudo md5sum documento2 >> /var/backups/hashes/hashdocu
sudo md5sum documento3 >> /var/backups/hashes/hashdocu
sudo md5sum documento4 >> /var/backups/hashes/hashdocu
sudo md5sum documento5 >> /var/backups/hashes/hashdocu

veo los hashes reciencreados

Veo que se han creado con éxito, pero este sistema si son pocos documentos me sirve, pero si son muchos sería muy tedioso, por lo que me dispongo a crear un script para automatizar este proceso.

De esta manera cada vez que tenga documentos nuevos, solo tendré que ejecutar este script y generar los hashes y así me lo guardará en el directorio /var/backups/hashes/hashdocu y las imagenes en var/backups/hashes/hashimg

$sudo ./hashdocu.sh
$cd ../../var/backups/hashes/
$nano hashdocu

Hago exactamente lo mismo en el otro fichero fotos10.

Aumento el volumen lógico lv_docs10

El volumen lógico lv_docs10 se ha quedado pequeño y tenemos que aumentar su tamaño en 0.5GB Primero comprobamos su tamaño:

$sudo lvdisplay /dev/vg_datos10/lv_docs10

Simplemente debemos ejecutar el siguiente comando:

$sudo lvextend -L +500M /dev/vg_datos10/lv_docs10

Veo que se ha extendido con éxito.

Vuelvo a comprobar el espacio disponible después de haber aumentado:

$sudo pvdisplay /dev/vg_datos10/lv_docs10

Veo que antes tenia un tamaño de 3,00 GB y ahora de 3,39 GB Compruebo que no se ha visto comprometida la integridad de los datos volviendo a generar hashes

$sudo ./hashdocu.sh

Me muevo al directorio donde tengo guardados los hashes de documentos10, que recordemos que los tenia en otro directorio diferente.

$ md5sum hashdocu | md5sum --check

he recibido un ok, por lo tanto esto me asegura de que no han sufrido cambios y son los mismo que creé inicialmente.

Aumento el volumen lógico lv_imagenes10

El volumen lógico lv_imagenes10 se ha quedado pequeño y tenemos que aumentar su tamaño en 0.5GB Primero comprobamos su tamaño:

$sudo lvdisplay /dev/vg_datos10/lv_imagenes10

veo que tengo 3GB, voy a aumentar el tamaño con el comando:

$sudo lvextend -L +500M /dev/vg_datos10/lv_imagenes10

el comando de ha ejecutado con éxito.Voy a comprobar el espacio disponible ahora

$sudo lvdisplay /dev/vg_datos10/lv_imagenes10

Veo que tengo 3,49 GB antes tenía solo 3GB

Voy a comprobar que los ficheron no han sido dañados depues de haber realizado estas operaciones. Ejecuto el script para que me genre otra vez los hashes de imagenes

md5sum hashimg | md5sum --check

Perfecto he recibido un ok, veo que aumentar de tamaño el volumen lógico la integridad de los datos sigue inalterada.

El sistema nos informa de posible fallo en un disco, añado otro

El sistema nos informa que el disco sdc puede fallar. Asi que para evitar problemas debemos realizar varias operaciones. Primero ampliar el hardware, despues extender el volumen físico e integrarlo en el volumen lógico. Como estoy usando proxmox, para añadir un nuevo disco duro, simplemente ire a la seccion de hardware y le daré a la opción disco duro con un tamaño de 4GB:

Creo un nuevo volumen físico que llamaré sde

$sudo pvcreate /dev/sde

Veo que me ha creado el dispositivo

$sudo pvs

veo que he creado el dispositivo pero no está aún integrado el el grupo de volumenes.

Lo que tendré que hacer será extender el grupo de volumen datos10

$sudo vgextend vg_datos10 /dev/sde

Extiendo el volumen lógico:

$sudo lvextend -L +100M /dev/vg_datos10/lv_docs10

Compruebo que ya lo tengo dentro del grupo de volumenes:

$sudo pvs

Compruebo el espacio disponible solo en el dispositivo que acabo de añadir al grupo de volumenes:

$sudo pvdisplay /dev/sde

Muevo la informacion del disco dañado /dev/sdc , el sistema de voluménes lo reparte entre los discos que lo forman.

$sudo pvmove /dev/sdc

Por ultimo reduzco del grupo de volúmenes el dispositivo sdc

$sudo vgreduce vg_datos10 /dev/sdc

$ sudo vgreduce vg_datos10 /dev/sdc

Compruebo con sudo pvdisplay y veo que se ha movido la información al nuevo dispositivo y ya no tengo el disco sdc.

Comprobaciones finales

Por último veo cómo me ha quedado con los comandos de comprobacion

$sudo pvs
$sudo lvs
$sudo pvdisplay -v -m

Vuelvo a comprobar la integridad de los datos, para esto ejecuto el script creado y genero hashes de documentos10

$sudo ./hashdocu.sh

Compruebo su integridad con md5sum

$md5sum hasdocu | md5sum --check

Recibo un ok

Hago lo mismo con las imágenes, vuelvo a generar los hashes de fotos10 y compruebo que sean los mismo que en /var/backup/hashes/hashimg

$sudo ./hashimg.sh
$md5sum hasdocu | md5sum --check

También recibo un ok.