RAID Debian · 6 min read · Nov 14, 2025
Expandiendo un RAID de software en Debian migrando a nuevos discos duros grandes
La configuración: dos discos físicos de un RAID 1 (espejo) serán reemplazados por dos discos más capaciosos, haremos un reemplazo “en caliente” directamente desde el sistema operativo en funcionamiento, sin necesidad de arrancar desde un medio de arranque externo. Esta guía ha sido probada en distribuciones de Debian 6, 7, 8 tanto de 32 como de 64 bits.
Asumimos que los dos discos están particionados con una partición raíz y una partición de intercambio y que estas dos particiones construyen los dos dispositivos RAID md0 y md1:
- La partición sda1 y sdb1 que componen el volumen md0 (raíz)
- Las particiones sda2 y sdb2 que componen el volumen md1 (intercambio)
Primero, haz una copia de seguridad de todos tus datos, incluso si la guía ha sido probada varias veces, la mala suerte siempre está presente… Proporcionamos (en mi opinión, la mejor solución) para un reemplazo, desconectamos uno de los dos discos viejos con la máquina apagada, luego conectamos un nuevo disco temporal, luego resincronizamos, así que aún tendremos el RAID funcionando y un solo disco (con RAID en modo degradado) y aún puedes recrear un RAID funcional si algo no funciona. Para hacer esto, solo escribe estos comandos después de reemplazar el disco completo por el vacío:
sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty
mdadm —zero-superblock /dev/hd empty
mdadm —add /dev/md(raid) /dev/hd(empty)Repite las dos últimas líneas para cada RAID / partición en el sistema
(por ejemplo:
mdadm -add /dev/md0 /dev/sdb1 y luego
mdadm -add /dev/md1 /dev/sdb2etc..
De esta manera, forzamos la tabla de particiones del disco fuente al disco vacío de destino, luego agregamos esto al RAID.
Obviamente, debes esperar hasta el final del proceso de reconstrucción, monitoreado por:
watch cat / pro / mdstat(Y, por supuesto, CTRL + C para salir del proceso)
Apaga la máquina en este punto, agregamos dos nuevos discos, que se convierten respectivamente en sdc y sdd, luego inicia el servidor y ejecuta el comando:
fdisk -lEl resultado debería parecerse a esto:
Disco /dev/sda: ……MB , ………….Bytes
… cabezas, …sectores/pista , ….. cilindros
Tamaño de I/O (mínimo/óptimo): 512 bytes / 512 bytes
Disco: identificador : ………..Dispositivo arranque Inicio Fin Bloques Id Sistema/dev/sda2 970 1044 602437+ fd Linux raid autodetect/dev/sda2 1 969 7783461 fd Linux raid autodetect ……/dev/sdb1 * 1 969 7783461 fd Linux raid autodetect /dev/sdb2 970 1044 602437+ fd Linux raid autodetect ……Disco /dev/sdc: …Mb, …….Bytes……Disco /dev/sdd: …Mb, …….Bytes……Disco /dev/md0: …Mb, …….Bytes…...Disco /dev/md1: …Mb, …….BytesAhora, escribe:
fdisk /dev/sdccreamos una nueva partición con el comando n,
seleccionamos p partición primaria,
seleccionamos el número de partición ( 1,2,3, etc …),
seleccionamos el cilindro de inicio ( 1),
seleccionamos el tamaño de la partición primaria escribiendo el símbolo + seguido del tamaño en GB y GB de letras (por ejemplo: +480GB)
la hacemos arrancable con el comando a, seleccionando el mismo número de partición.
cambiamos el ID de partición a “ fd “ (Linux Raid Autodetect) con t, y escribiendo como código Hex, solo “ fd “
Luego repetimos TODOS los comandos para la segunda partición (la partición será el intercambio).
Guardaremos los cambios con w.
Obviamente, presta atención al tamaño de las particiones. La mejor solución es restar el tamaño actual del intercambio del total del espacio libre para crear la partición de trabajo con el mayor espacio posible.
Ahora realizaremos exactamente las mismas operaciones en el disco SDD, asegurándonos de crear la misma partición con los mismos tamaños que usamos anteriormente.
En este punto hacemos un intercambio entre el primer disco “completo” y el primer nuevo disco, agregando este último como un repuesto al RAID:
mdadm -add /dev/md0 /dev/sdc1Luego deberíamos verificar la situación del disco RAID, debería ser así:
md0: active raid 1 sdc1[S] sda1[2] sdb1[3] ………bloques super 1.2 [2/2] [UU]Luego colocamos en el disco original:
mdadm -f /dev/md0 /dev/sda1y lo eliminamos del RAID:
mdadm -r /dev/md0 /dev/sda1Ahora verificamos que la reconstrucción comenzó automáticamente y esperamos hasta que se complete monitoreando nuevamente con:
watch cat /proc/mdstat(Y, por supuesto, CTRL + C para salir del proceso)
Al final instalamos el gestor de arranque (grub) en el nuevo disco (/ dev / sdc):
grub-install /dev/sdcEl mismo proceso solo tiene que repetirse para cada una de las particiones del sistema:
mdadm -add /dev/md0 /dev/sdd1mdadm -f /dev/md0 /dev/sdb1mdadm -r /dev/md0 /dev/sdb1Y esperamos nuevamente hasta que la reconstrucción esté terminada:
watch cat /proc/mdstat(Y, por supuesto, CTRL + C para salir del proceso)
A continuación, hacemos el mismo procedimiento para la primera partición de intercambio de los dos nuevos discos:
mdadm -add /dev/md1 /dev/sdc2mdadm -f /dev/md0 /dev/sda2mdadm -r /dev/md0 /dev/sda2Esperamos nuevamente hasta que haya terminado la reconstrucción:
watch cat /proc/mdstat(Y, por supuesto, CTRL + C para salir del proceso)
Y el último disco:
mdadm -add /dev/md1 /dev/sdd2mdadm -f /dev/md0 /dev/sdb2mdadm -r /dev/md0 /dev/sdb2Esperamos nuevamente hasta que haya terminado la reconstrucción:
watch cat /proc/mdstat(Y, por supuesto, CTRL + C para salir del proceso)
En este punto reinstalamos el gestor de arranque en ambos discos:
grub-install /dev/sdcgrub-install /dev/sddEn este punto nos encontramos con el viejo disco expulsado del RAID, y los nuevos discos están instalados y operativos. Pero con el espacio utilizable por debajo del máximo permitido por la partición
Luego procedemos con el aumento de la partición y la verificación de la misma, como de costumbre para ambos volúmenes:
mdadm —grow —raid-devices=2 /dev/md0mdadm -A —scanmdadm —grow /dev/md0 —size=maxmdadm —examine —scane2fsck -f /dev(md0resize2fs /dev/md0mdadm —grow —raid-devices=2 /dev/md1mdadm -A —scanmdadm —grow /dev/md1 —size=maxmdadm —examine —scane2fsck -f /dev/md1resize2fs /dev/md1Cuando termine, apaga la PC, desconecta los discos viejos y reinicia la máquina.
Incluso si el reinicio funcionó, reconstruimos el grub por razones de seguridad ya que el lanzamiento del nuevo disco habrá tomado el nombre del antiguo (sda y sdb):
mv /boot/grub/device.map/boot/grub/device.map.oldgrub-mkdevicemapupdate-grub2 && grub-install /dev/sda && grub-install /dev/sdbSi quieres estar absolutamente seguro de que la nueva configuración del RAID está funcionando, apaga la máquina, desconecta uno de los nuevos discos y vuelve a encender. Debería arrancar sin problemas. Después, apaga nuevamente, conecta el disco y arranca. Puedes usar este comando para verificar el estado del RAID.
watch cat /proc/mdstat(Y, por supuesto, CTRL + C para salir del proceso)
Terminamos el trabajo, celebramos.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.