Raid
Pas besoin d'écrire tout un article là dessus, d'autres personnes font ça mieux que moi. Il ne s'agit ici que d'un pense bete :
Test de création d'un raid 1 (miroir)
Le but de ce chapitre est de tester la création d'un raid 1 histoire de se faire la main sans pour autant modifier la configuration des disques durs physiques.
Création des fichiers
Pour ce test on va avoir besoin de plusieurs fichiers qui feront office de disques durs virtuels. On va en créer 3 en utilisant la commande :
# dd if=/dev/zero of=Vdisque1 bs=1M count=1024 status=progress
Le paramètre "of=" spécifie l'emplacement du fichier de sortie, on réitère donc avec Vdisque2 et Vdisque3, le paramètre "status=progress" quant à lui permet de voir la progression.
# ls -lh total 3,1G -rw-r--r-- 1 root root 1,0G 24 févr. 11:08 Vdisque1 -rw-r--r-- 1 root root 1,0G 24 févr. 11:08 Vdisque2 -rw-r--r-- 1 root root 1,0G 24 févr. 11:08 Vdisque3
Faire passer ces fichier pour des disques physiques
Avoir les fichiers c'est bien, mais encore faut-il qu'ils soient reconnus par le système comme étant des disques durs. Pour cela on utilise la commande :
# losetup -f Vdisque1
L'option "-f" va cherche le premier périphérique inutilisé. En itérant ça pour le second fichier on obtient :
# fdisk -l Disque /dev/loop0 : 1 GiB, 1073741824 octets, 2097152 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Disque /dev/loop1 : 1 GiB, 1073741824 octets, 2097152 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Nos deux fichiers sont maintenant reconnus comme des disques dur et se situe en /dev/loopX
Création du raid avec mdadm
Pour créer le raid à proprement parler il faut maintenant utiliser mdadm.
# mdadm --create /dev/md/raid_test --level=1 --raid-devices=2 /dev/loop0 /dev/loop1 mdadm: partition table exists on /dev/loop0 mdadm: partition table exists on /dev/loop0 but will be lost or meaningless after creating array mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: partition table exists on /dev/loop1 mdadm: partition table exists on /dev/loop1 but will be lost or meaningless after creating array Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/raid_test started.
Comme on peut le constater s'il existe une table de partition, celle ci sera détruite lors de la création du raid. En vérifiant avec fdisk on peut voir ceci :
# fdisk -l ... Disque /dev/md127 : 1022 MiB, 1071644672 octets, 2093056 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets
On peut également vérifier l'état du raid avec :
# cat /proc/mdstat Personalities : [raid1] md127 : active raid1 loop1[1] loop0[0] 1046528 blocks super 1.2 [2/2] [UU] unused devices: <none>
Création d'un système de fichier avec LVM
Création du volume physique
Dans cet exemple le volume physique ne sera pas les disques /dev/loopX, mais le raid que l'on vient de créer avec mdadm.
# pvcreate /dev/md127 Physical volume "/dev/md127" successfully created.
On peut vérifier l'état du volume physique avec cette commande :
# pvdisplay "/dev/md127" is a new physical volume of "1022,00 MiB" --- NEW Physical volume --- PV Name /dev/md127 VG Name PV Size 1022,00 MiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID NEulEb-iRqr-y0vW-1Hza-uU8D-eR16-gvskzj
Création du groupe de volumes
Ici il est question d'agréger différents volumes physique en un seul groupe. On ne va pas creuser bien loin car dans cet exemple nous n'avons qu'un seul volume physique.
# vgcreate VG_raid_test /dev/md127 Volume group "VG_raid_test" successfully created
L'argument "VG_raid_test" est simplement le nom que portera ce groupe de volumes
# vgdisplay --- Volume group --- VG Name VG_raid_test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 1020,00 MiB PE Size 4,00 MiB Total PE 255 Alloc PE / Size 0 / 0 Free PE / Size 255 / 1020,00 MiB VG UUID 7c0uVR-eLkB-hcRo-MRzL-KMmi-G0Sz-H4rNuy
Création des volumes logiques
La création touche bientôt à sa fin, il ne nous reste plus qu'à créer des volumes logiques. Dans ce test on en créera qu'un seul
# lvcreate -L 500M VG_raid_test -n test Logical volume "test" created.
Comme pour les deux autres commandes, si on veut voir l'état on utilise "machindisplay"
# lvdisplay --- Logical volume --- LV Path /dev/VG_raid_test/test LV Name test VG Name VG_raid_test LV UUID AKQNwX-9S5G-sEqg-ufxQ-PLf2-LZiW-2Tl6SM LV Write Access read/write LV Creation host, time serveur, 2020-02-24 11:47:36 +0100 LV Status available # open 0 LV Size 500,00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0