Etiqueta: Centos

GlusterFS en Centos

Gluster es un sistema de archivos distribuido usado para escenarios de alta disponibilidad; a diferencia de otros sistemas de archivos es escalable. Crea volúmenes que pueden estar replicados, distribuidos, dispersos o combinaciones entre ellos.

Para este tutorial usaremos un volumen replicado para evitar la perdida de información y sobre él montar algún servicio web. Estos son los servidores en los cuales trabajaremos:

192.168.100.122 nodo1.cluster nodo1
192.168.100.127 nodo2.cluster nodo2

En este momento cada servidor cuenta con un disco duro de 20 GB en el dispositivo /dev/vdb. En él se creara la etiqueta, la partición con un sistema de archivos xfs para finalmente montarla en el directorio /gfs.

~]$ sudo parted /dev/vdb mklabel msdos
~]$ sudo parted /dev/vdb mkpart primary 0% 100%
~]$ sudo mkdir /gfs
~]$ sudo mkfs.xfs /dev/vdb1
~]$ sudo echo '/dev/vdb1 /gfs xfs defaults 1 2' >> /etc/fstab
~]$ sudo mount -a

Listo, con los comandos anteriores ya hemos montada la partición.

[root@nodo2 ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1 1024M  0 rom  
vda         252:0    0    6G  0 disk 
├─vda1      252:1    0    5G  0 part 
│ ├─rl-root 253:0    0  4.4G  0 lvm  /
│ └─rl-swap 253:1    0  616M  0 lvm  [SWAP]
└─vda2      252:2    0    1G  0 part /boot
vdb         252:16   0   20G  0 disk 
└─vdb1      252:17   0   20G  0 part /gfs

Ahora toca la instalación del paquete y habilitar el servicio.

~]$ sudo yum install centos-release-gluster9
~]$ sudo yum install glusterfs-server -y
~]$ sudo systemctl enable --now glusterd

Habilitamos el servicio en el firewall.

~]$ sudo firewall-cmd --permanent --add-service=glusterfs
~]$ sudo firewall-cmd --reload

En ambos servidores creamos el directorio que servirá para almacenar la información.

~]$ sudo mkdir -p /gfs/mirror

Probamos la conexión y listamos los elementos del cluster.

[tusysadmin@nodo1 ~]$ sudo gluster peer probe nodo2
peer probe: success
[tusysadmin@nodo1 ~]$ sudo gluster peer status
Number of Peers: 1

Hostname: nodo2.cluster
Uuid: 3431cf1d-80b8-48ac-a605-9803cb2e4cf9
State: Peer in Cluster (Connected)

[tusysadmin@nodo1 ~]$ sudo gluster pool list
UUID					                Hostname   State
3431cf1d-80b8-48ac-a605-9803cb2e4cf9	nodo2.cluster	Connected 
73ae75e6-5d01-4cf5-b886-d448cd361f20	localhost    	Connected

En el nodo1 creamos e iniciamos el volumen.

~]$ sudo gluster volume create volume_mirror replica 2 nodo1.cluster:/gfs/mirror nodo2.cluster:/gfs/mirror
~]$ sudo gluster volume start volume_mirror
~]$ sudo gluster volume info volume_mirror

Volume Name: volume_mirror
Type: Replicate
Volume ID: 2dd69f3f-ae85-46ef-b0f3-ae3607dd06fc
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: nodo1.cluster:/gfs/mirror
Brick2: nodo2.cluster:/gfs/mirror
Options Reconfigured:
performance.client-io-threads: off
nfs.disable: on
transport.address-family: inet
storage.fips-mode-rchecksum: on
cluster.granular-entry-heal: on

Hasta aquí, se ha creado un sistema de archivos similar a lo que se hace con NFS, la única diferencia es que está replicado en dos equipos. Ahora hay que montarlo en un cliente. El cliente será un servidor web con Apache.

[tusysadmin@www ~]$ sudo yum install httpd
[tusysadmin@www ~]$ sudo systemctl enable --now httpd

El servidor web habrá creado el directorio /var/www en el cual montaremos nuestro sistema de archivos.

~]$ sudo mount -t glusterfs nodo1.cluster:/volume_mirror /var/www/

Con lo cual, ya tendremos nuestro sistema de archivos montado en el servidor.

[tusysadmin@www ~]$ sudo df -h
S.ficheros                   Tamaño Usados  Disp Uso% Montado en
devtmpfs                       484M      0  484M   0% /dev
tmpfs                          496M      0  496M   0% /dev/shm
tmpfs                          496M   6.9M  489M   2% /run
tmpfs                          496M      0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-root        5.1G   1.5G  3.4G  32% /
/dev/vda1                      509M   163M  347M  32% /boot
nodo1.cluster:/volume_mirror    20G   238M   20G   2% /var/www
tmpfs                          100M      0  100M   0% /run/user/0

Para hacer el montado de manera automática al iniciar el servidor.

sudo echo "nodo1.cluster:/volume_mirror /var/www glusterfs defaults,_netdev 1 2" >> /etc/fstab

GlusterFS en Replica

Image 1 De 1

Al crear directorios y el archivo index.html de manera habitual en el servidor web estos son creados en los nodos. Al apagar un servidor o detener el servicio Gluster en uno de los nodos la información continua disponible en nuestro servidor web. En este caso, la única forma de perder la información del sitio sería que ambos nodos estén fuera de linea.

Instalar almacenamiento iSCSI en CentOS 7

Como alternativa para reducir los costos por manejar equipos de fibra óptica surgió iSCSI. Un protocolo TCP/IP de la capa de transporte que administra comandos SCSI a través de conexiones de red entre el almacenamiento y el host. No necesita equipos especiales como el caso de fibra y es relativamente fácil de implementar sobre todo en ambientes donde no existen conexiones de fibra.

Es una arquitectura Cliente-Servidor, por un lado, el iniciador puede ser una tarjeta de red estándar con software iniciador iSCSI (opción más económica) o con hardware (HBA), la diferencia radica en el rendimiento pues al hacerlo por software se involucra al CPU en las funciones de empaquetado y desempaquetado de SCSI a paquetes IP, ocasionando que el
procesamiento pueda ser un cuello de botella.

Por su parte el objetivo es el almacenamiento que comparte los recursos en
la red, estos recursos se identifican como Unidades Lógicas Únicas, LUN por sus siglas en inglés. Las LUN’s a su vez, son presentadas a los iniciadores (clientes) por medio de un Nombre Calificado ISCSI, IQN por sus siglas en inglés.

Con está base teórica, comencemos con la configuración en el siguiente ambiente:

iSCSI target:
Hostname: target.local
IP Address: 192.168.122.57

iSCSI iniciador:
Hostname: iniciador.local
IP Address: 192.168.122.222

Comenzamos en el host target.

]$ sudo yum install -y targetd targetcli
]$ sudo systemctl enable target

Habilitamos el servicio en el cortafuegos.

]$ sudo firewall-cmd --add-service=iscsi-target --permanent
]$ sudo firewall-cmd --reload
success

En este punto ya contamos con un lvm sin montar, en este caso /dev/vg1/lv1.

[tusysadmin@target ~]$ 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 
  └─vg1-lv1     253:2    0   20G  0 lvm  

Lanzamos la utilidad targetcli.

[root@target ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> ls
o- / ........................................................... [...]
  o- backstores ................................................ [...]
  | o- block .................................... [Storage Objects: 0]
  | o- fileio ....................................[Storage Objects: 0]
  | o- pscsi .................................... [Storage Objects: 0]
  | o- ramdisk .................................. [Storage Objects: 0]
  o- iscsi .............................................. [Targets: 0]
  o- loopback ........................................... [Targets: 0]

Como vamos a crear un dispositivo de bloques lo hacemos dentro de backstores/block.

/> backstores/block create web_store /dev/vg1/lv1 
Created block storage object web_store using /dev/vg1/lv1.

Creamos el iSCSI Qualified Name.

/> cd iscsi
/iscsi> create iqn.2021-09.com.tusysadmin.target1:web
Created target iqn.2021-09.com.tusysadmin.target1:web.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi>

Creamos la LUN asociada al bloque web_store.

/iscsi> cd iqn.2021-09.com.tusysadmin.target1:web/tpg1/
/iscsi/iqn.20...get1:web/tpg1> luns/ create /backstores/block/web_store 
Created LUN 0.
/iscsi/iqn.20...get1:web/tpg1>

Para crear la ACL con el IQN del iniciador iSCSI.

/iscsi/iqn.20...get1:web/tpg1> acls/ create iqn.2021-09.com.tusysadmin.iniciator:web
Created Node ACL for iqn.2021-09.com.tusysadmin.iniciator:web
Created mapped LUN 0.
/iscsi/iqn.20...get1:web/tpg1> 

Salimos de la utilidad target y verificamos que el puerto 3260 esté abierto.

[root@target ~]# ss -an | grep 3260
tcp    LISTEN     0      256       *:3260                  *:*

Configurando el iniciador iSCSI

En nuestro servidor cliente instalamos el iniciador iSCSI.

tusysadmin@iniciador ~]$ sudo yum install -y iscsi-initiator-utils

Modificamos el archivo /etc/iscsi/initiatorname.iscsi y agregamos el iqn que creamos en la ACL puesto que es nombre que tiene acceso a nuestra LUN. Para finalmente realizar la conexión.

[root@iniciador ~]# iscsiadm --mode node --targetname iqn.2021-09.com.tusysadmin.target1:web --portal target.local --login 
Logging in to [iface: default, target: iqn.2021-09.com.tusysadmin.target1:web, portal: 192.168.122.57,3260] (multiple)
Login to [iface: default, target: iqn.2021-09.com.tusysadmin.target1:web, portal: 192.168.122.57,3260] successful.

Si listamos los dispositivos iSCSI usados aparece el nuevo dispositivo en /dev/sda

[root@iniciador ~]# lsscsi
[0:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.5+  /dev/sr0 
[6:0:0:0]    disk    LIO-ORG  web_store        4.0   /dev/sda 

En este punto la partición puede ser montada como sistema de archivos o como lvm, eso ya dependerá del uso deseado.

Extender Volumen

En una entrada anterior se configuraron tres discos para crear un VG (Volumen Group) y sobre él dos volúmenes con diferentes sistemas de archivos, en esta entrada agregaremos un nuevo disco que permita incrementar el tamaño del VG y a su vez el de los volúmenes.

Hasta el momento esta es la configuración de los discos en donde están montadas las particiones, el volumen lv1 tiene un sistema de archivos ext4 y el volumen lv2 xfs.

[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 
└─vdb1          252:17   0   10G  0 part 
  └─vg1-lv1     253:2    0   12G  0 lvm  /lv1
vdc             252:32   0   10G  0 disk 
└─vdc1          252:33   0   10G  0 part 
  ├─vg1-lv1     253:2    0   12G  0 lvm  /lv1
  └─vg1-lv2     253:3    0   12G  0 lvm  /lv2
vdd             252:48   0   10G  0 disk 
└─vdd1          252:49   0   10G  0 part 
  └─vg1-lv2     253:3    0   12G  0 lvm  /lv2

[tusysadmin@lvm ~]$ sudo blkid | grep lv
/dev/mapper/vg1-lv1: UUID="53912dab-4d9d-4449-b366-aee3766c42c6" TYPE="ext4" 
/dev/mapper/vg1-lv2: UUID="14928bc2-7382-43e5-9f55-579e4115eaf1" TYPE="xfs"

El Volumen Group vg1 aun cuenta con espacio suficiente como para extender los volúmenes lógicos pero en esta entrada anexaremos la parte de agregar más discos para crecer el VG.

[tusysadmin@lvm ~]$ sudo vgs vg1
  VG  #PV #LV #SN Attr   VSize   VFree 
  vg1   3   2   0 wz--n- <29.99g <5.99g
[tusysadmin@lvm ~]$ 

Al esquema anterior se le ha agregado un disco de 5GB que está en el dispositivo vde. Como siempre, se crea la tabla de particiones 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

Para después agregar esta nueva partición al VG.

sudo vgextend vg1 /dev/vde1
[tusysadmin@lvm ~]$ sudo vgs vg1
  VG  #PV #LV #SN Attr   VSize  VFree 
  vg1   4   2   0 wz--n- 34.98g 10.98g

Como puede verse, el tamaño del VG aumentó y ya se cuenta con 10.98G para extender los volúmenes, en este momento son de 12G cada uno.

sudo lvs vg1
  LV   VG  Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 12.00g                                                    
  lv2  vg1 -wi-ao---- 12.00g  

Para conservar equidad, a cada volumen se le asignan 5G.

sudo lvextend -L+5G /dev/vg1/lv1
sudo lvextend -L+5G /dev/vg1/lv2

Finalmente, se incrementan los sistemas de archivos, primero ext4.

sudo resize2fs /dev/vg1/lv1 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /lv1; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/vg1/lv1 is now 4456448 blocks long.

Después incrementamos xfs.

sudo xfs_growfs /dev/vg1/lv2
meta-data=/dev/mapper/vg1-lv2    isize=512    agcount=4, agsize=786432 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=3145728, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 3145728 to 4456448

Al revisar el espacio usado encontramos ambos volúmenes con su respectivo tamaño.

[tusysadmin@lvm ~]$ df -h
S.ficheros              Tamaño Usados  Disp Uso% Montado en
devtmpfs                  485M      0  485M   0% /dev
tmpfs                     496M      0  496M   0% /dev/shm
tmpfs                     496M   6.9M  489M   2% /run
tmpfs                     496M      0  496M   0% /sys/fs/cgroup
/dev/mapper/centos-root   5.1G   1.5G  3.4G  32% /
/dev/vda1                 976M   168M  742M  19% /boot
/dev/mapper/vg1-lv1        17G    44M   16G   1% /lv1
/dev/mapper/vg1-lv2        17G    33M   17G   1% /lv2
tmpfs                     100M      0  100M   0% /run/user/1000

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.

© 2025

Tema por Anders NorenArriba ↑