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?
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?
Risposte:
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.
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
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.
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.
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.
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 .