Converti raid software linux da raid5 a raid6


11

Al momento ho un file server con 3 dischi da 1,5 TB in un array RAID5. Dato che è praticamente pieno, ho ottenuto tre dischi aggiuntivi (anche 1,5 TB ciascuno).

Ora vorrei passare a RAID6 poiché lo spazio di 6 TB è sufficiente e mi piacerebbe avere una maggiore sicurezza di raid6. Mentre ho un backup completo - cioè potrei semplicemente creare un nuovo array e ripristinare il backup - Preferirei passare senza dover ripristinare un backup. È possibile e se sì, come?

Risposte:


9

La terminologia che stai cercando è una "migrazione a livello RAID".

Secondo questo , è possibile. Non l'ho fatto, ma la procedura sembra che dovresti aggiungere la nuova unità come hotspare all'array esistente, quindi utilizzare mdadm per aggiornare il livello di raid e il numero di dispositivi raid.

Avrai bisogno di un mdadm recente per farlo: mdadm-2.6.9 (ad es. Centos 5.x) non sembra supportarlo, ma mdadm-3.1.4 (ad es. Ubuntu 11.10) lo fa:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

Ad esempio, aggiungere prima un nuovo dispositivo hotspare, / dev / sdg, all'array RAID5:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Quindi convertire in un array RAID6 e farlo ricostruire in uno stato pulito. --Raid-devices 4 ti dice quante unità hai in totale nel nuovo array.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Non ho idea di quanto sarà veloce. Nella mia esperienza con le migrazioni a livello di raid su controller RAID hardware, è stato più veloce creare il nuovo array da zero e ripristinare il backup su di esso.


3
La migrazione di un RAID 5 su RAID 6 ha due operazioni lente: ri-striping dei dati sui dischi e calcolo del secondo valore di parità per il disco di parità aggiuntivo. La cancellazione / ripristino richiederà probabilmente lo stesso tempo del ridimensionamento.
Andrew

1
Richiede anche una certa versione del kernel. L'ho scoperto nel modo più duro.
Sirex,

Dato che sono su gentoo sia il mio kernel che mdadm sono versioni piuttosto recenti, quindi non dovrebbe essere un problema.
ThiefMaster

1
Il link a cui ti riferisci è stato scritto da me. Nota: non ho davvero letto i documenti su come farlo davvero, ho solo creato una macchina virtuale con 30 unità (qualcosa del genere) e ho iniziato a giocherellare. Quindi prendi tutti i post con un granello di sale, è solo un bel cervello ...
Martin M.

1
@ServerHorror: notato. La più ampia rete internet, inclusa la pagina man di mdadm, afferma che è possibile la migrazione a livello di raid. :)
Daniel Lawson,

7

Avviso obbligatorio: pianificare un errore. Tenere pronto un backup e tenere conto dei possibili tempi di inattività.

Inoltre, provalo in una VM o qualcosa di simile prima, questo è dalle mie note e non lo faccio da molto tempo. Questo potrebbe essere incompleto.

  1. Sarà necessario addi dischi dell'array:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Fallo per ciascuno dei tre dischi e sostituisci i nomi dei dispositivi di conseguenza.

  2. Fai crescere l'array:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    

3

Utilizzare l' --backup-fileopzione, quindi in caso di interruzione dell'alimentazione è possibile continuare a far crescere il dispositivo dopo un riavvio e assicurarsi che non vi siano perdite di dati.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

Il file di backup deve essere salvato su un filesystem che non fa parte dell'array che si intende coltivare.

--backup-file=è necessario quando --growviene utilizzato per aumentare il numero di dispositivi RAID in un RAID5 o RAID6 se non ci sono dispositivi di riserva disponibili o per ridurre, modificare il livello o il layout RAID. Vedere la sezione MODALITÀ CRESCITA di seguito in MODIFICHE DEI DISPOSITIVI RAID. Il file deve essere archiviato su un dispositivo separato, non sull'array RAID da rimodellare.

--continueè complementare --freeze-reshapeall'opzione per il montaggio. È necessario quando l' --growoperazione viene interrotta e non viene riavviata automaticamente a causa --freeze-reshapedell'utilizzo durante l'assemblaggio dell'array. Questa opzione viene utilizzata insieme al comando -G, ( --grow) e al dispositivo per continuare la rimodulazione in sospeso. Tutti i parametri richiesti per la continuazione della risagoma verranno letti dai metadati dell'array. Se il --growcomando iniziale aveva richiesto l' --backup-file=opzione da impostare, anche l'opzione di continuazione dovrà avere esattamente lo stesso file di backup fornito.

Qualsiasi altro parametro passato insieme --continueall'opzione verrà ignorato.

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.