Qual è la differenza tra la creazione dell'array mdadm utilizzando direttamente le partizioni o l'intero disco


26

Qualcuno può spiegarmi, qual è la differenza tra la creazione di mdadmarray utilizzando direttamente le partizioni o l'intero disco? Supponendo che intendo utilizzare tutte le unità. Si noti che sono con GPT.

Immagina RAID6 creato in due modi:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

o:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

C'è una differenza?

EDIT1: intendo ad esempio affidabilità o gestibilità o operazioni di recupero su tali array, ecc.

EDIT2: utilizzo drive di produttori diversi. Ma questa non è davvero la domanda. Hanno tutte le stesse dimensioni, capisco, potrebbero esserci produttori che producono unità di dimensioni leggermente diverse. Ma per il bene di questa domanda, supponiamo che abbiano le stesse dimensioni.

EDIT3: sorta di dichiarazione di non responsabilità: finora ho sempre partizionato le unità.


2
Sono sempre stato curioso di questo, ma non ho mai chiesto a nessuno. Una differenza che vedo è che usando i dischi partizionati (sda1, ecc.) Si ottiene un po 'meno spazio su disco (alcuni KB) poiché GPT riserva dello spazio per le informazioni sulla partizione.
GMaster,

Risposte:


25

La differenza più importante è che ti consente di aumentare la flessibilità per la sostituzione del disco. È meglio dettagliato di seguito insieme a una serie di altre raccomandazioni.

Si dovrebbe considerare di utilizzare una partizione anziché l'intero disco. Ciò dovrebbe rientrare nelle raccomandazioni generali per la configurazione di un array e potrebbe sicuramente risparmiarti alcuni mal di testa in futuro quando saranno necessarie ulteriori sostituzioni del disco.

Gli argomenti più importanti sono:

I dischi di produttori diversi (o anche modelli diversi della "stessa" capacità dello stesso produttore) non hanno necessariamente la stessa dimensione del disco esatto e, anche la differenza di dimensione più piccola, ti impedirà di sostituire un disco guasto con uno nuovo se il secondo è più piccolo del primo. Il partizionamento ti consente di risolvere il problema;

Nota a margine sul perché usare dischi di produttori diversi: i dischi falliranno, non si tratta di un "se" ma di un "quando". I dischi dello stesso produttore e dello stesso modello hanno proprietà simili e quindi maggiori possibilità di errore insieme nelle stesse condizioni e tempi di utilizzo. Il suggerimento è quindi quello di utilizzare dischi di produttori diversi, modelli diversi e, in particolare, che non appartengono allo stesso lotto (considerare l'acquisto da negozi diversi se si acquistano dischi dello stesso produttore e modello). Ciò non è raro che si verifichi un secondo errore del disco durante un resotre dopo una sostituzione del disco quando vengono utilizzati dischi dello stesso batch. Certamente non vuoi che questo ti accada.

Quindi i consigli:

1) Partizionare i dischi che verranno utilizzati con una capacità leggermente inferiore rispetto allo spazio su disco complessivo (ad esempio, ho un array RAID5 di dischi da 2 TB e li ho partizionati intenzionalmente sprecando circa 100 MB in ciascuno). Quindi, usa / dev / sd? 1 di ciascuno per comporre l'array - Questo aggiungerà un margine di sicurezza nel caso in cui un nuovo disco sostitutivo abbia meno spazio di quelli originali usati per assemblare l'array quando è stato creato;

2) Utilizzare dischi di produttori diversi;

3) Utilizzare dischi di modelli diversi se produttori diversi non sono un'opzione per te;

4) Utilizzare dischi di lotti diversi;

5) Sostituire in modo proattivo i dischi prima che si guastino e non tutti contemporaneamente. Questo può essere un po 'paranoico e dipende davvero dalla critica dei dati che hai. Uso dischi con differenze di età di 6 mesi tra loro;

6) Eseguire backup regolari (sempre, indipendentemente dal fatto che si usi o meno un array). Raid non ha lo stesso scopo dei backup. Gli array assicurano un'elevata disponibilità, i backup consentono di ripristinare i file persi (compresi quelli che vengono accidentalmente eliminati o danneggiati da virus, alcuni esempi di qualcosa che l'utilizzo di array non ti protegge da).

OBS: Tranne tutto il razionale non trascurabile sopra, non ci sono molte altre differenze tecniche tra l'uso di / dev / sd? vs / dev / sd? #.

In bocca al lupo


Questo è per lo più non correlato ...
user1133275

Tuttavia, suppongo che l'avvertimento di @Kalavan si riferisca all'uso di più partizioni nello stesso disco dei componenti di un array. Ciò non avrebbe certamente molto senso in quanto rimuove la ridondanza. Sappiamo, tuttavia, che questa non era l'intenzione della tua domanda, il suo avvertimento ha comunque senso.
Marcelo,

Se la gestione manuale delle partizioni sembra essere una seccatura, si dovrebbe usare sfdisk -d src | sfdisk tgtosgdisk --backup && sgdisk --load-backup
andyn

7

Un altro argomento importante è che alcune schede madri potrebbero eliminare i superblocchi RAID se si utilizzano interi dispositivi a disco e non si è molto attenti a cancellarli quando si aggiungono dischi a un array RAID che una volta erano dispositivi GPT.

L'ho imparato a mie spese, quando la UEFI della mia scheda madre ASRock ha reso il mio RAID inutilizzabile:

Per proteggerti da ciò, esegui sempre sgdisk --zapsu un disco precedentemente formattato GPT che desideri utilizzare per un RAID di tutto il dispositivo.

wipefs -a potrebbe anche funzionare per cancellare tutti i tipi di informazioni di partizionamento rimanenti (non solo GPT) prima di aggiungere il dispositivo al disco.


Detto questo, usare solo le partizioni sembra una buona pratica per rendere meno probabile che ciò accada .

Non ho mai saputo quali fossero i veri argomenti per questa best practice (al di là della risposta di @ Marcelo che spiega che può gestire dischi di dimensioni leggermente diverse). Adesso lo so.

A proposito, se questo accade a te, i tuoi dati non andranno persi. Molto probabilmente puoi solo sgdisk --zapil dispositivo e quindi ricreare il RAID con ad esempio mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd(mdadm ti dirà che rileva già i dati passati e ti chiederà se vuoi continuare a riutilizzarli). L'ho provato più volte e ha funzionato, ma consiglio comunque di fare un backup prima di farlo.


2

Ci sono un paio di post che citano problemi con l'utilizzo dell'intero dispositivo come membro RAID anziché partizione, uno qui . Posso confermare che è il caso.

Quindi, se si crea il RAID utilizzando l'intero dispositivo (ad esempio, /dev/sda, /dev/sdb, ... invece che su /dev/sda1, /dev/sdb1, ...) il dispositivo RAID non lo fa rimontare dopo un riavvio, anche se si dispone di configurazione salvata sotto mdadm.conf. Esiste anche la possibilità di sovrascrivere il firmware della scheda madre o rimuovere il superblocco RAID. Nella mia configurazione, l'esecuzione mdadm --assemble --scan --verbosenon mi ripristina la configurazione RAID e sembra che il superblocco RAID non sia disponibile.


Ho testato la configurazione RAID1 utilizzando unità da 2x10 GB all'interno di VirtualBox. RAID è stato creato su tutto il dispositivo e si sta riassemblando bene dopo il riavvio. Il problema potrebbe essere applicabile solo ai dispositivi fisici.
Lungten

0

Per salvarti dai futuri mal di testa, usa le partizioni. Tutte le unità non funzionano, non si tratta di "if" ma di "when". Se si utilizzano unità intere, quindi dopo un guasto dell'unità, è necessario sostituirlo con lo stesso modello di dimensioni. Anche qualche MB in più, a causa di produttori diversi, o modifiche del processo, qualunque cosa, causerà il fallimento della sostituzione dell'unità.

Usando le partizioni, quando una delle tue attuali unità da 2 TB si guasta, ottieni una sostituzione di 4 TB (o qualsiasi altra cosa, deve solo essere più grande), quindi crea la stessa dimensione di partizione da 2 TB su di essa. Sì, potresti sprecare spazio su quel nuovo disco di grandi dimensioni. L'uso del resto di quell'unità come partizione non raid può essere possibile, ma potrebbe influire sulle prestazioni in modi strani. Dopo diversi guasti e sostituzioni dell'unità, alla fine sostituirai tutte le tue unità da 2 TB originali e ora avrai la possibilità di estendere l'array RAID per utilizzare dimensioni di partizione più grandi.

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.