La configuración:dos unidades físicas de un RAID 1 (espejo) se reemplazarán con dos unidades de mayor capacidad, haremos un reemplazo "en caliente" directamente desde el sistema operativo en ejecución, sin la necesidad de iniciar desde un medio de inicio externo. Esta guía ha sido probada en las distribuciones Debian 6, 7, 8 tanto de 32 como de 64 bits.
Suponemos que las dos unidades están particionadas con una partición raíz y 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 forman el volumen md1 (swap)
Primero, haga una copia de seguridad de todos sus datos, incluso si la guía se ha probado varias veces, la mala suerte sigue ahí ... Proporcionamos (en mi opinión, la mejor solución) para un reemplazo, desconectamos uno de los dos antiguos unidades con la máquina apagada, luego conecte una nueva unidad temporal, luego vuelva a sincronizar, por lo que aún tendremos el RAID funcionando y una sola unidad (con RAID en modo degradado) y aún puede recrear un RAID en funcionamiento si algo no funciona. Para hacer esto, simplemente escriba estos comandos después de reemplazar el disco lleno por uno 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)
Repita las dos últimas líneas para cada RAID/partición del sistema
(por ejemplo:
mdadm -add /dev/md0 /dev/sdb1
entonces
mdadm -add /dev/md1 /dev/sdb2
etc..
De esta forma, forzamos la tabla de particiones desde la unidad de origen hasta el destino vacío y luego la añadimos al RAID.
Obviamente hay que esperar hasta el final del proceso de reconstrucción, supervisado por:
watch cat / pro / mdstat
(Y por supuesto CTRL + C para salir del proceso)
Apagamos la máquina en este punto, agregamos dos discos nuevos, que se convierten respectivamente en sdc y sdd, luego iniciamos el servidor y ejecutamos el comando:
fdisk -l
El resultado debería ser similar a esto:
Disk /dev/sda: ……MB , ………….Bytes
… heads, …sectors/track , ….. cylinders
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk: identifier : ………..
Device boot Start End Blocks Id System
/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
……
Disk /dev/sdc: …Mb, …….Bytes
……
Disk /dev/sdd: …Mb, …….Bytes
……
Disk /dev/md0: …Mb, …….Bytes
…...
Disk /dev/md1: …Mb, …….Bytes
Ahora, escribe:
fdisk /dev/sdc
creamos una nueva partición con la n mando,
seleccionamos p partición primaria,
seleccionamos el número de partición (1 ,2,3, etc...),
seleccionamos el cilindro de partida (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 )
lo hacemos booteable con el comando a , seleccionando el mismo número de partición.
cambiamos el ID de partición en "fd " (Linux Raid Autodetect) con t , y escribiendo como código hexadecimal, solo "fd "
Luego repetimos TODOS los comandos para la segunda partición (la partición será el swap).
Guardaremos los cambios con w.
Obviamente, preste atención al tamaño de las particiones. La mejor solución es restar el tamaño de intercambio actual del total del espacio libre para crear la partición de trabajo con el espacio más amplio posible.
Ahora realizaremos exactamente las mismas operaciones en la unidad 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 "lleno" y el primer disco nuevo, agregando este último como repuesto al RAID:
mdadm -add /dev/md0 /dev/sdc1
Luego deberíamos verificar la situación del disco raid, debería ser así:
md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
………blocks super 1.2 [2/2] [UU]
Luego ponemos la unidad original:
mdadm -f /dev/md0 /dev/sda1
y elimínelo del RAID:
mdadm -r /dev/md0 /dev/sda1
Ahora 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 la nueva unidad (/dev/sdc):
grub-install /dev/sdc
El mismo proceso solo tiene que repetirse para cada una de las particiones del sistema:
mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1
Y esperamos de nuevo hasta que termine la reconstrucción:
watch cat /proc/mdstat
(Y por supuesto CTRL + C para salir del proceso)
A continuación, realice el mismo procedimiento para la primera partición de intercambio de dos unidades nuevas:
mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2
Espere de nuevo 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/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2
Espere de nuevo hasta que haya terminado la reconstrucción:
watch cat /proc/mdstat
(Y por supuesto CTRL + C para salir del proceso)
En este punto, reinstale el gestor de arranque en ambas unidades:
grub-install /dev/sdc
grub-install /dev/sdd
En este punto nos encontramos con la unidad antigua expulsada del RAID y las nuevas unidades instaladas y operativas. Pero con el espacio utilizable por debajo del máximo permitido por la partición
Luego se procede con la ampliación de la partición y la verificación de la misma, como es habitual para ambos volúmenes:
mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev(md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1
Cuando termine, apague la PC, desvincule las unidades antiguas y reinicie la máquina.
Incluso si el reinicio funcionaba, reconstruimos el grub por razones de seguridad ya que el lanzamiento de la nueva unidad habrá tomado el nombre de la anterior (sda y sdb):
mv /boot/grub/device.map/boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb
Si quiere estar absolutamente seguro de que la nueva configuración de incursión está funcionando, apague la máquina, desconecte una de las nuevas unidades y comience de nuevo. Debería empezar sin problemas. Luego, apague nuevamente, conecte la unidad y comience. Puede usar este comando para verificar el estado de la redada.
watch cat /proc/mdstat
(Y por supuesto CTRL + C para salir del proceso)
Terminamos la obra, festejamos .