¿cuanta gente a visto el blog?

configurar, administrar y probar una partición RAID 1 en un sistema Linux.

  • Prepara dos discos (particiones nvme0n2p1 y nvme0n3p1) para RAID 1.
  • Crea y configura el RAID 1 usando mdadm.
  • Monta el RAID, lo usa para realizar una copia de seguridad con tar.
  • Simula una falla en uno de los discos del RAID.
  • Recupera el RAID clonando la tabla de particiones y añadiendo nuevamente el disco fallido.
  • Limpia y desmonta el array RAID al final del proceso.
  • Este script es un conjunto de pasos para configurar, administrar y probar una partición RAID 1 en un sistema Linux. RAID 1 es un tipo de configuración en la que los datos se duplican (espejo) en dos o más discos para aumentar la redundancia y la seguridad. Vamos a desglosar y explicar cada paso de este script para que entiendas qué hace cada comando. 

    Particionar los discos `nvme0n2` y `nvme0n3`

       lsblk



       - Lista los dispositivos de bloque disponibles en tu sistema para que puedas identificar los discos que usarás en el RAID.

        fdisk /dev/nvme0n2

       - Abre la herramienta `fdisk` para gestionar particiones en el disco `nvme0n2`.

    m

       n      # Crear una nueva partición

       p      # Crear una partición primaria

       1      # Especificar el número de la partición

       enter  # Usar el valor por defecto para el primer sector

       enter  # Usar el valor por defecto para el último sector (tamaño total)

       t      # Cambiar el tipo de partición

       L      # Listar todos los tipos de particiones disponibles

       FD     # Asignar el tipo de partición RAID (Linux RAID autodetect)

       p      # Mostrar la tabla de particiones

       w      # Guardar los cambios y salir

    *Repetir lo mismo para `nvme0n3`:**


       fdisk /dev/nvme0n3


       - Se sigue la misma secuencia de particionamiento en el segundo disco `nvme0n3`.


       lsblk

       ```

       - Después de crear las particiones, se utiliza `lsblk` para verificar que las particiones se han creado correctamente en ambos discos.

     

       dnf install -y mdadm

     

       - Instala la herramienta `mdadm` que se usa para gestionar RAID en Linux.

    ¿Crear el array RAID 1:


       mdadm -C /dev/md0 -l 1 -n 2 /dev/nvme0n2p1 /dev/nvme0n3p1


       - Crea un array RAID 1 llamado `/dev/md0` con dos discos, usando las particiones `/dev/nvme0n2p1` y `/dev/nvme0n3p1`.

     

       mkfs.ext4 /dev/md0

     

       - Formatea el array RAID con el sistema de archivos ext4.

     

       mount /dev/md0 /mnt

     

       - Monta el array RAID en el directorio `/mnt` para que puedas acceder a él.

     

       lsblk

       cat /proc/mdstat

     

       - `lsblk` muestra los dispositivos de bloque montados, y `cat /proc/mdstat` muestra el estado del RAID, asegurando que todo esté funcionando correctamente.

     

    ### 4. **Realizar copia de seguridad**

     

       dnf install tar

     

       - Instala la herramienta `tar` para crear archivos comprimidos.

        tar zcf /mnt/buckup.tar.gz /etc

     

       - Crea una copia de seguridad comprimida del directorio `/etc` y la guarda en el RAID montado en `/mnt`.

     

       mdadm -f /dev/md0 /dev/nvme0n3p1

       ```    - Simula la falla del disco `nvme0n3p1` en el array RAID.

     

       mdadm -r /dev/md0 /dev/nvme0n3p1

     

       - Remueve el disco `nvme0n3p1` del array RAID.

     

       cat /proc/mdstat

     

       - Verifica nuevamente el estado del RAID para confirmar que el disco ha sido marcado como fallido y removido.

     

       sfdisk -d /dev/nvme0n2p1 | sfdisk /dev/nvme0n3p1

       

       - Clona la tabla de particiones de `nvme0n2p1` a `nvme0n3p1` para preparar el segundo disco para ser añadido nuevamente al RAID.

     

       mdadm -a /dev/md0 /dev/nvme0n3p1

     

       - Añade el disco `nvme0n3p1` nuevamente al array RAID.

     

       umount /mnt

        

       - Desmonta el array RAID del directorio `/mnt`.

     

       mdadm --stop /dev/md0

     

       - Detiene el array RAID.

     

       mdadm --zero-superblock /dev/nvme0n2p1

       mdadm --zero-superblock /dev/nvme0n3p1

        

       - Elimina las superblocks RAID de las particiones en ambos discos, para limpiar los discos.

     raid con php y bash

    sudo nano /var/www/html/raid_manager.php

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>RAID Manager</title>
    </head>
    <body>
        <h1>RAID Manager</h1>
        <form method="POST">
            <label for="raid-type">Choose RAID type:</label>
            <select name="raid-type" id="raid-type" required>
                <option value="1">RAID 1 (Mirroring)</option>
                <option value="0">RAID 0 (Striping)</option>
            </select>
            <br><br>

            <label for="disk1">Disk 1:</label>
            <input type="text" name="disk1" id="disk1" placeholder="/dev/nvme0n2" required>
            <br><br>

            <label for="disk2">Disk 2:</label>
            <input type="text" name="disk2" id="disk2" placeholder="/dev/nvme0n3" required>
            <br><br>

            <label for="mount-point">Mount Point:</label>
            <input type="text" name="mount-point" id="mount-point" placeholder="/mnt/raid" required>
            <br><br>

            <button type="submit" name="create">Create RAID</button>
            <button type="submit" name="clean">Clean Disks</button>
        </form>

        <?php
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            if (isset($_POST['create'])) {
                $raidType = $_POST['raid-type'];
                $disk1 = $_POST['disk1'];
                $disk2 = $_POST['disk2'];
                $mountPoint = $_POST['mount-point'];

                echo "<h2>Creating RAID...</h2>";

                // Comando para crear el RAID
                $createCmd = "sudo mdadm --create --verbose /dev/md0 --level=$raidType --raid-devices=2 $disk1 $disk2";
                $formatCmd = "sudo mkfs.ext4 /dev/md0";
                $mountCmd = "sudo mkdir -p $mountPoint && sudo mount /dev/md0 $mountPoint";

                // Ejecutar los comandos
                $output = shell_exec("$createCmd 2>&1");
                echo "<pre>$output</pre>";

                $output = shell_exec("$formatCmd 2>&1");
                echo "<pre>$output</pre>";

                $output = shell_exec("$mountCmd 2>&1");
                echo "<pre>$output</pre>";

                echo "<p>RAID created and mounted at $mountPoint</p>";
            }

            if (isset($_POST['clean'])) {
                echo "<h2>Cleaning Disks...</h2>";

                // Comandos para desmontar los puntos de montaje
                $unmountRaid = "sudo umount /mnt/raid";
                $unmountRaid1 = "sudo umount /mnt/raid1";
                echo "<h3>Unmounting RAID devices...</h3>";
                $output = shell_exec("$unmountRaid 2>&1");
                echo "<pre>$output</pre>";
                $output = shell_exec("$unmountRaid1 2>&1");
                echo "<pre>$output</pre>";

                // Comandos para detener los RAIDs
                $stopRaid0 = "sudo mdadm --stop /dev/md0";
                $stopRaid1 = "sudo mdadm --stop /dev/md1";
                echo "<h3>Stopping RAID devices...</h3>";
                $output = shell_exec("$stopRaid0 2>&1");
                echo "<pre>$output</pre>";
                $output = shell_exec("$stopRaid1 2>&1");
                echo "<pre>$output</pre>";

                // Comandos para limpiar los superbloques
                $cleanSuperblocks = "sudo mdadm --zero-superblock /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5";
                echo "<h3>Cleaning superblocks...</h3>";
                $output = shell_exec("$cleanSuperblocks 2>&1");
                echo "<pre>$output</pre>";

                // Comando para limpiar las firmas restantes con wipefs
                $wipeDisks = "sudo wipefs -a /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5";
                echo "<h3>Wiping disks...</h3>";
                $output = shell_exec("$wipeDisks 2>&1");
                echo "<pre>$output</pre>";

                echo "<p>Disks cleaned successfully!</p>";
            }
        }
        ?>
    </body>
    </html>

    sudo dnf install mdadm -y
    sudo mdadm --zero-superblock --force /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
    sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/nvme0n2 /dev/nvme0n3
    sudo mdadm --stop /dev/md0
    sudo mdadm --stop /dev/md1
    sudo mdadm --zero-superblock --force /dev/nvme0n2
    sudo mdadm --zero-superblock --force /dev/nvme0n3
    sudo mdadm --zero-superblock --force /dev/nvme0n4
    sudo mdadm --zero-superblock --force /dev/nvme0n5
    lsblk
    cat /proc/mdstat
    sudo mdadm --remove /dev/md0
    sudo mdadm --remove /dev/md1
    sudo mdadm --detail --scan > /etc/mdadm.conf


    No hay comentarios.:

    Publicar un comentario