Expanda una matriz Linux MD RAID 10 para usar discos más grandes


11

Por lo que entiendo, esto es posible, pero no puedo encontrar una respuesta directa en ninguna parte sobre cómo hacerlo exactamente, y no quiero arriesgarme a perder datos experimentando con ellos, así que pregunto aquí.

Tengo un servidor doméstico con cinco discos que ejecutan CentOS. Uno es un SSD con 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 con discos de 8TB. ¿Qué se necesita hacer exactamente para que este reemplazo suceda 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

Respuestas:


13

Complete los siguientes pasos para cada disco; reemplazar /dev/sda1con otros discos según sea necesario. Debe completar todos 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
  • Reemplazar físicamente el disco.
  • Particione el nuevo disco usando el tipo 0xDAcon una partición que abarca 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 se haya completado antes de continuar con el siguiente disco. Puede verificar el estado de la matriz ejecutando cat /proc/mdstat.

Una vez que se hayan reemplazado todos los discos y se haya reconstruido la matriz, expanda la matriz para llenar la capacidad máxima de todos los discos mdadm --grow /dev/md127 --size=max. Puede cambiar el tamaño del sistema de archivos desde allí para llenar el RAID expandido; en su caso, use el xfs_growfscomando.

Más información sobre cómo hacer crecer una matriz MD está disponible en la wiki RAID de Linux .

Al igual que con cualquier otra tarea de manipulación de disco, debe realizar una copia de seguridad antes de comenzar.


1
Tal vez agregue cómo verifica el progreso de la reconstrucción ->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2k

2

Desea cambiar cada disco uno por uno en primer lugar.

Para hacer esto, 'fallaría' cada disco, y lo reemplazaría con su nuevo reemplazo de 8Tb, de hecho, si tiene los puertos de repuesto, puede agregar los discos adicionales, luego tener mdadm 'reemplazar' en lugar de quitar un disco de la incursión y tener un mayor riesgo de fracaso.

Esta pregunta detalla la mejor manera que puedo encontrar de hacerlo 'de manera segura'

Una vez que hayas hecho esto, deberás simplemente 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 cómo exactamente harías esto.

Como siempre, tenga copias de seguridad listas (¡y la incursión no es una copia de seguridad!).


Al estar configurado con un raid10 y mdraid, ¿se reconocería incluso el espacio adicional? ¿Debo cambiar dos a la vez, una de cada par reflejado?
Kefka

Solo agrega el espacio después de intercambiar todos los discos, y luego sí, se reconocerá.
djsmiley2k
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.