Autor: admin (Página 3 de 3)

LVM

Otra forma de configurar unidades de almacenamiento y que trabajen de manera conjunta, flexible y dinámica es a través de volúmenes lógicos. El Administrador de Volúmenes Lógicos (LVM) crea un nivel de abstracción sobre las unidades de disco; que en realidad son particiones concentradas en un pool que posteriormente se presentan en volumen lógico o partición.

Como se puede ver en la imagen anterior los discos son agregados a un grupo para posteriormente presentarse en uno o más volúmenes lógicos, esto es más flexible que presentar una partición por disco. A un servidor se le han presentado 3 discos duros de 10 GB para crear un grupo y gestionar el almacenamiento.

[tusysadmin@lvm ~]$ sudo lsblk
 NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sr0              11:0    1 1024M  0 rom  
 vda             252:0    0    7G  0 disk 
 ├─vda1          252:1    0    1G  0 part /boot
 └─vda2          252:2    0    6G  0 part 
   ├─centos-root 253:0    0  5.3G  0 lvm  /
   └─centos-swap 253:1    0  716M  0 lvm  [SWAP]
 vdb             252:16   0   10G  0 disk 
 vdc             252:32   0   10G  0 disk 
 vdd             252:48   0   10G  0 disk 

A estos discos se les crea una tabla de particiones, la partición y la etiqueta de lvm.

sudo parted /dev/vdb mklabel msdos
sudo parted /dev/vdb mkpart primary 0% 100%
sudo parted /dev/vdb set 1 lvm on
sudo parted /dev/vdc mklabel msdos
sudo parted /dev/vdc mkpart primary 0% 100%
sudo parted /dev/vdc set 1 lvm on
sudo parted /dev/vdd mklabel msdos
sudo parted /dev/vdd mkpart primary 0% 100%
sudo parted /dev/vdd set 1 lvm on

Las particiones /dev/vdb1, /dev/vdc1 y /dev/vdd1 son agregadas como pvs, para ser agregadas al VG vg1.

sudo pvcreate /dev/vdb1 /dev/vdc1 /dev/vdd1
sudo vgcreate vg1 /dev/vdb1 /dev/vdc1 /dev/vdd1
[tusysadmin@lvm ~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n-  <6.00g   4.00m
  vg1      3   0   0 wz--n- <29.99g <29.99g

Este VG dispone de la suma de las tres particiones, se creara un LVM de 12GB que sera montado en la ruta /lv1.

sudo lvcreate -n lv1 -L 12G vg1
sudo mkdir /lv1
sudo mkfs.ext4 /dev/vg1/lv1
sudo mount /dev/vg1/lv1 /lv1

Para montar esta partición al iniciar el servidor se modifica el archivo /etc/fstab, como root escribimos.

echo "/dev/vg1/lv1   /lv1   ext4   defaults 1 2" >> /etc/fstab

LVM Con XFS

Hasta este momento se cuenta con una partición que no utiliza todo el espacio de los discos montados, por lo que el volumen VG1 contará con espacio suficiente, para revisar el espacio con disponible usamos vgs.

[tusysadmin@lvm ~]$ sudo vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n-  <6.00g   4.00m
  vg1      3   1   0 wz--n- <29.99g <17.99g

Con los 17.99GB disponibles se creara un nuevo LVM, pero esta vez con un sistema de archivos xfs.

sudo lvcreate -n lv2 -L 12G vg1
sudo mkdir /lv2
sudo mkfs.xfs /dev/vg1/lv2
sudo mount /dev/vg1/lv2

Al igual que en la otra partición, se modifica el archivo /etc/fstab para que sea montada al momento de arrancar el servidor. Como root escribimos.

echo "/dev/vg1/lv2   /lv2   xfs   defaults 1 2" >> /etc/fstab

Y con esto, tenemos dos particiones con diferentes sistemas de archivos, el VG cuenta con espacio libre para incrementar alguno de los volúmenes en caso de requerirse.

tusysadmin@lvm ~]$ sudo vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <29.99 GiB
  PE Size               4.00 MiB
  Total PE              7677
  Alloc PE / Size       6144 / 24.00 GiB
  Free  PE / Size       1533 / <5.99 GiB
  VG UUID               eyvICn-sJmi-x5aQ-J20q-szo2-1ynY-FjSaL5

En entradas posteriores se mostrara como incrementar estas particiones así como la adición de un nuevo disco.

Reemplazar disco de arreglo

En un Post anterior se hizo la instalación de un raid 1, ahora se mostrará como reemplazar uno de los discos cuando este falla, para este ejemplo se ha removido por completo uno de los discos que componían el arreglo y anexado su reemplazo

[tusysadmin@raid1 ~]$ sudo lsblk
 NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
 sr0              11:0    1 1024M  0 rom   
 vda             252:0    0    7G  0 disk  
 ├─vda1          252:1    0    1G  0 part  /boot
 └─vda2          252:2    0    6G  0 part  
   ├─centos-root 253:0    0  5.3G  0 lvm   /
   └─centos-swap 253:1    0  716M  0 lvm   [SWAP]
 vdb             252:16   0   20G  0 disk  
 vdc             252:32   0   20G  0 disk  
 └─vdc1          252:33   0   20G  0 part  
   └─md0           9:0    0   20G  0 raid1 /raid

Al monitorear el estado del arreglo se detecta que uno de los disco ha sido removido, pero la lectura y escritura de los archivos que se tienen montados en el sevidor siguen estando accesibles.

[tusysadmin@raid1 ~]$ sudo mdadm --detail /dev/md0
 /dev/md0:
            Version : 1.2
      Creation Time : Tue Jul  6 10:28:38 2021
         Raid Level : raid1
         Array Size : 20953088 (19.98 GiB 21.46 GB)
      Used Dev Size : 20953088 (19.98 GiB 21.46 GB)
       Raid Devices : 2
      Total Devices : 1
        Persistence : Superblock is persistent

        Update Time : Tue Jul  6 12:00:15 2021
              State : clean, degraded 
     Active Devices : 1
    Working Devices : 1
     Failed Devices : 0
      Spare Devices : 0

 Consistency Policy : resync

               Name : raid1:0  (local to host raid1)
               UUID : a0d3f752:fd91f8ac:e887109c:a39a9810
             Events : 147

     Number   Major   Minor   RaidDevice State
        -       0        0        0      removed
        1     252       33        1      active sync   /dev/vdc1

Mientras agrego el nuevo disco estaré enviando con un tail la salida del archivo audit.log a un archivo llamado logs, esto para similar la escritura en la carpeta en donde está construido el arreglo.

[tusysadmin@raid1 files]$ pwd
 /raid/files
 [tusysadmin@raid1 files]$ ls 
 CentOS-8.3.2011-x86_64-boot.iso  logs
 [tusysadmin@raid1 files]$ sudo tail -f /var/log/audit/audit.log >> logs

Mientras eso sucede en otra terminal, agregamos el nuevo disco.

sudo parted /dev/vdb mklabel msdos
sudo parted /dev/vdb mkpart primary ext4 0% 100%
sudo parted /dev/vdb set 1 raid on
sudo mdadm --manage /dev/md0 --add /dev/vdb1

Una vez agregado comenzará la recuperación del arreglo

[tusysadmin@raid1 ~]$ cat /proc/mdstat 
 Personalities : [raid1] 
 md0 : active raid1 vdb1[2] vdc1[1]
       20953088 blocks super 1.2 [2/1] [_U]
       [======>…………..]  recovery = 34.6% (7254144/20953088) finish=5.8min speed=39115K/sec

La recuperación tardará dependiendo del tamaño del arreglo, una vez terminado puede validarse con los comandos.

cat /proc/mdstat
sudo mdadm --detail /dev/md0

Crear RAID 1

El tener un RAID 1 es útil para conservar información replicada, de esta forma se evita perderla en caso de falla física de uno de los discos. Para este ejemplo se usaran dos discos de 20 G en la creación del arreglo, mismos que ya son detectados por la maquina virtual.

[tusysadmin@raid1 ~]$ sudo lsblk
 NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 sr0              11:0    1 1024M  0 rom  
 vda             252:0    0    7G  0 disk 
 ├─vda1          252:1    0    1G  0 part /boot
 └─vda2          252:2    0    6G  0 part 
   ├─centos-root 253:0    0  5.3G  0 lvm  /
   └─centos-swap 253:1    0  716M  0 lvm  [SWAP]
 vdb             252:16   0   20G  0 disk 
 vdc             252:32   0   20G  0 disk 

Para usar estos dispositivos es necesario crear una tabla de particiones:

sudo parted /dev/vdb mklabel msdos
sudo parted /dev/vdc mklabel msdos 

Se crean las particiones y se marcan para usarse con la etiqueta de raid.

sudo parted /dev/vdb mkpart primary ext4 0% 100%
sudo parted /dev/vdb set 1 raid on
sudo parted /dev/vdc mkpart primary ext4 0% 100%
sudo parted /dev/vdc set 1 raid on 

Con esto, ambos discos están listos para crear el arreglo.

[tusysadmin@raid1 ~]$ sudo parted /dev/vdb print
 Model: Virtio Block Device (virtblk)
 Disk /dev/vdb: 21.5GB
 Sector size (logical/physical): 512B/512B
 Partition Table: msdos
 Disk Flags: 
 Numero  Inicio  Fin     Tamaño  Typo     Sistema de ficheros  Banderas
  1      1049kB  21.5GB  21.5GB  primary                       raid
 [tusysadmin@raid1 ~]$ sudo parted /dev/vdc print
 Model: Virtio Block Device (virtblk)
 Disk /dev/vdc: 21.5GB
 Sector size (logical/physical): 512B/512B
 Partition Table: msdos
 Disk Flags: 
 Numero  Inicio  Fin     Tamaño  Typo     Sistema de ficheros  Banderas
  1      1049kB  21.5GB  21.5GB  primary                       raid

Para crear el arreglo es necesario instalar el paquete mdadm, como se esta trabajando con CentOS usamos Yum.

sudo yum install mdadm -y

Para posteriormente crear la partición del arreglo.

sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/vdb1 /dev/vdc1

Y montar la partición creada.

sudo mkfs.ext4 /dev/md0
sudo mkdir /raid
sudo mount /dev/md0 /raid

Finalmente se modifica el archivo /etc/fstab para montar la partición al encender la maquina, como root escribimos.

echo "/dev/md0   /raid   ext4   defaults 1 2" >> /etc/fstab

Para validar los detalles y el estado del arreglo recién creado usamos mdadm –detail /dev/md0.

[tusysadmin@raid1 ~]$ sudo mdadm --detail /dev/md0
 /dev/md0:
            Version : 1.2
      Creation Time : Tue Jul  6 10:28:38 2021
         Raid Level : raid1
         Array Size : 20953088 (19.98 GiB 21.46 GB)
      Used Dev Size : 20953088 (19.98 GiB 21.46 GB)
       Raid Devices : 2
      Total Devices : 2
        Persistence : Superblock is persistent

        Update Time : Tue Jul  6 10:43:14 2021
              State : clean 
     Active Devices : 2
    Working Devices : 2
     Failed Devices : 0
      Spare Devices : 0
  
 Consistency Policy : resync

               Name : raid1:0  (local to host raid1) 
               UUID : a0d3f752:fd91f8ac:e887109c:a39a9810        
             Events : 145 

     Number   Major   Minor   RaidDevice State  
        0     252       17        0      active sync   /dev/vdb1
        1     252       33        1      active sync   /dev/vdc1 

Al listar la lista de dispositivos de bloques, pueden observarse que aparece md0 dentro de las particiones iniciales.

[tusysadmin@raid1 ~]$ sudo lsblk
 NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
 sr0              11:0    1 1024M  0 rom   
 vda             252:0    0    7G  0 disk  
 ├─vda1          252:1    0    1G  0 part  /boot
 └─vda2          252:2    0    6G  0 part  
   ├─centos-root 253:0    0  5.3G  0 lvm   /
   └─centos-swap 253:1    0  716M  0 lvm   [SWAP]
 vdb             252:16   0   20G  0 disk  
 └─vdb1          252:17   0   20G  0 part  
   └─md0           9:0    0   20G  0 raid1 /raid
 vdc             252:32   0   20G  0 disk  
 └─vdc1          252:33   0   20G  0 part  
   └─md0           9:0    0   20G  0 raid1 /raid

En el siguiente Post se mostrará como reemplazar uno de los discos cuándo presentan una falla.

Entradas siguientes »

© 2025

Tema por Anders NorenArriba ↑