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