RAID 5 logiciel Linux facile à étendre avec XFS. Les meilleures pratiques?

13

J'utilise ma machine Ubuntu comme serveur de fichiers pour les clients Windows / Linux / Mac utilisant un partage Samba. J'ai besoin qu'il soit facilement extensible en ajoutant simplement plus de disques durs sans avoir à déplacer les données d'avant en arrière.

C'est ainsi que je l'ai fait jusqu'à présent. J'ai ajouté avec succès un quatrième disque dur. Maintenant, il serait bon de savoir comment procéder. Qu'est-ce que je fais mal ou qu'est-ce que je pourrais faire mieux?

Création de la matrice initiale de 3 disques

J'ai commencé avec trois disques vides: / dev / sdb, / dev / sdc et / dev / sdd.

J'ai d'abord créé des partitions vides sur tous les disques:

$ 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

Lorsque des partitions RAID vides ont été créées sur les trois disques, j'ai créé une matrice RAID5:

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

Maintenant, la matrice RAID5 est créée et elle est déjà en cours de construction. Cela prend du temps, mais vous pouvez créer un nouveau volume LVM2 physique:

$ pvcreate /dev/md0

Créons maintenant un nouveau groupe de volumes:

$ vgcreate vd_raid /dev/md0

Ensuite, nous devons créer un nouveau volume logique à l'intérieur de ce groupe de volumes. Nous devons d'abord déterminer la taille exacte du groupe de volumes créé:

$ vgdisplay vg_raid

La taille peut être vue à partir de la ligne qui indique le "PE total" en étendue physique. Imaginons qu'il s'agisse de 509. Créez maintenant un nouveau volume logique qui prend tout l'espace disponible:

$ lvcreate -l 509 vg_raid -n lv_raid

Enfin, nous pouvons créer un système de fichiers au-dessus de ce volume logique:

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

Pour pouvoir utiliser notre nouvelle matrice RAID, nous devons créer un répertoire et le monter:

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

Maintenant, il est prêt à l'emploi. Mais pour qu'il se monte automatiquement après le redémarrage, nous devons enregistrer la géométrie RAID dans le fichier de configuration de mdadm:

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

Ajoutez ensuite la ligne suivante à / etc / fstab qui monte automatiquement la matrice RAID:

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

Maintenant, la matrice RAID est prête à l'emploi et montée automatiquement dans le répertoire / raid après chaque démarrage.

Ajout d'un nouveau lecteur à la baie

Imaginons que vous ayez maintenant un nouveau lecteur, / dev / sde, que vous souhaitez ajouter au tableau créé précédemment sans perdre de données.

Tout d'abord, le nouveau lecteur doit être partitionné comme tous les autres lecteurs:

$ 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

Ensuite, il doit être ajouté à la matrice RAID:

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

Maintenant, la matrice RAID5 comprend quatre disques, dont seulement trois sont actuellement utilisés. La baie doit être étendue pour inclure les quatre disques:

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

Ensuite, le volume physique LVM2 doit être étendu:

$ pvresize /dev/md0

Le volume physique est maintenant redimensionné par défaut pour couvrir tout l'espace disponible dans la matrice RAID. Nous devons découvrir la nouvelle taille en termes physiques:

$ vgdisplay vg_raid

Imaginons que la nouvelle taille soit maintenant de 764 (peut être vue depuis "Total PE"). Développez maintenant le volume logique pour couvrir ceci:

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

Développez ensuite le système de fichiers XFS. Cela doit être fait pendant que le système de fichiers est en ligne et monté:

$ xfs_grow /raid

Par défaut, il est étendu pour couvrir tout l'espace disponible. Enfin, la géométrie de la matrice RAID doit être mise à jour car la matrice comprend désormais un nouveau disque. Supprimez d'abord la ligne ajoutée dans /etc/mdadm/mdadm.conf, puis ajoutez-en une nouvelle:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Taskinen
la source
3
Ne placez pas de partitions sur vos disques. Pas besoin de le faire - l'autodétection RAID dans le noyau (type de partition fd) est déconseillée.
James
Donc, au lieu de créer des partitions de type 'fd' avec fdisk, je devrais simplement créer le tableau / dev / md0 sur / dev / sdb, / dev / sdc et / dev / sdd directement?
Taskinen
1
J'ai entendu dire que tous les disques n'ont pas la même taille, donc si j'achète un nouveau disque de téraoctets, il se peut qu'il ne soit pas exactement de la même taille. Cela introduirait-il des problèmes?
Taskinen

Réponses:

5

Je pense que vous avez raison. Assurez-vous de comprendre et de tenir compte des avertissements concernant la croissance de RAID 5 dans man 8 mdadm.

Personnellement, si j'augmentais un volume LVM, je ne ferais pas croître une matrice RAID existante pour le faire. Je créerais une autre matrice RAID, créerais une nouvelle physvol et l'ajouterais au même groupe de volumes. Il s'agit d'une opération beaucoup plus sûre (n'implique pas la réécriture de l'ensemble de la matrice RAID5 sur le nouvel ensemble de disques) et réduit la taille de vos baies.

Kamil Kisiel
la source
Tout à fait d'accord. vgextend est votre ami ici.
Dan Andreatta
1
En général, je comprends, mais qu'en est-il de la situation où je souhaite développer la matrice de trois disques mentionnée ci-dessus en une matrice de quatre disques. Je ne peux pas créer une nouvelle matrice RAID à partir du quatrième disque uniquement.
Taskinen
1
Je ne voudrais pas étendre la matrice de disques d'un serveur de stockage un disque à la fois. Passer d'une baie à trois disques à une baie à quatre disques ne vous donnera que 50% de stockage supplémentaire, car vous devez utiliser des disques de même taille.
Kamil Kisiel
1
D'accord. Au moment où vous manquez d'espace, les disques plus gros auront baissé de prix. Construisez une deuxième matrice RAID sur un nouvel ensemble de disques plus gros, puis déplacez vos anciennes données vers celui-ci et désactivez l'ancien ensemble une fois le pvmove terminé. Tout cela peut être fait pendant que les systèmes de fichiers des volumes logiques affectés par pvmove sont en cours d'utilisation.
flabdablet