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.