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


J'utilise ma machine Ubuntu en tant que 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 aucune donnée.

C'est comme ça 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 est-ce que cela devrait être fait? Qu'est-ce que je fais mal ou ce que je pourrais faire mieux?

Création du groupe de 3 lecteurs initial

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

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

$ 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 construction. Cela prend du temps, mais vous pouvez créer un nouveau volume physique LVM2:

$ 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 dans 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" dans les étendues physiques. Imaginons 509. Maintenant, créez un nouveau volume logique qui occupe tout l'espace disponible:

$ lvcreate -l 509 vg_raid -n lv_raid

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

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

Pour pouvoir utiliser notre matrice RAID nouvellement créée, 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 à être utilisé. Mais pour qu'il 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

La matrice RAID est maintenant prête à être utilisée et montée automatiquement dans le répertoire / raid après chaque démarrage.

Ajout d'un nouveau lecteur à la matrice

Imaginons que vous disposiez maintenant d'un nouveau lecteur, / dev / sde, que vous souhaitez ajouter au tableau précédemment créé sans perdre aucune donnée.

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

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

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

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

$ pvresize /dev/md0

Désormais, le volume physique est redimensionné par défaut pour couvrir tout l’espace disponible de la matrice RAID. Nous devons connaître la nouvelle taille en étendue physique:

$ vgdisplay vg_raid

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

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

Puis développez 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 développé pour couvrir tout l'espace disponible. Enfin, la géométrie de la matrice RAID doit être mise à jour car elle inclut désormais un nouveau disque. Commencez par supprimer la ligne ajoutée de /etc/mdadm/mdadm.conf puis ajoutez-en une nouvelle:

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

12
2018-02-18 22:24


origine


Ne placez pas de partitions sur vos disques. Inutile de le faire - la détection automatique du RAID dans le noyau (type de partition fd) est obsolète. - James
Donc, au lieu de créer des partitions de type 'fd' avec fdisk, je devrais simplement créer le tableau / dev / md0 sur les périphériques / dev / sdb, / dev / sdc et / dev / sdd directement? - Taskinen
J'ai entendu dire que tous les disques n'ont pas la même taille. Par conséquent, si j'achète un nouveau disque de téraoctet, il se peut qu'il ne soit pas exactement de la même taille. Cela poserait-il des problèmes? - Taskinen


Réponses:


Je pense que vous avez raison. Assurez-vous de bien comprendre les avertissements concernant la croissance de RAID 5 dans man 8 mdadm.

Personnellement, si je développais un volume LVM, je ne cultiverais pas une matrice RAID existante pour le faire. Je créerais un autre ensemble RAID, créerais un nouveau physvol et l'ajouterais au même groupe de volumes. Cette opération est beaucoup plus sûre (elle ne nécessite pas de réécrire l’ensemble de la matrice RAID5 sur le nouvel ensemble de disques) et réduit la taille de vos baies.


5
2018-02-19 00:13



Tout à fait d'accord. vgextend est votre ami ici. - Dan Andreatta
En général, je comprends, mais qu’en est-il de la situation dans laquelle je souhaite développer les trois baies de disques mentionnées ci-dessus en une grappe de quatre disques? Je ne peux pas créer une nouvelle matrice RAID à partir du quatrième disque seul. - Taskinen
Je ne voudrais pas étendre la matrice de disques d'un serveur de stockage, disque par disque. Passer d'une matrice de trois disques à une matrice de disques ne vous donnera que 50% de stockage supplémentaire, car vous devez utiliser des disques de même taille. - Kamil Kisiel
D'accord. Lorsque vous manquerez d’espace, le prix des disques durs plus grands aura baissé. Construisez un second ensemble RAID sur un nouvel ensemble de disques plus gros, puis déplacez vos anciennes données vers celui-ci et mettez l'ancien jeu hors service une fois l'opération terminée. Tout cela peut être fait pendant que les systèmes de fichiers des volumes logiques affectés par pvmove sont en utilisation active. - flabdablet