Software RAID 5 RAID Linux facile da espandere con XFS. Migliori pratiche?


13

Uso la mia macchina Ubuntu come file server per client Windows / Linux / Mac usando una condivisione Samba. Ho bisogno che sia facilmente espandibile aggiungendo semplicemente più dischi rigidi senza dover spostare i dati avanti e indietro.

È così che l'ho fatto finora. Ho aggiunto con successo un quarto disco rigido. Ora sarebbe bello sapere è come dovrebbe essere fatto? Cosa sto facendo di sbagliato o cosa potrei fare di meglio?

Creazione dell'array iniziale di 3 unità

Ho iniziato con tre unità vuote: / dev / sdb, / dev / sdc e / dev / sdd.

Innanzitutto ho creato partizioni vuote su tutte le unità:

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Quando sono state create partizioni RAID vuote su tutti e tre i dischi, ho creato un array RAID5:

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Ora l'array RAID5 è stato creato ed è già in costruzione. Ci vuole tempo, ma puoi procedere con la creazione di un nuovo volume fisico LVM2:

$ pvcreate /dev/md0

Ora creiamo un nuovo gruppo di volumi:

$ vgcreate vd_raid /dev/md0

Quindi è necessario creare un nuovo volume logico all'interno di quel gruppo di volumi. Per prima cosa dobbiamo capire la dimensione esatta del gruppo di volumi creato:

$ vgdisplay vg_raid

La dimensione può essere vista dalla riga che indica il "Total PE" in estensione fisica. Immaginiamo che sia 509. Ora crea un nuovo volume logico che occupi tutto lo spazio disponibile:

$ lvcreate -l 509 vg_raid -n lv_raid

Finalmente possiamo creare un file system in cima a quel volume logico:

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

Per poter utilizzare il nostro array RAID appena creato, dobbiamo creare una directory e montarla:

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

Ora è pronto per l'uso. Ma affinché si monti automaticamente dopo il riavvio, dobbiamo salvare la geometria RAID nel file di configurazione di mdadm:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Quindi aggiungere la seguente riga a / etc / fstab che monta automaticamente l'array RAID:

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

Ora l'array RAID è pronto per l'uso e montato automaticamente nella directory / raid dopo ogni avvio.

Aggiunta di una nuova unità all'array

Immaginiamo che ora tu abbia una nuova unità, / dev / sde, che vuoi aggiungere all'array creato in precedenza senza perdere alcun dato.

Innanzitutto la nuova unità deve essere partizionata come tutte le altre unità:

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Quindi deve essere aggiunto all'array RAID:

$ mdadm --add /dev/md0 /dev/sde1

Ora l'array RAID5 include quattro unità, di cui solo tre sono attualmente in uso. L'array deve essere espanso per includere tutte e quattro le unità:

$ mdadm --grow /dev/md0 --raid-devices=4

Quindi il volume fisico LVM2 deve essere espanso:

$ pvresize /dev/md0

Ora il volume fisico viene ridimensionato per impostazione predefinita per coprire tutto lo spazio disponibile nell'array RAID. Dobbiamo scoprire la nuova dimensione in termini fisici:

$ vgdisplay vg_raid

Immaginiamo che la nuova dimensione sia ora 764 (può essere visto da "Total PE"). Ora espandi il volume logico per coprire questo:

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

Quindi espandere il file system XFS. Questo deve essere fatto mentre il file system è online e montato:

$ xfs_grow /raid

Per impostazione predefinita, viene espanso per coprire tutto lo spazio disponibile. Infine, la geometria dell'array RAID deve essere aggiornata perché l'array ora include un nuovo disco. Prima cancella la riga aggiunta da /etc/mdadm/mdadm.conf e poi aggiungi una nuova:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
Non mettere partizioni sui tuoi dischi. Non è necessario: il rilevamento automatico RAID nel kernel (tipo di partizione fd) è obsoleto.
James,

Quindi, invece di creare partizioni di tipo 'fd' con fdisk, dovrei semplicemente creare l'array / dev / md0 su / dev / sdb, / dev / sdc e / dev / sdd direttamente?
Taskinen,

1
Ho sentito che non tutti i dischi hanno le stesse dimensioni, quindi se compro un nuovo disco da terabyte, potrebbe non avere esattamente le stesse dimensioni. Ciò introdurrebbe alcuni problemi?
Taskinen,

Risposte:


5

Penso che tu abbia capito bene. Assicurati di comprendere e seguire gli avvisi relativi alla crescita di RAID 5 in man 8 mdadm.

Personalmente se avessi fatto crescere un volume LVM, non avrei fatto crescere un array RAID esistente per farlo. Creerei un altro array RAID, ne creerei uno nuovo e lo aggiungerei allo stesso gruppo di volumi. Si tratta di un'operazione molto più sicura (non comporta la riscrittura dell'intero array RAID5 sul nuovo set di dischi) e riduce le dimensioni degli array.


Assolutamente d'accordo. vgextend è il tuo amico qui.
Dan Andreatta,

1
In generale capisco, ma per quanto riguarda la situazione in cui voglio far crescere l'array a tre dischi sopra menzionato in un array a quattro dischi. Non riesco a creare un nuovo array RAID dal solo quarto disco.
Taskinen,

1
Non espanderei l'array di dischi di un server di archiviazione un disco alla volta. Passare da un array a tre dischi a un array a quattro dischi ti darà solo il 50% di spazio in più, perché devi usare dischi della stessa dimensione.
Kamil Kisiel,

1
Concordato. Quando esaurisci lo spazio, le unità disco più grandi saranno scese di prezzo. Costruisci un secondo array RAID su un nuovo set di unità più grandi, quindi pvmove i tuoi vecchi dati su quello e rimuovi il vecchio set una volta che pvmove è terminato. Tutto ciò può essere fatto mentre i filesystem nei volumi logici interessati da pvmove sono in uso attivo.
flabdablet,
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.