GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
LVM "Linux "
1. Université Hassan II Mohammedia-Casablanca
Faculté des sciences Ben M’Sik
2015/2016
Master SII
Réalisé par :
Baich Marwa
Encadrée par :
Mme N.Sael
La gestion des volumes logiques
LVM
2. Plan
L'utilité du LVM
Les comrposants du LVM
Configuration du LVM
Commandes complémentaires
TP
3. La gestion des volumes logiques est un sous-système pour la gestion du
stockage des données sur les disques. Qui offre une gestion plus souple de
l’espace des disques durs en interposant une couche supplémentaire entre le
matériel et les systèmes de fichiers.
4. la possibilité de modifier la taille des partitions sur les disques durs sans avoir besoin de tout reformater.
la possibilité de créer des partitions s'étalant sur plusieurs disques.
éviter arrêt et redémarrage d'une machine en production.
ajouter, enlever de l'espace disque d'un filesystem à la volée.
Partition de disque
Volume Group
Logicals Volumes
Système de fichiers
Une partition de disque
Un système de fichier
Aulieude:
5. Les termes utilisés
dans LVM pour décrire
ses composants
Les volumes
physiques
Les groupes
de volumes
Les volumes
logiques
6. Chaque disque dur ou partition va être transformé en
volume physique.
Chaque volume physique va être inséré dans un groupe de
volumes.
Un groupe de volume est un espace logique découpé en
Logical Extents .
Le système va ensuite établir des pointeurs entre un
physical extent et un logical extent
7. découper le groupe de volumes en partitions appelées
volumes logiques
créer un système de fichier, une partition de swap.
il n'est plus nécessaire de tenir compte des limites
physiques des disques.
Le groupe de volumes a ensuite été découpé en 3 volumes
logiques, nommées lvol01, lvol02, lvol03.
2 disque hda,hdh
14. La commande partprobe
o Cette commande force le noyau à relire de nouveau la table des partitions.
o Une fois 'fdisk' terminé et la main sur l'invite de commandes vous est rendue, pour éviter toute surprise et u
redémarrage du système tapez la commande suivante :
la commande pvcreate
pvcreate </dev/hdxx>
fichier spécial du disque ou de la partition à transformer en volume physique
o Utilisez la commande pvcreate pour initialiser un périphérique boc à utiliser en tant que volume
physique.
18. Une fois le volume physique créés il
faut alors insérer le ou les volumes
physiques ainsi créés dans un
groupe de volumes.
On utilise la commande vgcreate :
vgcreate <nom_du_volume></dev/hdxx>
nom du groupe de volume fichier spécial du volume physique
19. Exemple :
création d'un groupe de volumes nommé vg0
La commande vgdisplay :
o affiche les propriétés des groupes
de volumes (la taille, les
extensions, le nombre de volumes
physiques, etc.)
o Si vous ne spécifiez pas un
groupe de volumes, tous les
groupes de volumes existants
seront affichés.
20. Une fois le groupe de volume créé, on peut alors le découper
en un ou plusieurs volumes logiques grâce
à la commande lvcreate :
-L tailleK|M|G : taille du volume logique exprimable en Ko, Mo ou Go
-n nom : nom du volume logique
<nom_volume> : nom du groupe de volumes dans lequel sera créé
le volume logique.
lvcreate -L tailleK[M]G [-n nom] <nom_volume>
21. Exemple :
• création d'un volume logique de 15G nommé Lv1 dans le groupe de volume vg0
• création d'un volume logique de 20G nommé Lv2 dans le groupe de volume vg0
22. Avec la commande lvdisplay, il est possible de lister les Logical volume
23. A tout moment il est possible de recueillir des informations sur les structures LVM : volume physique,
groupe de volumes et volumes logiques. On utilisera pour cela respectivement les commandes
pvdisplay , vgdisplay et lvdisplay. Ces commandes ne font en fait qu'afficher dans un format lisible
La description d'un volume physique procure notamment le nom du volume physique, le nom du groupe
de volume dans lequel est inséré le dit volume physique, sa taille, le nombre de volumes logiques
contenus, la taille des physical extents, le nombre de PE contenus dans le volume physique, le nombre
de PE libres.
pvdisplay
24.
25.
26.
27. vgextend VolumeGroupName PhysicalVolume
vgreduce VolumeGroupName PhysicalVolume
Il est possible à tout moment d'ajouter ou retirer un ou plusieurs volumes physiques
afin d'augmenter ou diminuer l'espace disponible d'un groupe de volumes.
VolumeGroupName : nom du groupe de volume à redimensionner
PhysicalVolume : nom du volume physique à ajouter ou retirer du groupe de
volumes.
28. Exemple
Imaginons que notre groupe de volume (volume1) n'ait plus suffisamment d'espace libre. On souhaite donc lui
rajouter un volume physique afin de rajouter de l'espace libre.
1.Création du volume physique
pvcreate /dev/hdb2
2. Ajout de hdb2 au groupe de volumes volume1
vgextend volume1 /dev/sdc2
On pourra vérifier la bonne réalisation de l'opération grâce à la commande vgdisplay.
29. lvextend -L taille /dev/nom_volume/vol_logique
lvreduce -L taille /dev/nom_volume/vol_logique
Il est possible de diminuer ou augmenter la taille d'un volume logique au moyen des
commandes lvreduce et lvextend.
nom_volume : nom du groupe de volume à redimensionner
vol_logique : volume physique à augmenter ou déminuer
-L taille : taille finale du volume logique(après redimensionnement).
30. Pour ajouter ou retirer de l'espace sur un groupe de volume sans avoir a faire le
calcul "espace actuel (+ ou -) espace à ajouter = taille", on utilisera les signes + ou - :
-L +taille : taille initiale augmentée de la valeur utilisée pour taille.
-L -taille : taille initiale retranchée de la valeur utilisée pour taille.
lvextend -L +taille /dev/nom_volume/vol_logique
lvreduce -L -taille /dev/nom_volume/vol_logique
31. Exemple
pour spécifier au volume logique lv_toto situé sur le VG rootvg une taille de 6 Gio:
$ lvresize -L 6G /dev/rootvg/lv_toto
Pour l'agrandir de 100 PE :
$ lvresize -l +100 /dev/rootvg/lv_toto
Pour le réduire de 10% de sa propre taille :
$ lvresize -l -10%LV /dev/rootvg/lv_toto
32.
33. Les étapes à respecter pour agrandir un volume logique :
démonter le système de fichier ;
augmenter la taille du volume logique;
vérifier que tout est OK ;
augmenter la taille du système de fichier.
remonter le système de fichiers.
34. Exemple
lvextend -L +1G /dev/vmvg/Vol1 va ajouter 1 GB au volume logique
umount /dev/vmvg/Vol1
e2fsck –f /dev/vmvg/Vol1
resize2fs /dev/vmvg/Vol1
mount /dev/vmvg/Vol1
Il faut ensuite retailler le file system qui repose sur ce volume logique :
35. Pour éviter tout risque il faut utiliser la méthode suivante
Réduire la taille du système de fichier plus que nécessaire
Réduire la taille du volume logique pour lui donner exactement la nouvelle taille
souhaitée.
Agrandir le système de fichier pour qu'il occupe tout l'espace disponible.
36. Exemple
On imagine que monvl2 est un volume logique du groupe monvg2
on vérifie le volume logique et on diminue la taille du FS monté sur monvl2 à 512 Mo
umount /home/monvl2
e2fsck -f /dev/monvg2/monvl2
resize2fs -p /dev/monvl2 /test2 512M
37. Exemple
On indique explicitement la diminution du volume logique monvl2
lvresize -L -512M /dev/monvg2/monvl2
WARNING: Reducing active logical volume to 512.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce monvl2? [y/n]: y
Reducing logical volume ca to 512.00 MB
38. Exemple
Il faut maintenant indiquer au système de fichiers qu’il peut s’étendre automatiquement pour
prendre tout l’espace disponible.
On remonte le FS
resize2fs /dev/monvg/monvl
mount /dev/monvg/movl /home/monvl
39.
40. Gestion des volumes physiques
pvchange : changer les attributs d'un PV
pvcreate : création d'un PV
pvdata : afficher des informations de debug
pvdisplay : afficher des informations d'un PV
pvscan : lister tous les PV existant sur tous les disques
41. Gestion des groupes de volumes
vgcreate : créer un VG
vgdisplay : voir les informations
vgexport : désactiver un VG pour pouvoir extraire les PV
vgimport : activer et déclarer un VG sur le système
vgextend : ajouter un ou plusieurs PV dans un VG
vgmerge : fusionner deux VG
vgmknodes : recréer /dev/nom_volume et le fichier spécial group
vgreduce : extraire un ou plusieurs PV d'un VG
vgremove : supprimer un VG
vgrename : renommer un VG
42. Gestion des volumes logiques
lvcreate : création d'un VL lvchange : modification des attributs d'un VL
lvdisplay : voir les informations d'un VL
lvextend : augmenter la taille d'un VL
lvreduce : réduire la taille d'un VL
lvremove : supprimer un VL
lvrename : renommer un VL
lvscan : recherche de tous les VL existant
43. Les snapshots sont des volumes logiques permettant d'effectuer une
sauvegarde cohérente d'un autre volume logique du même groupe de
volumes.
La création d'un snapshot consiste à prendre une « photo », un
instantané du volume logique cible (ce qui est quasi-immédiat) et on
commence alors à enregistrer les modifications apportées au volume
logique cible.
Les snapshots NE SONT PAS une sauvegarde complète d'un volume
logique, ils enregistrent uniquement les modifications apportées au
volume cible, ils ne contiennent pas les données de celui-ci ; de plus ils
ne sont pas persistants, c’est-à-dire qu'ils disparaissent en cas de
redémarrage de la machine.
44. lvcreate -L taille -s -n nom-snap nom-du-volume-logique
Attention
la taille d'utilisation du snapshot évolue avec l'utilisation. Si ce snapshot se retrouve
rempli à 100%, il devient alors inutilisable (état "INACTIVE") mais pas d’inquiétude
car il n'y a pas d’impact pour le LV d'origine.
45. Exemple
On commence par créer un volume logique d’instantané du système de fichiers
/dev/monvg/database de 580Mo avec la commande lvcreate et l’option -s
lvcreate –L 580M -s -n dbbackup /dev/monvg/databases
46. Exemple
On crée le répertoire /mnt/monvg/dbbackup pour monter le volume logique
d’instantané /dev/monvg/dbbackup
mkdir /mnt/monvg/dbbackup
mount /dev/monvg/dbbackup /mnt/monvg/dbbackup
ici on démonte et on supprime le volume logique d’instantané
umount /mnt/monvg/dbbackup
lvremove /dev/monvg/dbbackup
47. La taille du snapshot est trop petite et elle arrive bientôt à 100%, pourtant
vous avez encore besoin d'utiliser ce snap ? Il faut donc redimensionner !
Vérifier avec vgdisplay que le VG dispose encore d'assez d'espace libre puis
effectuer :
lvresize -L +3GB /dev/vg_data/lv_test_20110617
Va ajouter 3Go au snap lv_test_20110617 qui est présent dans le VG
vg_data.
48. Le but ici est de fusionner un snapshot modifié vers le LV d'origine. Pour
ainsi dire, "faire que les modifications apportées sur le snapshot se
retrouvent sur le LV d'origine".
lvconvert --merge /path/to/dev/snap
49.
50. partition Volume group
Volume logique
Volume logique
Volume logique
Volume logique
SF
SF
SF
SF
Principe
partition SF
51. Installation des LVM
• Télécharger le paquet lvm2
• installer le paquet en utilisant la commande apt-get install lvm2
Configuration du Noyau
Il vous faudra recompiler votre noyau pour y ajouter les modules suivants :
Kernel 2.4.x
52. Céation d’un partition
• fdisk est l'outil de référence pour la partition de disque sous linux.
• Nous allons créer une partition de 80Go en type LVM.
[root@accent root]#fdisk /dev/had
• initialiser le disque au LVM.
[root@accent root]#pvcreate /dev/hda1
partition prête à l'utilisation
53. Créer notre VG
Le VG s'appellera cours_vg. Un VG est composé de UNE ou
PLUSIEURS partitions.
[root@accent root]#vgcreate cours_vg /dev/hda1
On applique la commande:
[root@accent root]#vgdisplay -v cours_vg
54. Using volume group(s) on command line
Finding volume group “cours_vg"
--- Volume group ---
VG Name cours_vg"
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 76.69 GB
PE Size 4.00 MB
Total PE 19632
Alloc PE / Size 0 / 0
Free PE / Size 19632 / 76.69 GB
VG UUID sb3OPg-wPG3-KTY4-MV2Q-F9Rg-MgPH-oWr2Ib
--- Physical volumes ---
PV Name /dev/hda1
PV UUID UztUuI-1CTd-zBrT-VtKf-g3RV-ZM2E-dRt0nU
PV Status allocatable
Total PE / Free PE 19632 / 19632
55. Créer un LV
Nous allons créer un LV de 10Go pour les cours de lunix dans le VG cours_vg.
[root@accent root]#lvcreate -L10000 -n lv_cours_lunix cours_vg
Nous pouvons désormais voir ses caractéristiques via la commande :
[root@accent root]#lvdisplay -v /dev/cours_vg/lv_cours_lunix
--- Logical volume ---
LV Name /dev/cours_vg/lv_cours_lunix
VG Name cours_vg
LV UUID i0fyfB-33vh-Fh8L-TBzM-xT67-E4KD-vZ9Ohr
LV Write Access read/write
LV Status available
# open 0
LV Size 9.77 GB
Current LE 2500
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 254:2
56. Créer le systeme de fichier
• créer un système de fichier en ext3 :
[root@accent root]#mkfs.ext3 /dev/cours_vg/lv_cours_lunix
• le montage de notre nouvelle partition.
[root@accent root]#mkdir -p /cours/cours_lunix
[root@accent root]#mount /dev/cours_vg/lv_cours_lunix /cours/cours_lunix
57. cours_vg
10 Go : lv_cours_lunix monté sur /cours/cours_lunix
20 Go : lv_tp_lunix monté sur /cours/tp_lunix
50Go : d'espace libre non utilisé.
Problème
10000Mo
9900Mo
Volume de cours : 200M Il manque200M
Solution
Démonter la partition agrandir le LV Remonter la partiton
/cours/cours_lunix
58. 1. Démonter la partition
[root@accent root]#umount /cours/cours_lunix
Le point de montage
Commande de démontrer
59. 2. agrandir le LV
volume logique
à agrandir
la commande pour agrandi
le volume logique
[root@accent root]#lvextend -L+400M
/dev/cours_vg/lv_cours_lunix
60. ● mettons le système de fichiers à la taille du LV.
[root@accent root]#resize2fs /dev/cours_vg/lv_cours_lunix
61. 3. monter la partition
[root@accent root]#mount /dev/cours_vg/lv_cours_lunix /cours/cours_lunix
62. ● réduire la taille d'un système de fichier :
[root@accent root]#lvreduce -L-1024M /dev/cours_vg/lv_cours_lunix
63. ● LV strippé
Le stripping consiste à écrire alternativement sur un PV, puis sur
un autre, les blocs de données.
lvccreate -i2 -I10 -L100M -lv lv_test cours_vg
● "-i" : le 2 correspond au nombre de stripes voulues.
● "-I" : le 4 correspond à la taille du stripe (4ko)
64. ● Opérations sur les Vgs
● ajouter une partition au VG?
[root@accent root]#vgextend cours_vg /dev/hdb1
permet de rajouter au VG cours_vg la première partition du disque hdb.
● enlever une partition au VG
[root@accent root]#vgreduce cours_vg /dev/hda1