Espandere un array Linux MD RAID 10 per utilizzare dischi più grandi


11

Da quello che ho capito questo è possibile, ma non riesco a trovare una risposta diretta da nessuna parte su come procedere esattamente, e non voglio rischiare di perdere i dati sperimentandoli da solo, quindi chiedo qui.

Ho un server di casa con cinque dischi che eseguono CentOS. Uno è un SSD che contiene il sistema operativo. I restanti quattro dischi sono hard disk da 4 TB configurati in RAID10 con mdraid. Il filesystem in uso è xfs.

Sto pensando di provare a sostituire i dischi da 4 TB con quelli da 8 TB. Cosa si deve fare esattamente per rendere possibile questa sostituzione senza dover riconfigurare un nuovo RAID e perdere dati?

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

Risposte:


14

Completare i seguenti passi per ciascun disco; sostituire /dev/sda1con altri dischi se necessario. È necessario completare tutti questi passaggi per un disco prima di poter passare al disco successivo.

  • Contrassegna il disco come non riuscito in modo che MD smetta di usarlo: mdadm --manage /dev/md127 --fail /dev/sda1
  • Rimuovere il disco dall'array: mdadm --manage /dev/md127 --remove /dev/sda1
  • Sostituisci fisicamente il disco.
  • Partizionare il nuovo disco usando type 0xDAcon una partizione che copre l'intero disco.
  • Aggiungi il nuovo disco all'array: mdadm --manage /dev/md127 --add /dev/sda1

MD ricostruirà l'array una volta aggiunto il disco sostitutivo. Assicurarsi che la ricostruzione sia completa prima di passare al disco successivo. È possibile verificare lo stato dell'array eseguendo cat /proc/mdstat.

Dopo aver sostituito tutti i dischi e ricostruito l'array, espandere l'array per riempire la capacità massima di tutti i dischi mdadm --grow /dev/md127 --size=max. È possibile ridimensionare il filesystem da lì per riempire il RAID espanso; nel tuo caso, usa il xfs_growfscomando

Ulteriori informazioni su come far crescere un array MD sono disponibili sul wiki RAID Linux .

Come per qualsiasi altra attività di manipolazione del disco, è necessario eseguire un backup prima di iniziare.


1
Forse aggiungi come controlli l'avanzamento della ricostruzione ->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
djsmiley2kStaysInside

2

Prima di tutto, vorrai scambiare ogni disco uno per uno.

Per fare ciò, "fallire" ogni disco e sostituirlo con la sua nuova sostituzione da 8 TB, infatti se si dispone delle porte di riserva, è possibile aggiungere dischi aggiuntivi, quindi disporre di "sostituisci" mdadm invece di rimuovere un disco da il raid e un rischio maggiore di fallimento.

Questa domanda descrive in dettaglio il modo migliore che posso trovare per farlo in modo "sicuro"

Una volta fatto questo, ti consigliamo di espandere semplicemente l'FS esistente nello spazio appena creato. Sembra che il comando per questo sia 'xfs_growfs', tuttavia non ho esperienza con xfs per spiegare come lo faresti esattamente.

Come sempre, i backup sono pronti (e il raid non è un backup!).


Essere allestito con un raid10 e ritirato, lo spazio extra sarebbe stato riconosciuto? Dovrei scambiarne due alla volta, uno per ogni coppia speculare?
Kefka,

Aggiungete lo spazio solo dopo aver scambiato tutti i dischi e quindi sì, verrà riconosciuto.
djsmiley2kStaysInside il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.