GNU/Linux >> Tutoriales Linux >  >> Linux

Crear y migrar un sistema RedHat/CentOS existente en funcionamiento a RAID 1/RAID 10

El sistema Linux tiene soporte incorporado para software RAID, a través de dispositivos MD, también conocido como Linux Software RAID. La mayoría de las distribuciones de Linux, como Red Hat Enterprise Linux (RHEL) y CentOS, le permiten configurar fácilmente matrices RAID mientras instala el sistema operativo. Sin embargo, si ya tiene un sistema completamente funcional que funciona y se ejecuta con varias unidades de disco duro, pero hasta ahora se ha ejecutado en un sistema de un solo disco, la conversión de un solo disco a RAID implica muchos más riesgos y posibilidades de fallas en el sistema.

RAID brinda beneficios en términos de redundancia de datos y mejora del rendimiento, y se recomienda la configuración para servidores de misión crítica. Por ejemplo, RAID 1 produce un conjunto reflejado, que puede tolerar una falla de un solo disco, mientras que puede acelerar el rendimiento, ya que cualquier disco de la matriz puede atender las solicitudes de lectura. RAID 10 (RAID 1+0) es una franja de conjuntos duplicados, o RAID 0 de conjuntos duplicados RAID 1, que proporciona un mejor rendimiento y latencia, al tiempo que tolera la falla de varios discos siempre que ningún duplicado pierda todas sus unidades.

Este tutorial proporciona una guía paso a paso sobre cómo crear manualmente RAID 1 en un sistema de dos discos o RAID 10 en un sistema de cuatro discos en un sistema actualmente en funcionamiento que ya tiene CentOS / RedHat instalado. El cargador de arranque GRUB también está configurado de tal manera que el sistema aún podrá arrancar si falla alguna de las unidades de disco duro. Esto es especialmente útil si no puede acceder a la consola en un servidor dedicado suscrito por una empresa de alojamiento web, lo que sin darse cuenta le impide crear dispositivos RAID durante la instalación.

La primera fase de la migración de un sistema actualmente en ejecución a RAID sin pérdida de datos es garantizar que todos los datos actuales se repliquen en un RAID degradado. En este tutorial, trabajaremos en un sistema que viene con 477 MB de partición de arranque como /dev/sda1, más de 900 GB de partición raíz como /dev/sda2, 4 GB de espacio de intercambio en /dev/sda3 y otro Partición lógica /dev/sda5 de 4 GB /tmp alojada en la partición extendida /dev/sda4.

  1. Compruebe y asegúrese de que no haya ningún dispositivo RAID ejecutándose actualmente. El contenido del archivo /etc/mdadm.conf y el resultado de cat /proc/mdstat debe estar vacío, y no se deben encontrar arreglos en el archivo de configuración o automáticamente.
    mdadm --examine --scan > /etc/mdadm.conf
    mdadm --assemble --scan 
    cat /proc/mdstat
  2. Como medida de precaución, apague todos los arreglos que se puedan apagar (es decir, que no estén actualmente en uso):
    mdadm --stop --scan
  3. Cambie la tabla de particiones de discos a MBR con los siguientes comandos. Omita este paso si sus discos no tienen una tabla de particiones GTP.
    parted /dev/sdb
    (parted) mktable msdos
    (parted) quit

    Responda S(es) cuando se le solicite "advertencia:la etiqueta de disco existente en /dev/sdb se destruirá y todos los datos de este disco se perderán. ¿Quieres continuar?”

    Enviar actualización al kernel:

    partprobe /dev/sdb

    Repita el comando para otras unidades, es decir, /dev/sdc y /dev/sdd, si corresponde.

  4. Divide el disco duro según tus preferencias.

    En este tutorial, usaremos el siguiente comando para crear particiones que sean idénticas a la unidad existente, /dev/sda:

    sfdisk -d /dev/sda | sfdisk --force /dev/sdb

    Repita el comando para otras unidades, es decir, /dev/sdc y /dev/sdd, si corresponde.

    ConsejoSi está utilizando "fdisk" para crear particiones manualmente, puede utilizar el comando "sfdisk" anterior para replicar las estructuras de partición en otros discos si tiene más de 1 disco duro adicional. Por ejemplo, “sfdisk -d /dev/sdb | sfdisk –force /dev/sdc” replicará particiones de /dev/sdb a /dev/sdc.
  5. Cambia el tipo de partición a la detección automática de RAID de Linux. Para ello, "fdisk" el disco duro específico. Por ejemplo,
    fdisk /dev/sdb

    Luego, emita t comando:

    Command (m for help): t
    Partition number (1-5): 1
    Hex code (type L to list codes): fd
    Changed system type of partition 1 to fd (Linux raid autodetect)

    Repita el proceso para el resto de las particiones del disco. Luego, haz que el cambio sea permanente:

    Command (m for help): w

  6. Elimine RAID para los discos nuevos, en caso de que RAID se haya configurado en los discos "nuevos" antes:
    mdadm --stop --scan
    mdadm --zero-superblock /dev/sdb{1..9}

    Y luego envíe la actualización al kernel:

    partprobe /dev/sdb

    Repita el comando para otras unidades, es decir, /dev/sdc y /dev/sdd, si corresponde.

  7. Cargue los módulos requeridos en el kernel:
    modprobe raid0
    modprobe raid1
    modprobe raid10

    Si ejecuta "cat /proc/mdstat" ahora, debería ver algo similar a:

    Personalidades:[raid0] [raid1] [raid10]
    dispositivos no utilizados:

    Se han cargado módulos relacionados con RAID en el kernel, pero no se han configurado conjuntos de RAID.

  8. Cree dispositivos RAID en estado degradado porque falta una unidad, es decir, /dev/sda, que actualmente está instalado con el sistema operativo y se usa para arrancar. Como las versiones 5.0 y 6.0 de CentOS y RedHat usan Grub 0.97 de manera predeterminada, se especifica “–metadata=0.9” para que se use la versión anterior de superblock. De lo contrario, Grub puede responder con el error "tipo de sistema de archivos desconocido, tipo de partición 0xfd" y negarse a instalar. Además, mdadm también hará sonar una advertencia para la matriz de arranque:esta matriz tiene metadatos al principio y es posible que no sea adecuada como dispositivo de arranque. Si planea almacenar '/boot' en este dispositivo, asegúrese de que su cargador de arranque comprenda los metadatos md/v1.x, o use –metadata=0.90. El parámetro no es necesario con Grub2. La siguiente sintaxis asume que estamos creando arreglos RAID10 con 4 discos. Cambie a RAID1 si solo tiene 2 discos cambiando las opciones a “–level=1” y elimine las particiones de disco que no existen.

    Para /boot, usamos RAID1:

    mdadm --create --verbose /dev/md1 --metadata=0.9 --level=1 --raid-devices=4 missing /dev/sdb1 /dev/sdc1 /dev/sdd1

    Para / root, use RAID10 según lo previsto:

    mdadm --create --verbose /dev/md2 --metadata=0.9 --level=10 --raid-devices=4 missing /dev/sdb2 /dev/sdc2 /dev/sdd2

    Cuando se le pregunte si desea continuar creando la matriz, responda Y(es) . Repita el proceso para crear matrices RAID para espacios de intercambio y otras particiones, si están disponibles.

    NotaLa matriz RAID no se puede crear en una partición extendida, con mdadm responde con /dev/sdbX no es adecuado para esta matriz.
  9. Compruebe el resultado con:
    cat /proc/mdstat

    La salida debe ser:

    [incursión0] [incursión1] [incursión10]
    md5:activo raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]

    md2:activo raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]
    mapa de bits:15/15 páginas [60 KB], fragmento de 65536 KB

    md1 :activo raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 bloques [4/3] [_UUU]

    md3:activo raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]

    dispositivos no utilizados:

  10. Cree un mdadm.conf a partir de la configuración RAID actual:
    mdadm --examine --scan >> /etc/mdadm.conf
  11. Cree los sistemas de archivos en los nuevos dispositivos RAID:
    mkfs.ext4 /dev/md1 # You may want to use mkfs.ext2 for ext2 filesystem for /boot
    mkfs.ext4 /dev/md2 # ext4 filesystem for / root
    mkswap /dev/md3 # Swap space

    Cree el sistema de archivos ext4 para cualquier otra nueva matriz RAID creada.

  12. Reemplace las entradas del dispositivo en /etc/fstab con los nuevos dispositivos RAID. Para hacerlo, primero ejecuta:
    blkid | grep /dev/md

    Devuelve la salida con el UUID de los nuevos dispositivos RAID de software con este aspecto:

    /dev/md1:UUID=”1234abcd-12ab-12ab-12ab-123456abcdef” TIPO=”ext4″
    /dev/md2:UUID=”2234abcd-12ab-12ab-12ab-123456abcdef” TIPO=”ext4″
    /dev/md3:UUID=”3234abcd-12ab-12ab-12ab-123456abcdef” TIPO=”intercambiar”
    /dev/md5:UUID=”4234abcd-12ab-12ab-12ab-123456abcdef” TIPO=”ext4″

    En /etc/fstab , cambie las líneas que contienen varios puntos de montaje al UUID de los nuevos sistemas de archivos RAID /dev/mdX correspondientes, es decir, el valor después de “UUID=”. Por ejemplo,

    UUID=2234abcd-12ab-12ab-12ab-123456abcdef /       ext4   defaults              1 1
    UUID=1234abcd-12ab-12ab-12ab-123456abcdef /boot   ext4   defaults              1 2
    UUID=4234abcd-12ab-12ab-12ab-123456abcdef /tmp    ext4   noexec,nosuid,nodev   1 2
    UUID=3234abcd-12ab-12ab-12ab-123456abcdef swap    swap   defaults              0 0

    Deje tmpfs, devpts, sysfs, proc y otros intactos. Por supuesto, si sabe lo que está haciendo o tiene un sistema de archivos radicalmente diferente, puede modificar fstab como desee.

  13. Actualice initrd y reconstruya initramfs con el nuevo mdadm.conf:
    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
    dracut --mdadmconf  --add-drivers "raid1 raid10" --filesystems "ext4 ext3 swap tmpfs devpts sysfs proc" --force /boot/initramfs-$(uname -r).img $(uname -r)

    Nota:Reemplace $(uname -r) con la versión real del kernel si los comandos no funcionan para usted, especialmente en un LiveCD.

  14. En /boot/grub/menu.lst , cambie el valor de UUID o entrada de etiqueta para el kernel a UUID de / (directorio raíz) en la matriz RAID o /dev/md2 (cambie según si su /boot está montado en una partición diferente). Por ejemplo:
    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=UUID=2234abcd-12ab-12ab-12ab-123456abcdef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    O,

    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=/dev/md2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Asegúrese de que NO rn_NO_DM y rn_NO_MD Los parámetros de arranque no se enumeran como opciones para kernel. Cuando termine de editar, guarde el menu.lst actualizado.

  15. Reproduzca manualmente los datos existentes en las particiones existentes en nuevas particiones RAID de software.

    Para / root (/dev/md2, cámbielo según corresponda si no lo es):

    mkdir /mnt/raid
    mount /dev/md2 /mnt/raid
    cd /mnt/raid
    cp -ax / .
    sync

    Para /arranque:

    rm -rf /mnt/raid/boot
    mkdir /mnt/raid/boot
    mount /dev/md1 /mnt/raid/boot
    cd /mnt/raid/boot
    cp -ax /boot/* .
    sync

    En SELinux, ejecute también:touch /mnt/raid/.autorelabel para /boot.

    Si tiene más particiones disponibles, como /var, /home, etc., repita el proceso para estos sistemas de archivos. Por ejemplo:

    rm -rf /mnt/raid/home
    mkdir /mnt/raid/home
    mount /dev/md1 /mnt/raid/home
    cd /mnt/raid/home
    cp -ax /home/* .
    sync
    SugerenciaHay muchas formas de copiar y duplicar los archivos en nuevas matrices RAID. Por ejemplo:

    rsync -avxHAXS --delete --progress / /mnt/raid
    tar -C / -clspf - . | tar -xlspvf -
    find / -depth -xdev | cpio -pmd /mnt/raid
  16. Instale Grub 0.97 en el MBR de todos los discos para que, en caso de que uno de los discos falle, el sistema pueda arrancar. Para que esto suceda, se debe realizar el siguiente paso::
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> root (hd1,0)
    grub> setup (hd1)
    grub> root (hd2,0)
    grub> setup (hd2)
    grub> root (hd3,0)
    grub> setup (hd3)
    grub> quit

    Omita hd2 y hd3 si solo tiene 2 discos duros.

  17. Vamos a reiniciar el servidor. Haga una copia de seguridad de todo en caso de que el servidor no regrese, luego emita:
    reboot

Se ha completado la primera parte de la configuración de la compatibilidad con RAID del software de Linux en el sistema que se está ejecutando actualmente. Si el servidor volvió, continúe con los siguientes procedimientos para volver a agregar el disco duro faltante (por ejemplo, /dev/sda que ejecuta el sistema originalmente) a las matrices RAID. La siguiente guía asume que el disco restante que no se agregó a las matrices RAID es /dev/sda. Cambie si el nombre de su dispositivo es diferente.

  1. Después de que se inicie el servidor, confirme que los sistemas de archivos estén montados en las matrices RAID, es decir, /dev/md0, /dev/md1…./dev/md3.
    df -h

    Resultado esperado:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/md2        1.8T  1.2G  1.7T   1% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/md1        477M   76M  377M  17% /boot
    /dev/md5        3.9G  8.1M  3.7G   1% /tmp 
  2. Cambie la tabla de particiones del disco a MBR con los siguientes comandos. Omita este paso si el disco no tiene una tabla de particiones GTP.
    parted /dev/sda
    (parted) mktable msdos
    (parted) quit

    Responda S(es) cuando se le solicite "advertencia:la etiqueta de disco existente en /dev/sdb se destruirá y todos los datos de este disco se perderán. ¿Quieres continuar?”

  3. Eliminar todas las particiones existentes en /dev/sda:
    fdisk /dev/sda
    Command (m for help): d
    Partition number (1-5): 1
    
    Command (m for help): d
    Partition number (1-5): 2
    
    Command (m for help): d
    Partition number (1-5): 3
    
    Command (m for help): d
    Partition number (1-5): 4
    
    Command (m for help): d
    Partition number (1-5): 5
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
  4. Eliminar cualquier RAID del disco:
    mdadm --zero-superblock /dev/sda{1..9}

    Enviar actualización al kernel:

    partprobe /dev/sda
  5. Copie la estructura de partición de /dev/sdb:
    sfdisk -d /dev/sdb | sfdisk --force /dev/sda
  6. Ejecutar:
    fdisk -l

    Asegúrese de que todas las particiones que forman las matrices RAID sean de fd Tipos de partición de detección automática de RAID de Linux (valor en la columna "Id"). Si es tipo 83 Linux, use fdisk, cfdisk o parted para cambiarlo a "fd". Por ejemplo:

    Enviar actualización al núcleo si hay algún cambio.

    partprobe /dev/sda
  7. Agregue las particiones en /dev/sda a los arreglos RAID respectivos para completar los arreglos (4 discos en RAID10 o 2 discos en RAID1):
    mdadm --add /dev/md1 /dev/sda1
    mdadm --add /dev/md2 /dev/sda2
    mdadm --add /dev/md3 /dev/sda3

    Repita para otras particiones, si corresponde.

  8. Compruebe el progreso del proceso de recuperación de RAID con:
    cat /proc/mdstat

    La salida debe ser:

    [incursión0] [incursión1] [incursión10]
    md5:activo raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]

    md2:activo raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]
    [====>……………………………….] recuperación =37,8% (177777777/388888888) finalización=60,5 min velocidad=100000K/seg
    mapa de bits:15/15 páginas [60 KB], fragmento de 65536 KB

    md1 :activo raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 bloques [4/3] [_UUU]

    md3:activo raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 bloques 512K fragmentos 2 casi copias [4/3] [_UUU]

    dispositivos no utilizados:

    Sugerencia Puede actualizar continuamente el contenido del archivo /proc/mdstat con el siguiente comando, que se actualiza en intervalos de 5 segundos:

    watch -n 5 cat /proc/mdstat
  9. Vuelva a crear el registro de arranque en el MBR /dev/sda con grub para asegurarse de que el sistema pueda arrancar en cualquier disco:
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> quit
  10. Cuando la recuperación de todas las matrices RAID, reinicie el sistema.
    reboot
  11. Cuando el sistema volvió a funcionar y en línea, felicitaciones, ahora está ejecutando RAID de software.

Después de habilitar RAID con mdadm, lo más importante es asegurarse de que el sistema de notificación de alertas por correo electrónico esté funcionando. El software RAID de Linux puede monitorearse a sí mismo en busca de cualquier posible problema en las matrices RAID, como fallas en el disco, y puede enviar notificaciones por correo electrónico cuando encuentra posibles errores.

Para verificar que la notificación por correo electrónico funciona, emita el siguiente comando:

mdadm --monitor --test --oneshot /dev/md1

Debería recibir un correo electrónico con el contenido de /proc/mdstat. Si no recibe el correo electrónico, asegúrese de que su sistema pueda enviar correos electrónicos y verifique MAILADDR valor en mdadm.conf . Debería leer algo como:

MAILADDR [email protected]

Linux
  1. Cómo migrar Centos 8 a AlmaLinux 8.3

  2. Cómo crear un archivo Kickstart para CentOS/Fedora/RedHat (RHEL)

  3. Cómo aumentar el intercambio en Linux/CentOS/Redhat/Ubuntu

  4. Cómo migrar de CentOS 8 a Rocky Linux 8

  5. Crear un usuario sudo en CentOS

Configurar RAID externo en Ubuntu/Centos/RedHat

Centos vs RedHat:15 datos interesantes para saber

Cómo migrar CentOS 8 a CentOS Stream

Cómo instalar Dgraph en CentOS 8

Cómo migrar CentOS Stream a AlmaLinux

Cómo instalar Nginx en CentOS 8