Por lo que tengo entendido, esto es posible, pero no puedo encontrar una respuesta directa en ninguna parte sobre cómo hacerlo exactamente, y no quiero correr el riesgo de perder datos al experimentar con ello yo mismo, así que pregunto aquí.
Tengo un servidor doméstico con cinco discos que ejecutan CentOS. Uno es un SSD que contiene el sistema operativo. Los cuatro discos restantes son discos duros de 4 TB configurados en RAID10 con mdraid. El sistema de archivos en uso es xfs.
Estoy considerando intentar reemplazar los discos de 4TB por otros de 8TB. ¿Qué se debe hacer exactamente para que se realice este reemplazo sin tener que reconfigurar un RAID nuevo y perder datos?
Details output:
[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Mon Apr 18 12:46:24 2016
Raid Level : raid10
Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jun 13 11:04:41 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : fluttershy:data (local to host fluttershy)
UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
Events : 13440
Number Major Minor RaidDevice State
0 8 1 0 active sync set-A /dev/sda1
1 8 17 1 active sync set-B /dev/sdb1
2 8 33 2 active sync set-A /dev/sdc1
3 8 49 3 active sync set-B /dev/sdd1
Respuesta1
Complete los siguientes pasos para cada disco; reemplácelo /dev/sda1
con otros discos según sea necesario. Debes completartodode estos pasos para un disco antes de poder continuar con el siguiente disco.
- Marque el disco como fallido para que MD deje de usarlo:
mdadm --manage /dev/md127 --fail /dev/sda1
- Retire el disco de la matriz:
mdadm --manage /dev/md127 --remove /dev/sda1
- Reemplace físicamente el disco.
- Particione el nuevo disco usando el tipo
0xDA
con una partición que abarque todo el disco. - Agregue el nuevo disco a la matriz:
mdadm --manage /dev/md127 --add /dev/sda1
MD reconstruirá la matriz una vez que agregue el disco de reemplazo. Asegúrese de que la reconstrucción esté completaantespasa al siguiente disco. Puede verificar el estado de la matriz ejecutando cat /proc/mdstat
.
Una veztodoSi se reemplazan algunos de los discos y se reconstruye la matriz, expanda la matriz para llenar la capacidad máxima de todos los discos con mdadm --grow /dev/md127 --size=max
. Puede cambiar el tamaño del sistema de archivos desde allí para llenar el RAID expandido; en tu caso, usa el xfs_growfs
comando.
Más información sobre cómo hacer crecer una matriz MD está disponible en elWiki RAID de Linux.
Al igual que con cualquier otra tarea de manipulación del disco, debes realizar una copia de seguridad antes de comenzar.
Respuesta2
Primero querrás cambiar cada disco uno por uno.
Para hacer esto, "fallaría" cada disco y lo reemplazaría con su nuevo reemplazo de 8 TB; de hecho, si tiene los puertos de repuesto, puede agregar los discos adicionales y luego hacer que mdadm "reemplace" en su lugar en lugar de quitar un disco de la redada y tener un mayor riesgo de fracaso.
Esta pregunta detalla la mejor manera que puedo encontrar de hacerlo "de forma segura".
Una vez que haya hecho esto, simplemente querrá expandir el FS existente al espacio recién creado. Parece que el comando para esto es 'xfs_growfs', sin embargo, no tengo experiencia con xfs para explicar exactamente cómo se haría esto.
Como siempre, tenga copias de seguridad listas (¡y raid no es una copia de seguridad!).