Cómo crear un espejo Lvm en Linux
En el mundo de la informática, el almacenamiento es el factor más importante. Si se pierden datos, entonces todo se pierde para la organización o empresa. Inicialmente, los datos se almacenan en discos normales, no tiene la flexibilidad para administrar los datos y es muy complicado y desastroso para la gestión de la recuperación. Para lograr la flexibilidad y el objetivo de la gestión de recuperación ante desastres, se introduce RAID. Con RAID, se puede mantener la redundancia, pero aún no tiene la flexibilidad para administrar el sistema de archivos y el almacenamiento. El Administrador de volumen lógico (LVM) proporciona una vista de nivel superior del almacenamiento en disco. LVM se asocia tradicionalmente con una instalación grande que contiene muchos discos e incluso se usa mucho en un entorno pequeño.
LVM tiene muchas características, como cambiar el tamaño de los grupos de volúmenes en línea absorbiendo nuevos volúmenes físicos (PV) o eliminando PV existentes y cambiando el tamaño de los volúmenes lógicos (LV) en línea agregando o quitando extensiones físicas al LV existente. Con LVM puede crear instantáneas de solo lectura y de lectura y escritura de LV. Es posible dividir o duplicar todo o partes de LV en múltiples PV, similar a RAID 0 o RAID 1. Es posible mover LV en línea entre PV. El LVM también funcionará en un clúster de almacenamiento compartido. Mostraremos los pasos para crear la duplicación de LVM.
1) Crear partición
Para crear un espejo LVM, debe asegurarse de tener espacio libre. En nuestro caso, crearemos dos particiones usando el comando fdisk (puede usar una partición o todo el disco). Antes de crear la partición, asegúrese de saber cuántos cilindros se han utilizado y cuántos están libres.
Comprobando el espacio libre para crear una partición.
# fdisk -l Disk /dev/sdf: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdf1 * 1 765 6144831 83 Linux /dev/sdf2 766 892 1020127+ 82 Linux swap / Solaris
El comando anterior muestra que los cilindros totales son 1305 y los cilindros usados son 892. Significa que aún tiene cilindros libres, por lo tanto, podemos crear una partición.
Creando dos nuevas particiones usando fdisk.
# fdisk /dev/sdf Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): First sector (391168-20971519, default 391168): Using default value 391168 Last sector, +sectors or +size{K,M,G} (391168-20971519, default 20971519): +100MB Partition 3 of type Linux and of size 95 MiB is set Command (m for help): t Partition number (1-3, default 3): Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): p Selected partition 4 First sector (585728-20971519, default 585728): Using default value 585728 Last sector, +sectors or +size{K,M,G} (585728-20971519, default 20971519): +100MB Partition 4 of type Linux and of size 95 MiB is set Command (m for help): t Partition number (1-4, default 4): Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): p Disk /dev/sdf: 10.7 GB, 10737418240 bytes, 20971520 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 label type: dos Disk identifier: 0xabe92155 Device Boot Start End Blocks Id System /dev/sdf1 * 1 765 6144831 83 Linux /dev/sdf2 766 892 1020127+ 82 Linux swap/Solaris /dev/sdf3 391168 585727 97280 8e Linux LVM /dev/sdf4 585728 780287 97280 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Asegúrese de que el ID de la partición debe ser 8e al crear particiones.
2) Crea volumen físico
Ahora que tenemos particiones libres, necesitamos crear un volumen físico con las particiones anteriores.
Crea volumen físico
# pvcreate /dev/sdf[3,4] Physical volume "/dev/sdf3" successfully created Physical volume "/dev/sdf4" successfully created
El comando anterior inicializará la partición como partición LVM. Aquí LVM asignará PV y UUID solo a la partición.
3) Crear grupo de volumen
Ahora que hemos creado nuestro volumen físico, necesitamos crear un grupo de volúmenes. Si ya tiene un VG basado en dos o más discos / particiones con espacio libre, no necesita crear un nuevo grupo de volúmenes
Crear grupo de volumen
# vgcreate datavg /dev/sdf[3,4] Volume group "datavg" successfully created
El comando anterior creará grupos de volúmenes como datavg. LVM crea el área de descriptor de grupo de volumen (VGDA). El VGDA contiene información sobre los grupos de volúmenes. LVM crea Extensión física (PE).
4) Creación de volumen lógico reflejado
Al crear volúmenes reflejados en un grupo de volúmenes en particular, debe especificar el número de copias de los datos requeridos con -m
argumento del comando lvcreate. Para crear 1 copia espejo de datos, debe especificar como -m1
. Especificando -m1
crea un espejo, que produce dos copias del sistema de archivos.
Crear lv reflejado
# lvcreate -L 50M -m1 -n mirrorlv datavg Rounding up size to full physical extent 52.00 MB Logical volume "mirrorlv" created
En el comando anterior, hemos creado 50 MB del LV de tamaño con 1 copia de datos para mantener. Podemos comprobar con
# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 17.47g swap centos -wi-ao---- 2.00g mirrorlv datavg rwi-a-r--- 50MB
Puede comprobar el estado de su LV reflejado con lvdisplay -v
mando. Simplemente busque información sobre el volumen lógico creado anteriormente como se muestra a continuación
# lvdisplay -v --- Logical volume --- LV Path /dev/datavg/mirrorlv LV Name mirrorlv1 VG Name datavg LV UUID J2kcdf-YxAn-k2d2-KFGS-pnhb-0Zhz-GRECFr LV Write Access read/write LV Creation host, time centos7-srv, 2017-05-08 03:17:28 +0100 LV Status available # open 0 LV Size 52.00 MiB Current LE 13 Mirrored volumes 2 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:18
Puedes ver Mirrored volumes 2
línea que indica la cantidad de discos utilizados para el volumen lógico y, también podemos deducir otra información que es el tipo de nuestro volumen lógico: reflejado.
5) Crea un sistema de archivos y monta
Ahora que hemos creado nuestro volumen lógico, necesitamos crear un sistema de archivos para poder acceder a él.
Utilice los siguientes comandos para crear un sistema de archivos.
# mkfs:ext4 /dev/datavg/mirrorlv mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 13328 inodes, 53248 blocks 2662 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=54525952 7 block groups 8192 blocks per group, 8192 fragments per group 1904 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done.
Ahora podemos montar el sistema de archivos en una ubicación de nuestra elección. El método más utilizado para montar el sistema de archivos es manualmente o mediante el comando mount o agregando entradas en /etc/fstab
para que el sistema de archivos se haya montado durante el arranque.
Monte el sistema de archivos en /mnt/mirrorlv
localización
# mount /dev/datavg/mirrorlv /mnt/mirrorlv
Puede verificar ejecutando el comando.
df -Ph Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 18G 5.2G 13G 30% / devtmpfs 897M 0 897M 0% /dev tmpfs 912M 156K 912M 1% /dev/shm tmpfs 912M 9.1M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 497M 189M 309M 38% /boot tmpfs 183M 8.0K 183M 1% /run/user/1000 /dev/mapper/datavg-mirrorlv 51M 842K 47M 2% /mnt/mirrorlv
Conclusión
Un espejo mantiene copias idénticas de datos en diferentes dispositivos. Cuando los datos se escriben en un dispositivo, también se escriben en un segundo dispositivo, reflejando los datos. Esto proporciona protección contra fallas del dispositivo.