Gestión de almacenamiento: LVM José Domingo Muñoz Rafael Luengo Fundamentos de Hardware Febrero 2013 Fuente: Material elaborado por D. Manuel Fco. Domínguez en el módulo de Implantación de Sistemas Operativos (IES Rodrigo Caro)
1.- Introducción Qué espacio le asigno a cada partición? Qué puedo hacer si posteriormente me quedo sin espacio en /home? Si utilizamos un particionamiento tradicional, podemos emplear herramientas como gparted para redimensionar, pero la solución definitiva es utilizar LVM. 2 2
1.- Introducción Con LVM podemos redimensionar a placer los volúmenes lógicos una vez creados. Con LVM podemos añadir discos duros a nuestros grupos de volúmenes, con lo cual, podemos ir agrandando nuestros volúmenes manteniendo nuestro sistema de ficheros como si sólo tuviéramos un disco duro en el equipo 3 3
2.- Qué es LVM? LVM = Logical volume managent (Gestión de volúmenes lógicos) Es una forma más flexible de asignar espacio, que el particionamiento tradicional. Vamos a poder: Concatenar Dividir Combinar particiones en otras virtuales más grandes que los administradores pueden redimensionar o mover, potencialmente sin ni siquiera interrumpir su uso, e incluso en discos distintos. 4 4
2.- Qué es LVM? LVM = Logical volume managent (Gestión de volúmenes lógicos) LVM incluye muchas de las características que se esperan de un administrador de volúmenes que incluye: Redimensionado de grupos lógicos Redimensionado de volúmenes lógicos Instantáneas RAID0 de volúmenes lógicos LVM no implementa RAID1 o RAID5. 5 5
3.- Niveles de LVM LVM funciona a tres niveles: Volúmenes físicos (PV) Grupos de volumen (VG) Volúmenes lógicos (LV) Todo esto parece confuso a primera vista, pero vamos a explicar cada uno de estos términos y cómo se relacionan. 6 6
3.- Niveles de LVM Volúmenes físicos: Es el soporte final donde se guardaran los datos, y pueden ser varios discos o incluso particiones de un disco. Volúmenes de grupo: Es la agrupación de los volúmenes físicos en un volumen que permite ver todos los discos y particiones como uno solo dispositivo. Volúmenes lógicos: Son los volúmenes donde irán nuestros sistemas de archivos y por tanto los puntos de montaje (/, /home, swap). En este nivel es donde se hace el formateo del sistema de archivos a usar, y es donde los datos se distribuirán a nivel lógico, similar a las particiones que acostumbramos a usar. 7 7
3.- Niveles de LVM Ejemplo: 8 8
3.- Niveles de LVM Para poder usar LVM primero se debe asignar volúmenes físicos, luego asignar volúmenes de grupo y por último volúmenes lógicos. Los volúmenes físicos (PV) y los grupos de volúmenes (VG) se dividen en unidades llamadas chunks de datos, que también se conoce como PE (Physical extents). Además, un volumen lógico se divide también en LE (logical extents), cuyo tamaño es el mismo para todos los LV del VG. 9 9
3.- Niveles de LVM Ejercicio: 1.- Calcula el tamaño en MB de PE. 2.- Calcula el tamaño en MB de LE. 10 10
4.- Órdenes LVM Elimina volúmenes físicos del sistema 11 11
4.- Órdenes LVM Ejemplos: 12 12
4.- Órdenes LVM Ejemplos: 13 13
4.- Órdenes LVM Ejemplos: 14 14
4.- Órdenes LVM Ejemplos: 15 15
5.- Instantáneas o snapshots Supongamos que queremos hacer una copia de seguridad de un volumen lógico,por ejemplo /home en un disco duro externo. Tendríamos que desmontar /home. Hacer la copia de seguridad y volver a montarlo o bien montarlo en modo lectura mientras se está haciendo la copia. Se puede realizar una imagen de un volumen lógico sin necesidad de desmontarlo haciendo uso de las snapshots. Una snapshot es una instantánea (copia), en un momento dado, de un volumen lógico, de un tamaño determinado que permitirá hacer las copias sin parar el volumen ya que irá almacenando los cambios que se produzcan mientras se hace el backup. 16 16
5.- Instantáneas o snapshots Procedimiento: 1.- Tenemos un volumen lógico montado /dev/vg1/lvhome 2.- Realizamos una snapshot de 100MB de nombre copiahome Se guardará /dev/vg1/copiahome #lvcreate s size 100M n copiahome /dev/vg1/vhome Para realizar esta operación debemos tener suficiente espacio libre en el grupo de volúmenes en el que se encuentra el volumen lógico del que queremos hacer la copia. Es decir, /dev/vg1/lvhome debe tener espacio libre. 3.- Montamos el volumen snapshot en /mnt/copias (por ejemplo). 4.- Copiamos la información a un disco externo. 5.- Se desmonta el volumen snapshot 6.- Se elimina el volumen lógico copiahome 17 17
5.- Instantáneas o snapshots Ejemplo: 18 18
5.- Instantáneas o snapshots Ejemplo: 19 19
6.- Ejemplo práctico. Práctico -1: Pasos previos:.- Actualmente tenemos un único disco duro con el sistema operativo..- Añadimos a nuestra máquina virtual dos discos duros más:.- debian_disco_duro_2 De 500MB.- debian_disco_duro_3 De 500MB.- Iniciamos la máquina virtual y con la ayuda de fdisk, particionamos los nuevos discos, creando una única partición primaria que ocupe todo el espacio, en cada uno de ellos. 20 20
6.- Ejemplo práctico. Práctico -1: Pasos previos: 21 21
6.- Ejemplo práctico. Práctico -1: Pasos previos: Instalamos lvm2 para gestionar los volúmenes lógicos: #aptitude install lvm2 22 22
6.- Ejemplo práctico. Práctico -1: 1.- Volúmenes físicos: /dev/sdb1 y /dev/sdc1 Vamos a convertir en volúmenes físicos los nuevos discos duros. 23 23
6.- Ejemplo práctico. Práctico -1: 2.- Grupo de volúmenes: vg1 Vamos a crear un grupo de volúmenes con los volúmenes físicos: /dev/sdb1 y /dev/sdc1 24 24
6.- Ejemplo práctico. Práctico -1: 3.- Volúmenes lógico:lv1 Tenemos un grupo de volumen, vg1, con un espacio alrededor de 1000MB. Vamos a crear un volumen lógico de 600MB Nos ha quedado libre unos 400MB (384) 25 25
6.- Ejemplo práctico. Práctico -1: 4.- Formatear el volumen lógico: lv1 26 26
6.- Ejemplo práctico. Práctico -1: 5.- Montamos el volumen lógico: lv1 27 27
6.- Ejemplo práctico. Práctico -1: 6.- Montaje permanente: /etc/fstab 28 28
6.- Ejemplo práctico. Práctico -1: 6.- Montaje permanente: /etc/fstab 29 29
6.- Ejemplo práctico. Práctico -1: 7.- Comprobaciones: lvmdiskscan, pvs, vgs, lvs y fdisk -l * whole completo 30 30
6.- Ejemplo práctico. Práctico -1: 7.- Comprobaciones: lvmdiskscan, pvs, vgs, lvs y fdisk -l 31 31
6.- Ejemplo práctico. Práctico -1: 8.- Snapshots Vamos a realizar una instantánea del volumen lógico lv1. Para ello debemos disponer de espacio en el grupo vg1 Vamos a escribir algo en el volumen lógico lv1: 32 32
6.- Ejemplo práctico. Práctico -1: 8.- Snapshots Creación de la instantánea: -L 100M El tamaño de la instantánea. Este espacio se cogerá del grupo de volúmenes -s snapshot -n copialv1 Nombre de la instantánea. /dev/vg1/lv1 Volumen lógico que se va a guardar. Antes Después 33 33
6.- Ejemplo práctico. Práctico -1: 8.- Snapshots Creación de la instantánea: Dónde está copialv1? 34 34
6.- Ejemplo práctico. Práctico -1: 8.- Snapshots: Montamos copialv1 en /mnt/snapshots Conclusiones: 1.- Hemos realizado una imagen del volumen lv-1 sin desmontarlo. 2.- Ahora basta con hacer una copia del contenido de /mnt/snapshots en un pendrive. 35 35
6.- Ejemplo práctico. Práctico -1: 9.- Deshacer LVM Para practicar con las herramientas LVM, vamos a deshacer la estructura de volúmenes lógicos, grupo de volúmenes y volúmenes físicos. 1.- Quitamos la línea del fstab. 2.- Desmontamos los volúmenes lógicos. 3.- Borramos los puntos de montaje: /mnt/volumen1 y /mnt/snapshots 4.- Eliminamos los volúmenes lógicos: vg1-copialv1 y vg1-lv1 36 36
6.- Ejemplo práctico. Práctico -1: 9.- Deshacer LVM 5.- Eliminamos el grupo de volúmenes: vg1 6.- Eliminamos los volúmenes físicos /dev/sdb1 y /dev/sdc1 37 37
6.- Ejemplo práctico. Práctico -1: 9.- Deshacer LVM Comprobación final: 38 38