Crear archivos
lsblk dnf install -y mdadmsudo dnf update
#!/bin/bash
# Parámetros recibidos
TIPO_RAID=$1 # Tipo de RAID (ejemplo: 0, 1, 5)
DISCO1=$2 # Primer disco
DISCO2=$3 # Segundo disco
MOUNTPOINT=$4 # Punto de montaje
# Verificar que los parámetros no estén vacíos
if [ -z "$TIPO_RAID" ] || [ -z "$DISCO1" ] || [ -z "$DISCO2" ] || [ -z "$MOUNTPOINT" ]; then
echo "Error: Faltan parámetros. Uso: ./configurar_raid.sh <TIPO_RAID> <DISCO1> <DISCO2> <MOUNTPOINT>"
exit 1
fi
# Crear el RAID
sudo mdadm --create --verbose /dev/md0 --level=$TIPO_RAID --raid-devices=2 $DISCO1 $DISCO2
# Crear un sistema de archivos en el RAID
sudo mkfs.ext4 /dev/md0
# Crear el directorio de montaje si no existe
sudo mkdir -p $MOUNTPOINT
# Montar el RAID
sudo mount /dev/md0 $MOUNTPOINT
# Verificar que el RAID esté montado
if mount | grep /dev/md0; then
echo "RAID $TIPO_RAID creado y montado correctamente en $MOUNTPOINT."
else
echo "Error al montar el RAID."
fi
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Configurar RAID</title>
</head>
<body>
<h1>Configurar RAID</h1>
<form action="raid_config.php" method="post">
<label for="tipo_raid">Tipo de RAID:</label>
<input type="text" id="tipo_raid" name="tipo_raid" placeholder="Ejemplo: 0, 1, 5" required><br><br>
<label for="disco1">Primer Disco:</label>
<input type="text" id="disco1" name="disco1" placeholder="/dev/nvme0n2" required><br><br>
<label for="disco2">Segundo Disco:</label>
<input type="text" id="disco2" name="disco2" placeholder="/dev/nvme0n3" required><br><br>
<label for="mountpoint">Punto de Montaje:</label>
<input type="text" id="mountpoint" name="mountpoint" placeholder="/mnt/raid" required><br><br>
<button type="submit">Configurar RAID</button>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$tipo_raid = escapeshellarg($_POST['tipo_raid']);
$disco1 = escapeshellarg($_POST['disco1']);
$disco2 = escapeshellarg($_POST['disco2']);
$mountpoint = escapeshellarg($_POST['mountpoint']);
// Ejecutar el script Bash
$comando = "/var/www/html/configurar_raid.sh $tipo_raid $disco1 $disco2 $mountpoint";
$salida = shell_exec("sudo $comando 2>&1");
echo "<h2>Resultado:</h2>";
echo "<pre>$salida</pre>";
}
?>
</body>
</html>
sudo visudo
apache ALL=(ALL) NOPASSWD: /var/www/html/configurar_raid.sh
*Presiona ESC y luego
/
en tu teclado. Esto habilita el modo de búsqueda. como saber que se creo correctamente
mount | grep /dev/md0
echo "Prueba de RAID 0" > /mnt/raid/prueba.txt
cat /mnt/raid/prueba.txt
sudo mdadm --detail /dev/md0
mkdir -p /root/scripts
crea un RAID 0 usando los discos nvme0n2
y nvme0n3
nano /root/scripts/crear_raid0.sh
#!/bin/bash
# Asegurarse de que el script se ejecuta como rootif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fi
# Instalar mdadm si no está instaladoif ! command -v mdadm &> /dev/null; then echo "mdadm no está instalado. Instalando..." yum install -y mdadm # Para sistemas basados en RHEL, como AlmaLinuxfi
# Crear el RAID 0 con nvme0n2 y nvme0n3echo "Creando RAID 0 con nvme0n2 y nvme0n3..."mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/nvme0n2 /dev/nvme0n3
# Crear el sistema de archivos en el RAIDecho "Creando sistema de archivos ext4 en /dev/md0..."mkfs.ext4 /dev/md0
# Crear un punto de montaje y montar el RAIDecho "Montando el RAID en /mnt/raid0..."mkdir -p /mnt/raid0mount /dev/md0 /mnt/raid0
# Añadir el RAID al archivo fstab para montar automáticamente al iniciarecho "Añadiendo el RAID al archivo /etc/fstab..."echo "/dev/md0 /mnt/raid0 ext4 defaults 0 0" >> /etc/fstab
# Confirmar que el RAID se creó correctamentecat /proc/mdstat
echo "RAID 0 creado y montado en /mnt/raid0. ¡Listo!"
chmod +x /root/scripts/crear_raid0.shsudo /root/scripts/crear_raid0.shraid 1
nano /root/scripts/crear_raid1.sh
#!/bin/bash
# Asegurarse de que el script se ejecuta como rootif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fi
# Instalar mdadm si no está instaladoif ! command -v mdadm &> /dev/null; then echo "mdadm no está instalado. Instalando..." yum install -y mdadmfi
# Crear el RAID 1 con nvme0n4 y nvme0n5echo "Creando RAID 1 con nvme0n4 y nvme0n5..."mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/nvme0n4 /dev/nvme0n5
# Crear el sistema de archivos en el RAIDecho "Creando sistema de archivos ext4 en /dev/md1..."mkfs.ext4 /dev/md1
# Crear un punto de montaje y montar el RAIDecho "Montando el RAID en /mnt/raid1..."mkdir -p /mnt/raid1mount /dev/md1 /mnt/raid1
# Añadir el RAID al archivo fstab para montar automáticamente al iniciarecho "Añadiendo el RAID al archivo /etc/fstab..."echo "/dev/md1 /mnt/raid1 ext4 defaults 0 0" >> /etc/fstab
# Confirmar que el RAID se creó correctamentecat /proc/mdstat
echo "RAID 1 creado y montado en /mnt/raid1. ¡Listo!"
chmod +x /root/scripts/crear_raid1.sh
sudo /root/scripts/crear_raid1.shnano /root/scripts/crear_raid5.sh
#!/bin/bash
# Asegurarse de que el script se ejecuta como rootif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fi
# Instalar mdadm si no está instaladoif ! command -v mdadm &> /dev/null; then echo "mdadm no está instalado. Instalando..." yum install -y mdadmfi
# Crear el RAID 5 con nvme0n6, nvme0n7, y nvme0n8echo "Creando RAID 5 con nvme0n6, nvme0n7 y nvme0n8..."mdadm --create --verbose /dev/md2 --level=5 --raid-devices=3 /dev/nvme0n6 /dev/nvme0n7 /dev/nvme0n8
# Crear el sistema de archivos en el RAIDecho "Creando sistema de archivos ext4 en /dev/md2..."mkfs.ext4 /dev/md2
# Crear un punto de montaje y montar el RAIDecho "Montando el RAID en /mnt/raid5..."mkdir -p /mnt/raid5mount /dev/md2 /mnt/raid5
# Añadir el RAID al archivo fstab para montar automáticamente al iniciarecho "Añadiendo el RAID al archivo /etc/fstab..."echo "/dev/md2 /mnt/raid5 ext4 defaults 0 0" >> /etc/fstab
# Confirmar que el RAID se creó correctamentecat /proc/mdstat
echo "RAID 5 creado y montado en /mnt/raid5. ¡Listo!"
raid 6
nano /root/scripts/crear_raid6.sh
#!/bin/bash
# Asegurarse de que el script se ejecuta como rootif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fi
# Instalar mdadm si no está instaladoif ! command -v mdadm &> /dev/null; then echo "mdadm no está instalado. Instalando..." yum install -y mdadmfi
# Crear el RAID 6 con nvme0n2 a nvme0n8echo "Creando RAID 6 con nvme0n2, nvme0n3, nvme0n4, nvme0n5, nvme0n6, nvme0n7 y nvme0n8..."mdadm --create --verbose /dev/md3 --level=6 --raid-devices=7 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7 /dev/nvme0n8
# Crear el sistema de archivos en el RAIDecho "Creando sistema de archivos ext4 en /dev/md3..."mkfs.ext4 /dev/md3
# Crear un punto de montaje y montar el RAIDecho "Montando el RAID en /mnt/raid6..."mkdir -p /mnt/raid6mount /dev/md3 /mnt/raid6
# Añadir el RAID al archivo fstab para montar automáticamente al iniciarecho "Añadiendo el RAID al archivo /etc/fstab..."echo "/dev/md3 /mnt/raid6 ext4 defaults 0 0" >> /etc/fstab
# Confirmar que el RAID se creó correctamentecat /proc/mdstat
echo "RAID 6 creado y montado en /mnt/raid6. ¡Listo!"
chmod +x /root/scripts/crear_raid6.sh
sudo /root/scripts/crear_raid6.shnano /root/scripts/crear_raid10.sh
#!/bin/bash
# Asegurarse de que el script se ejecuta como rootif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fi
# Instalar mdadm si no está instaladoif ! command -v mdadm &> /dev/null; then echo "mdadm no está instalado. Instalando..." yum install -y mdadmfi
# Crear el RAID 10 con nvme0n2 a nvme0n8echo "Creando RAID 10 con nvme0n2, nvme0n3, nvme0n4, nvme0n5, nvme0n6, nvme0n7 y nvme0n8..."mdadm --create --verbose /dev/md4 --level=10 --raid-devices=6 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7
# Crear el sistema de archivos en el RAIDecho "Creando sistema de archivos ext4 en /dev/md4..."mkfs.ext4 /dev/md4
# Crear un punto de montaje y montar el RAIDecho "Montando el RAID en /mnt/raid10..."mkdir -p /mnt/raid10mount /dev/md4 /mnt/raid10
# Añadir el RAID al archivo fstab para montar automáticamente al iniciarecho "Añadiendo el RAID al archivo /etc/fstab..."echo "/dev/md4 /mnt/raid10 ext4 defaults 0 0" >> /etc/fstab
# Confirmar que el RAID se creó correctamentecat /proc/mdstat
echo "RAID 10 creado y montado en /mnt/raid10. ¡Listo!"
chmod +x /root/scripts/crear_raid10.sh
sudo /root/scripts/crear_raid10.shtodo en uno
Archivo PHP: 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" action="raid_manager.php"> <label for="raid_type">Seleccione el tipo de RAID:</label> <select name="raid_type" id="raid_type" required> <option value="0">RAID 0</option> <option value="1">RAID 1</option> <option value="5">RAID 5</option> <option value="6">RAID 6</option> <option value="10">RAID 10</option> </select> <br><br> <label for="disks">Seleccione los discos a usar (Ctrl + clic para selección múltiple):</label> <select name="disks[]" id="disks" multiple required> <option value="nvme0n2">nvme0n2</option> <option value="nvme0n3">nvme0n3</option> <option value="nvme0n4">nvme0n4</option> </select> <br><br> <button type="submit" name="execute">Ejecutar</button> </form> <?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['execute'])) { $raidType = $_POST['raid_type']; $disks = $_POST['disks']; if (count($disks) < 2) { echo "<p style='color: red;'>Debe seleccionar al menos dos discos.</p>"; exit; } $disks = array_map(function ($disk) { return "/dev/" . $disk; }, $disks); $diskList = implode(' ', $disks); $bashScript = "/root/scripts/configure_raid.sh"; $command = "sudo $bashScript $raidType $diskList"; $output = shell_exec($command . ' 2>&1'); echo "<h2>Resultado:</h2>"; echo "<p>Comando ejecutado: <code>$command</code></p>"; echo "<pre>$output</pre>"; } ?></body></html>
configure_raid.sh
#!/bin/bashif [ "$EUID" -ne 0 ]; then echo "Por favor, ejecuta este script como root." exit 1fiRAID_TYPE=$1shiftDISKS=("$@")DEVICE="/dev/md$RAID_TYPE"echo "Creando RAID $RAID_TYPE con los discos: ${DISKS[*]}"yes | mdadm --create --verbose $DEVICE --level=$RAID_TYPE --raid-devices=${#DISKS[@]} "${DISKS[@]}"mkfs.ext4 $DEVICEMOUNT_POINT="/mnt/raid$RAID_TYPE"mkdir -p $MOUNT_POINTmount $DEVICE $MOUNT_POINTecho "$DEVICE $MOUNT_POINT ext4 defaults 0 0" >> /etc/fstabecho "RAID $RAID_TYPE configurado y montado en $MOUNT_POINT."
http://10.10.10.129/raid_manager.php
1. Limpiar el dispositivo RAID existente
#!/bin/bash
# Asegurarse de que el script se ejecuta como root
if [ "$EUID" -ne 0 ]; then
echo "Por favor, ejecuta este script como root."
exit 1
fi
echo "Desmontando y deteniendo todos los RAID configurados..."
# Desmontar RAID 0
if mount | grep "/mnt/raid0" &> /dev/null; then
echo "Desmontando /mnt/raid0..."
umount /mnt/raid0
fi
if [ -e /dev/md0 ]; then
echo "Deteniendo /dev/md0 (RAID 0)..."
mdadm --stop /dev/md0
fi
# Desmontar RAID 1
if mount | grep "/mnt/raid1" &> /dev/null; then
echo "Desmontando /mnt/raid1..."
umount /mnt/raid1
fi
if [ -e /dev/md1 ]; then
echo "Deteniendo /dev/md1 (RAID 1)..."
mdadm --stop /dev/md1
fi
# Desmontar RAID 5
if mount | grep "/mnt/raid5" &> /dev/null; then
echo "Desmontando /mnt/raid5..."
umount /mnt/raid5
fi
if [ -e /dev/md2 ]; then
echo "Deteniendo /dev/md2 (RAID 5)..."
mdadm --stop /dev/md2
fi
# Borrar configuraciones de RAID en los discos
echo "Eliminando configuraciones de RAID de los discos..."
mdadm --zero-superblock /dev/nvme0n2
mdadm --zero-superblock /dev/nvme0n3
mdadm --zero-superblock /dev/nvme0n4
mdadm --zero-superblock /dev/nvme0n5
mdadm --zero-superblock /dev/nvme0n6
mdadm --zero-superblock /dev/nvme0n7
mdadm --zero-superblock /dev/nvme0n8
# Eliminar entradas de RAID en /etc/fstab
echo "Eliminando entradas de RAID en /etc/fstab..."
sed -i '/\/mnt\/raid0/d' /etc/fstab
sed -i '/\/mnt\/raid1/d' /etc/fstab
sed -i '/\/mnt\/raid5/d' /etc/fstab
echo "Todos los RAID han sido eliminados y los discos han vuelto a su estado normal."
chmod +x /root/scripts/borrar_raid.sh
sudo /root/scripts/borrar_raid.sh
umount /mnt/raid10
mdadm --stop /dev/md4
No hay comentarios.:
Publicar un comentario