Remarque :
- Ce tutoriel est disponible dans un environnement d'atelier gratuit fourni par Oracle.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Configuration de volumes logiques RAID sur Oracle Linux
Introduction
LVM RAID est un moyen de créer un volume logique (LV) qui utilise plusieurs périphériques physiques pour améliorer les performances ou tolérer les pannes de périphériques. Dans la LVM, les périphériques physiques sont des volumes physiques (PV) dans un seul groupe de volumes (VG).
Ce tutoriel utilise les utilitaires Oracle Linux Volume Manager pour créer un volume logique RAID, puis pour résoudre une panne de disque.
Objectifs
- Création d'un volume logique RAID
- Redimensionner un volume logique RAID
- Récupération d'un périphérique RAID défaillant
Prérequis
Tout système Oracle Linux 8 avec les configurations suivantes :
- un utilisateur non root avec des droits d'accès sudo
- volumes de blocs supplémentaires à utiliser avec LVM
Environnement des exercices de configuration
Remarque : lorsque vous utilisez l'environnement d'atelier gratuit, reportez-vous à Oracle Linux Lab Basics pour obtenir des instructions de connexion et d'utilisation.
-
S'il n'est pas déjà connecté, ouvrez un terminal et connectez-vous via ssh à chaque instance mentionnée ci-dessus.
ssh oracle@<ip_address_of_instance>
-
Vérifiez que les volumes de blocs existent.
sudo lsblk
La sortie de l'environnement d'atelier gratuit doit afficher /dev/sda pour le système de fichiers existant et les disques disponibles /dev/sdb, /dev/sdc, /dev/sdd et /dev/sde. Il existe également deux disques supplémentaires (/dev/sdf, /dev/sdg) que nous utiliserons ultérieurement.
Volume physique (PV)
-
Créez les volumes physiques (PV) à l'aide des disques disponibles.
sudo pvcreate -v /dev/sd[b-e]
Exécutez la commande avec l'option
-v
pour obtenir des informations détaillées. -
Vérifier la création de PV.
sudo pvs
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sda3 ocivolume lvm2 a-- 45.47g 0 /dev/sdb lvm2 --- 50.00g 50.00g /dev/sdc lvm2 --- 50.00g 50.00g /dev/sdd lvm2 --- 50.00g 50.00g /dev/sde lvm2 --- 50.00g 50.00g
Groupe de volumes (VG)
-
Créez le groupe de volumes (VG) à l'aide des volumes physiques nouvellement créés.
sudo vgcreate -v foo /dev/sd[b-e]
-
Vérifiez la création de VG.
sudo vgs
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo vgs VG #PV #LV #SN Attr VSize VFree foo 4 0 0 wz--n- 199.98g 199.98g ocivolume 1 2 0 wz--n- 45.47g 0
Volume logique (LV)
-
Créez le volume logique (LV) RAID.
sudo lvcreate --type raid5 -i 3 -L 5G -n rr foo
--type
: définir le niveau RAID. LVM prend en charge les niveaux RAID 0, 1, 4, 5, 6 et 10.-i
: définit le nombre (n) de bandes (périphériques) pour un volume logique RAID 4/5/6. Un LV raid5 requiert n+1 périphériques.-L
: taille totale de la baie RAID.-n
: nom de la baie RAID.
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvcreate --type raid5 -i 3 -L 5G -n rr foo Using default stripesize 64.00 KiB. Rounding size 5.00 GiB (1280 extents) up to stripe boundary size 5.00 GiB (1281 extents). Logical volume "rr" created.
Pour plus d'informations, consultez la page manuelle
lvmraid(7)
. -
Vérifier la création de la LV.
sudo lvdisplay foo
La sortie affiche tous les volumes logiques contenus dans le VG foo.
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvdisplay foo --- Logical volume --- LV Path /dev/foo/rr LV Name rr VG Name foo LV UUID vghyRi-nKGM-3b9t-tB1I-biJX-10h6-UJWvm2 LV Write Access read/write LV Creation host, time ol-node01, 2022-05-19 01:23:46 +0000 LV Status available # open 0 LV Size 5.00 GiB Current LE 1281 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 1024 Block device 252:10
-
Affichez le type de LV.
sudo lvs -o name,segtype foo/rr
- La commande
lvs
peut utiliser le chemin LV complet comme option pour affiner les résultats.
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvs -o name,segtype /dev/foo/rr LV Type rr raid5
- La commande
Création d'un système de fichiers
-
Créez un système de fichiers XFS sur la LV RAID.
sudo mkfs.xfs -f /dev/foo/rr
-f
: force l'écrasement d'un système de fichiers existant.
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo mkfs.xfs -f /dev/foo/rr meta-data=/dev/foo/rr isize=512 agcount=8, agsize=163952 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=1311616, imaxpct=25 = sunit=16 swidth=48 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Remarque : le système de fichiers XFS ne peut pas réduire sa taille après sa création. Toutefois, la commande xfs_growfs peut l'agrandir.
Montage de la LV RAID
-
Montez le système de fichiers.
sudo mkdir -p /u01 sudo mount /dev/foo/rr /u01
-
Signalez l'utilisation du disque du système de fichiers.
df -h
Exemple de sortie :
[oracle@ol-node01 ~]$ df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/foo-rr 5.0G 69M 5.0G 2% /u01
Redimensionnement d'une LV RAID
Il existe plusieurs façons de redimensionner une LV RAID :
- Utilisez
lvresize
oulvextend
pour augmenter la valeur LV. - Utilisez
lvresize
oulvreduce
pour réduire la LV. - Utilisez
lvconvert
avec le paramètre--stripes N
pour modifier le nombre de bandes.
Important : La rétrécissement d'une LV présente des risques et peut entraîner une perte de données. Lors de l'exécution d'un système de fichiers XFS sur la LV, évitez de réduire la LV car XFS ne permet pas de réduire la taille du système de fichiers.
Augmenter la capacité RAID LV
-
En utilisant l'espace libre disponible dans le VG, augmentez la taille RAID LV à 10G.
sudo lvresize -L 10G foo/rr
Pour augmenter la taille de 10G, utilisez l'option
-L +10G
à la place. -
Vérifiez que la valeur LV est passée à 10G.
sudo lvs foo/rr
LSize doit afficher 10g.
-
Développez le système de fichiers.
sudo xfs_growfs /u01
-
Signalez l'utilisation mise à jour du disque du système de fichiers.
df -h
-
Vérifiez l'état de synchronisation RAID avant de continuer.
Avertissement : Si vous passez trop rapidement à l'étape suivante, une erreur peut s'afficher car foo/rrr n'est pas synchronisé.
Cette erreur se produit si la synchronisation ne s'est pas terminée après le redimensionnement de la LV RAID ci-dessus.
Vérifiez la LV RAID avec
watch sudo lvs foo/rr
et attendez que le champ Cpy%Sync atteigne 100 %. Une fois que Cpy%Sync a atteint 100 %, utilisezctrl-c
pour quitter la commandewatch
.
Pour plus d'informations, reportez-vous aux pages de manuel lvresize(8)
, lvextend(8)
et lvreduce(8)
.
Augmenter les bandes sur la LV RAID
La modification du nombre de bandes sur une LV RAID augmente la capacité globale et est possible sur RAID4/5/6/10. Chaque bande supplémentaire nécessite un nombre égal de volumes physiques (périphériques) non alloués au sein du groupe de volumes.
-
Vérifiez quels volumes physiques (PV) existent dans VG foo.
sudo pvs
Dans la sortie /dev/sdb, /dev/sdc, /dev/sdd et /dev/sde sont tous associés à VG foo.
-
Déterminez s'il existe des volumes physiques non utilisés.
sudo pvdisplay -m /dev/sd[b-e]
Exemple de sortie :
--- Physical volume --- PV Name /dev/sdb VG Name foo PV Size 50.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12799 Free PE 11944 Allocated PE 855 PV UUID Q1uEMC-0zL1-dgrA-9rIT-1xrA-Vnfr-2E8tJT --- Physical Segments --- Physical extent 0 to 0: Logical volume /dev/foo/rr_rmeta_0 Logical extents 0 to 0 Physical extent 1 to 854: Logical volume /dev/foo/rr_rimage_0 Logical extents 0 to 853 Physical extent 855 to 12798: FREE ...
La commande
pvdisplay
avec l'option-m
affiche la mise en correspondance des extents physiques avec les volumes logiques et les extents logiques. La commande PV /dev/sdb de l'exemple de sortie affiche les extents physiques associés à la LV RAID. Il doit en être de même pour /dev/sdc, /dev/sdd et /dev/sde. -
Ajoutez un autre PV au VG.
Etant donné que la LV RAID existante utilise tous les volumes physiques existants, ajoutez /dev/sdf au métrage PV.
sudo vgextend foo /dev/sdf
La sortie indique que la commande
vgextend
convertit /dev/sdf en PV avant de l'ajouter au fichier VG. -
Ajoutez une bande à la LV RAID.
sudo lvconvert --stripes 4 foo/rr
Répondez avec
y
à l'invite.Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvconvert --stripes 4 foo/rr Using default stripesize 64.00 KiB. WARNING: Adding stripes to active and open logical volume foo/rr will grow it from 2562 to 3416 extents! Run "lvresize -l2562 foo/rr" to shrink it or use the additional capacity. Are you sure you want to add 1 images to raid5 LV foo/rr? [y/n]: y Logical volume foo/rr successfully converted.
-
Vérifiez la nouvelle taille de la LV.
sudo lvs foo/rr
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvs foo/rr LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert rr foo rwi-aor--- 13.34g 2.24
La capacité (LSize) a augmenté de 3.34g et la synchronisation (Cpy%Sync) commence. La synchronisation est le processus qui rend tous les périphériques d'une LV RAID cohérents les uns avec les autres, et une synchronisation complète devient nécessaire lorsque les périphériques de la LV RAID sont modifiés ou remplacés.
-
Vérifiez le statut de la synchronisation.
Exécutez la vérification jusqu'à ce que la progression atteigne 100 %.
watch sudo lvs foo/rr
Une fois que Cpy%Sync a atteint 100 %, utilisez
ctrl-c
pour quitter la commandewatch
.La commande
watch
peut également être utilisée comme suit :- Exécutez
watch -n 5 sudo lvs foo/rr
pour actualiser toutes les 5 au lieu des 2 par défaut. - Exécutez
timeout 60 watch -n 5 sudo lvs foo/rr
pour quitter automatiquement après les années 60.
- Exécutez
-
Affichez la nouvelle plage de segments et PV, qui inclut désormais /dev/sdf.
sudo lvs -a -o lv_name,attr,segtype,seg_pe_ranges,dataoffset foo
Récupération d'un périphérique RAID défaillant dans une LV
Les baies RAID peuvent continuer à s'exécuter avec des périphériques défaillants. La suppression d'un périphérique pour des types RAID autres que RAID1 impliquerait la conversion vers un RAID de niveau inférieur (RAID5 vers RAID0 dans ce cas).
LVM permet de remplacer un périphérique défaillant dans un volume RAID en une seule étape à l'aide de la commande lvconvert --repair
pour les périphériques défaillants plutôt que de retirer un lecteur défaillant et éventuellement d'ajouter un remplacement.
-
Vérifiez la disposition actuelle de RAID LV.
sudo lvs --all --options name,copy_percent,devices foo
-
Simulez un échec sur /dev/sdd.
echo 1 | sudo tee /sys/block/sdd/device/delete
-
Après l'échec, vérifiez à nouveau la disposition RAID LV.
sudo lvs --all --options name,copy_percent,devices foo
Notez les périphériques [unknown].
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvs --all --options name,copy_percent,devices foo WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. WARNING: VG foo is missing PV o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc (last written to /dev/sdd). LV Cpy%Sync Devices rr 100.00 rr_rimage_0(0),rr_rimage_1(0),rr_rimage_2(0),rr_rimage_3(0),rr_rimage_4(0) [rr_rimage_0] /dev/sdb(855) [rr_rimage_0] /dev/sdb(1) [rr_rimage_1] /dev/sdc(855) [rr_rimage_1] /dev/sdc(1) [rr_rimage_2] [unknown](855) [rr_rimage_2] [unknown](1) [rr_rimage_3] /dev/sde(855) [rr_rimage_3] /dev/sde(1) [rr_rimage_4] /dev/sdf(855) [rr_rimage_4] /dev/sdf(1) [rr_rmeta_0] /dev/sdb(0) [rr_rmeta_1] /dev/sdc(0) [rr_rmeta_2] [unknown](0) [rr_rmeta_3] /dev/sde(0) [rr_rmeta_4] /dev/sdf(0)
-
Remplacez le périphérique défaillant.
sudo lvconvert --repair foo/rr
Répondez avec
y
à l'invite.La commande ne parvient pas à trouver l'espace ou le périphérique disponible à utiliser dans le VG.
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvconvert --repair foo/rr WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. WARNING: VG foo is missing PV o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc (last written to /dev/sdd). WARNING: Couldn't find device with uuid o1JwCl-DTpi-anww-rYt3-1LCq-vmLV-FQCKyc. Attempt to replace failed RAID images (requires full device resync)? [y/n]: y Insufficient free space: 856 extents needed, but only 0 available Failed to replace faulty devices in foo/rr.
Avertissement : si l'erreur contient un message "Unable to replace devices in foo/rr alors qu'elle n'est pas synchronisée", vérifiez que la valeur RAID-LV est synchronisée en exécutant
watch sudo lvs foo/rr
et en confirmant que Cpy%Sync est de 100 %. Puis réessayez la commandelvconvert
. -
Ajoutez le périphérique /dev/sdg au VG
sudo vgextend foo /dev/sdg
Les messages WARNING dans la sortie sont dus au lecteur défaillant toujours manquant.
-
Réessayez de remplacer le lecteur défaillant.
sudo lvconvert --repair foo/rr
Répondez à nouveau avec
y
à l'invite.La sortie affiche à nouveau les messages WARNING relatifs au lecteur manquant, mais la commande a remplacé le périphérique défectueux dans le VG.
-
Examinez la présentation.
sudo lvs --all --options name,copy_percent,devices foo
Notez que /dev/sdg a remplacé toutes les entrées de périphérique [unknown].
-
Retirez le périphérique défaillant du VG.
Les utilitaires LVM continueront à signaler que LVM ne parvient pas à trouver le périphérique défaillant tant qu'il n'est pas retiré du VG.
sudo vgreduce --removemissing foo
Les messages WARNING dans la sortie sont dus au lecteur défaillant toujours manquant.
-
Vérifiez l'état de synchronisation RAID avant de continuer.
Avertissement : Si vous passez trop rapidement à la section suivante, le message d'erreur suivant peut s'afficher :
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvchange --syncaction check foo/rr foo/rr state is currently "recover". Unable to switch to "check".
Cette erreur se produit si la synchronisation ne s'est pas terminée après l'ajout de bandes à la LV RAID.
Vérifiez la LV RAID avec
watch sudo lvs foo/rr
et attendez que le champ Cpy%Sync atteigne 100 %.
Vérification de la cohérence des données dans RAID LV (redémarrage)
LVM permet de nettoyer la LV RAID, qui lit tous les blocs de données et de parité d'une baie et vérifie la cohérence.
-
Lancez un nettoyage en mode vérification.
sudo lvchange --syncaction check foo/rr
-
Afficher le statut de l'action de nettoyage.
watch sudo lvs -a -o name,raid_sync_action,sync_percent foo/rr
Exemple de sortie :
[oracle@ol-node01 ~]$ sudo lvs -a -o name,raid_sync_action,sync_percent foo/rr LV SyncAction Cpy%Sync rr check 30.08
-
Une fois le nettoyage (syncronisation) terminé, affichez le nombre de blocs incohérents trouvés.
sudo lvs -o +raid_sync_action,raid_mismatch_count foo/rr
L'option
raid_sync_action
affiche le champ SyncAction avec l'une des valeurs suivantes :idle
: toutes les actions sont terminées.resync
: initialisation ou récupération après une panne système.recover
: remplacement d'un périphérique dans le groupe.check
: recherche des différences.repair
: recherche et réparation des différences.
Exemple de sortie :
[oracle@ol-node01 ~]$ lvs -o +raid_sync_action,raid_mismatch_count foo/rr LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert SyncAction Mismatches rr foo rwi-aor--- 13.34g 44.42 check 0
La sortie affiche 0 incohérence (Mismatches).
-
(Facultatif) Corrigez les différences dans le tableau.
Cette étape est facultative car il n'existe probablement aucune différence dans cet exemple de tableau.
sudo lvchange --syncaction repair foo/rr
-
(Facultatif) Vérifiez le statut de la réparation.
sudo lvs -o +raid_sync_action,raid_mismatch_count foo/rr
Notez que le champ SyncAction est remplacé par repair.
Pour plus d'informations, reportez-vous aux pages de manuel lvchange(8)
et lvmraid(7)
.
Pour plus d'informations:
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir explorateur Oracle Learning.
Pour consulter la documentation du produit, consultez Oracle Help Center.
Configure RAID Logical Volumes on Oracle Linux
F57872-02
May 2022
Copyright © 2021, Oracle and/or its affiliates.