Aggiunta di unità a un array RAID 10


11

Come potrei far crescere un array RAID10 usando mdadm?

Ovviamente avrei bisogno di aggiungere 2 unità alla volta o dovrebbero essere 4 unità?

Ho la sensazione che sia solo una cattiva idea.

O sarebbe solo più saggio optare per RAID5?


Di solito, se qualcuno mi chiede se ha bisogno di RAID 10, significa che non ne ha bisogno. Perché non Raid 5 o Raid 6?
surfasb,

Speravo in prestazioni di scrittura migliori rispetto a RAID5 .. Ma immagino che la mancanza di flessibilità le regole fuori ..
stuartc

In generale, RAID 5/6 fornirà prestazioni di scrittura migliori rispetto a RAID 10/01. Perché stai distribuendo le scritture su tutte le unità rispetto a solo metà delle unità.
surfasb,

6
@surfasb "RAID 5/6 fornirà migliori prestazioni di scrittura rispetto a RAID 10" no, perché la distribuzione delle scritture su più unità è più che

@JackDouglas: ottime informazioni.
surfasb

Risposte:


5

L'ultima volta che ho controllato, mdadm non ti lascerà --grow raid10. Ho dato un'occhiata alla manpage di mdadm ora e dice ancora: Opzioni di crescita attualmente supportate, tra cui la modifica della dimensione attiva dei dispositivi componenti e il numero di dispositivi attivi nei livelli RAID 1/4/5/6, cambiando il livello RAID tra 1, 5, e 6, modificando la dimensione e il layout del blocco per RAID5 e RAID5, nonché aggiungendo o rimuovendo una bitmap con intento di scrittura.


Grazie! Apprezzato, anche un altro buon suggerimento che non accadrà rapidamente è che non riesco a trovare una scheda RAID hardware che lo faccia .. RAID5 è ..
stuartc

2
RAID5 può essere dolorosamente lento su alcuni carichi di lavoro. Che cosa hai intenzione di fare?
Stingray,

Soprattutto solo per l'archiviazione di supporti, ma anche il montaggio di una condivisione NFS per il fotoritocco, quindi speravo in alcune buone velocità di scrittura e letture.
stuartc,

16

Per far crescere RAID 10 è necessario mdadm nella versione min. 3.3 e versione del kernel min 3.5. È necessario anche un numero pari di dischi: quelli non accoppiati possono funzionare solo come riserva o, alla fine, per passare alla modalità degradata (non testata).

Ecco l'esempio della crescita di RAID 10 da 4 unità a 6 utilizzando mdadm 3.3-2ubuntu2 @ Linux 4.2.0-10-generico. Testato con dati ext4 su di esso, il filesystem è stato smontato, ext4 è stato esteso dopo la crescita del RAID senza alcun problema.

~$ cat /proc/mdstat
md126 : active raid10 sdd1[1] sdc1[0] sdf1[3] sde1[2]
976428032 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk

~$ sudo mdadm /dev/md126 --add /dev/sdi1 /dev/sdj1
mdadm: added /dev/sdi1
mdadm: added /dev/sdj1
~$ sudo mdadm --grow /dev/md126 --raid-devices=6

~$ cat /proc/mdstat
md126 : active raid10 sdj1[5] sdi1[4] sdd1[1] sdc1[0] sdf1[3] sde1[2]
1464642048 blocks super 1.2 512K chunks 2 near-copies [6/6] [UUUUUU]
bitmap: 0/6 pages [0KB], 131072KB chunk

1
Questa dovrebbe essere la risposta accettata al giorno d'oggi. L'ho fatto da solo.
Kyle

come mi sono appena scoperto nel modo più duro, questo vale solo per i layout raid 10, near2. raid10, far2 è ancora non coltivabile. vedi cioè qui: wiki.archlinux.org/index.php/RAID#Nested_RAID_levels
gabtub

9

Mi rendo conto che ha più di un anno, ma qualcuno potrebbe trovarlo utile ...

Puoi espandere un array raid 10, ma non come speri. Dovresti nidificare più livelli di raid. Questo può essere fatto con mdadm su 2 unità nel raid 10, che offre prestazioni abbastanza buone a seconda del layout, ma dovresti creare più array 2 raid 10 su disco, quindi collegarli al nodo logico. Quindi per espanderne aggiungerne un altro, e strisciare su quello. Se questo è il tuo caso d'uso (che ha bisogno di espandersi molto), allora sarebbe saggio usare un array di parità, che può essere cresciuto.

Queste sono le limitazioni che si ottengono con il raid 10, pur mantenendo nel complesso migliori prestazioni di lettura / scrittura. E un chiarimento, il raid 5/6 assolutamente non "In generale, fornisce prestazioni di scrittura migliori ...". Raid 5/6 ha i suoi rispettivi pro / contro, proprio come il raid 10, ma la performance in scrittura non è un pro per il raid 5/6.

Inoltre, non hai specificato le dimensioni delle tue unità ma fai attenzione al raid 5 su nuove unità di grandi dimensioni. Tuttavia, se si fa attenzione, è possibile recuperare da un errore di lettura irrecuperabile, si rischiano tempi di inattività e la possibilità di non riuscire a recuperare affatto.

--edit per aggiungere informazioni - Usa strumenti come hdparm (hdparm -i) e lshw per ottenere i numeri di serie insieme al nome del dispositivo (/ dev / sda) quando hai un errore. Questo ti assicurerà di rimuovere il dispositivo corretto durante la sostituzione. Freccia in alto sul commento di Travis in quanto è molto corretto e un layout piacevole, ma come al solito, pondera i pro ei contro di ogni soluzione.


9

Alcune grandi notizie dall'annuncio del rilascio di mdadm 3.3:

Questa è una nuova versione importante, quindi non essere troppo sorpreso se ci sono alcuni problemi ...

Alcuni punti salienti sono:

...

  • Gli array RAID10 possono essere rimodellati per cambiare il numero di dispositivi , cambiare la dimensione del blocco o cambiare il layout tra 'vicino' e 'offset'. Questo cambierà sempre data_offset e fallirà se non c'è spazio per spostare data_offset.

...

Secondo questa risposta su U&L, avrai bisogno di almeno Linux 3.5.


3
Ho sperimentato la crescita di mdadm raid10 usando mdadm v3.3.2 con risultati contrastanti. Ho scoperto che non potevo far crescere un raid10 che avevo creato con una versione precedente di mdadm. Un raid10 creato con v3.3, sono stato in grado di rimodellare / crescere. Quindi, se ti trovi nella situazione di voler far crescere un raid10 (ma non ci riesci), potrebbe essere una buona idea creare il nuovo raid10 usando l'ultimo mdadm.
adalle,

6

So che è più lavoro e potrebbe creare confusione, ma puoi sempre rimuovere più mirror.

Ad esempio, ho appena impostato un array 10 raid 10 unità e quest'ultimo voglio aggiungere un altro array 10 raid 10 unità. Basta usare mdadm per creare un nuovo array raid 10 sulle nuove unità. È quindi possibile creare un altro array raid 0 utilizzando i due dispositivi raid esistenti. Comunque userei le funzionalità di lvm per creare lo stripe, mantenendo così le configurazioni mdadm e / dev / md in uno stato di facile comprensione. Entrambi i metodi funzionerebbero, e probabilmente ce ne sono molti altri, ma è quello che potrei fare in testa.


Ottimo modo di gestire un set di dati in crescita, molto più semplice della maggior parte. La parte complicata è tenere traccia di quali unità hanno fallito in quale set di mirror. Sì, ottimo suggerimento!
stuartc,

3

Non è possibile far crescere un array RAID10, questo è vero. Ma puoi iniziare con due unità (al costo di nessuna ridondanza a questo punto) e successivamente aggiungere altre due. Ho usato questo metodo per passare da un array RAID5 con quattro unità disco a RAID10 con quattro unità disco.

Ho degradato RAID5 e rimosso un disco dall'array. Questo mi ha dato due dischi che erano liberi di usare. Quindi ho creato un array RAID10 con qualcosa simile a "mdadm --create --level 10 / dev / md0 / dev / sda1 missing / dev / sdc1 missing". Questo è stato sufficiente per avviare l'array.

Quando ho spostato i dati dall'array RAID5 degradato all'array RAID10, ho aggiunto due dei dischi RAID5 all'array RAID10 e ne ho aggiunto uno in più.

Probabilmente è una buona idea se qualcuno che è più esperto di quanto io possa parlare di qualsiasi impatto sulle prestazioni che ciò potrebbe aver avuto. Ma il motivo principale del mio post è dimostrare che è possibile iniziare con RAID10 e due unità.

Nota: leggi il seguente post sul forum che chiede e risponde se l'ordine del disco in mdadm è importante .

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.