LVM en francais
Page 1 sur 1
LVM en francais
1.1. Introduction
Il est important pour tout administrateur de gérer l'espace disque avec précision. Souvent, les utilisateurs ont le tort de demander leur espace, soit trop grand, soit trop petit, ou pire ... ils ont oubliés un système de fichier ... et bien plus encore! Sous Linux, le système de gestion des volumes logiques LVM est simple, efficace et plus souple que les bonnes vieilles partitions primaires, étendues et secondaires...
1.2. Concept et esprit des LVM
Le système de LVM insère des sous-couches entre la partition de disque et votre système de fichier (là où sont vos données). Ces sous-couches vont vous permettre de modifier dynamiquement la taille des systèmes de fichier, sans mettre en péril vos données. Ainsi vous pourrez ajouter, enlever de l'espace disque d'un filesystem à la volée, rajouter un système de fichier... sans modification de la table des partitions.
Ces deux couches se nomment : le "Volume Group (Abréviation : VG)" et le "Logical Volume (ou LV)".
A un "Volume Group", nous affecterons des partitions de disque. Chaque disque ou partition de disque affecté à un VG lui est exclusivement réservé. Il est impossible d'affecter un même disque à plusieurs VG.
Dans chaque VG, nous créerons plusieurs LV. Chaque LV sera alors formaté et monté dans notre arborescence pour y être utilisé par l'utilisateur final.
Quand nous formatons un LV, nous créons en fait un système de fichier (fs) : c'est cette couche que vous utilisez lorsque vous effectuez l'opération de montage.
Un petit schéma :
Partition(s) de disque
|----> Volume Group
|----> Logicals Volumes
|----> système de fichiers
Au lieu de :
Une partition de disque
|---->un système de fichier
Ces couches intermédiaires vont donc permettre une meilleure mobilité de nos systèmes de fichiers.
2. Préparation du système
2.1. Installation des outils
L'installation requiert simplement un paquet, les outils LVM (version 2). Il vous permettra d'obtenir l'ensemble des commandes pour manipuler le LVM.
Sous Debian : apt-get install lvm2
2.2. Configuration du Noyau
Il vous faudra recompiler votre noyau pour y ajouter les modules suivants :
Kernel 2.4.x
[*] Multiple devices driver support (RAID and LVM)
<M> Logical volume manager (LVM) support
Je vous laisse ensuite reconstruire votre nouveau noyau et redémarrer dessus.
3. Installation du LVM : Etude d'un cas pas à pas
3.1. Créer une partition sur le disque
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@katyucha root]#fdisk /dev/hda
The number of cylinders for this disk is set to 10011.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10011, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-10011, default 10011): +10000M
Command (m for help): p
Disk /dev/hda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 10011 9775521 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Il ne faut pas oublier de faire un "toggle" du type de la partition en "Linux LVM" (code 8e).
Une autre opération est à effectuer pour initialiser le disque au LVM.
[root@katyucha root]#pvcreate /dev/hda1
Nous disposons de notre partition prête à l'utilisation.
3.2. Créons notre VG
Ce VG s'appellera film_vg. Un VG est composé de UNE ou PLUSIEURS partitions.
Créons notre VG, appelé film_vg.
[root@katyucha root]#vgcreate film_vg /dev/hda1
Nous avons initialisé notre VG avec la partition /dev/hda1.
Regardons désormais ce que vous avons créé :
[root@katyucha root]#vgdisplay -v film_vg
Using volume group(s) on command line
Finding volume group "film_vg"
--- Volume group ---
VG Name film_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
Le PV correspond au Volume Physique : dans notre cas la partition /dev/hda1.
Un nouveau sigle apparaît : le PE. Qu'est ce qu'un PE? C'est la plus petite unité de votre VG. Un LV aura une taille minimum de 4.00MB (la taille du PE dans notre cas).
info Les Aixiens auront reconnu leurs fameux PPs.
3.3. Créons un LV
Il nous faut désormais créer un LV.
Nous allons créer un LV de 10Go pour les films en Noir et Blanc dans le VG film_vg.
[root@katyucha root]#lvcreate -L10000 -n lv_noir_blanc film_vg
Nous pouvons désormais voir ses caractéristiques via la commande :
[root@katyucha root]#lvdisplay -v /dev/film_vg/lv_noir_blanc
--- Logical volume ---
LV Name /dev/film_vg/lv_noir_blanc
VG Name film_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
Remarquons que le nombre LE est de 2500.
Le LE est le nombre d'unités de PE affectées à votre volume logique.
LE * Size d'un PE = Taille du LV
ici: 2500 * 4M = 10000M !
Nous avons bien la taille désirée.
Nous aurions pu utiliser la commande suivante pour donner plutot le LE désiré :
[root@katyucha root]#lvcreate -l2500 -n lv_noir_blanc film_vg
3.4. Créons le système de fichier.
Nous appelons souvent vulgairement cette action : formater. En fait, nous créons une couche appelée système de fichier (ou filesystem).
Pour créer un système de fichier en ext3 :
[root@katyucha root]#mkfs.ext3 /dev/film_vg/lv_noir_blanc
Il nous suffit ensuite de faire le montage de notre nouvelle partition.
[root@katyucha root]#mkdir -p /film/noir_et_blanc
[root@katyucha root]#mount /dev/film_vg/lv_noir_blanc /film/noir_et_blanc
Nous avons donc abouti à la création d'un système de fichier utilisable. Maintenant, nous allons pouvoir passer à la gestion du LVM, qui va nous démontrer toute sa puissance.
4. Gestion et Administration : Le LVM au jour le jour
4.1. Modification des LVs
4.1.1. Comment agrandir la taille d'un système de fichier?
La problématique est la suivante. J'ai organisé mes systèmes de fichier ainsi :
film_vg
10 Go : lv_noir_blanc monté sur /film/noir_et_blanc
20 Go : lv_couleur monté sur /film/couleur
30 Go : lv_non_traite
20 Go d'espace libre non utilisé.
Mais, je n'ai plus de place dans /film/noir_et_blanc. Bah oui, il manque 1024 Mo... La solution d'antant aurait été de sauvegarder les films, détruire/recréer la partition, refaire le système de fichier et recopier les fichiers.
Dans notre cas, deux commandes suffisent. Rappellez vous le schéma des couches :
Partition(s) de disque
|----> Volume Group
|----> Logicals Volumes
|----> Filesystem
Nous avons donc deux couches à modifier : Logical Volume et Filesystem.
Première opération : démontage
[root@katyucha root]#umount /film/noir_et_blanc
Le système de fichier est démonté, nous pouvons travailler.
Deuxième opération : agrandissons le LV.
[root@katyucha root]#lvextend -L+1024M /dev/film_vg/lv_noir_blanc
Troisième opération : mettons le système de fichiers à la taille du LV.
[root@katyucha root]#resize2fs /dev/film_vg/lv_noir_blanc
Quatrième opération : montage
[root@katyucha root]#mount /dev/film_vg/lv_noir_blanc /film/noir_et_blanc
La deuxième et troisième opération peuvent être lancées en seule fois pour les formats ext2/ext3 via e2fsadm.
[root@katyucha root]#e2fsadm -L+1024M /dev/film_vg/lv_noir_blanc
4.1.2. Comment réduire la taille d'un système de fichier?
Vous pouvez aussi réduire le LV et le système de fichier. Mais l'opération comporte certains risques non négligeables... Le procédé est le même. Je vous donne la commande pour réduire le LV (celle du système de fichier ne change pas) :
[root@katyucha root]#lvreduce -L-1024M /dev/film_vg/lv_noir_blanc
Vous pouvez aussi supprimer un LV. Il faut auparavant démonter le système de fichier.
Toutes les données seront perdues!
[root@katyucha root]#lvremove /dev/film_vg/lv_couleur
4.1.3. Cas particulier du LV strippé? Qu'est-ce?
Le stripping consiste à écrire alternativement sur un PV, puis sur un autre, les blocs de données.
Ces blocs (en Ko) sont définis à la création du LV, par une puissance de 2.
Exemple :
lvccreate -i2 -I10 -L100M -lv lv_test film_vg
Pour l'option "-i", le 2 correspond au nombre de stripes voulues.
Pour l'option "-I", le 4 correspond à la taille du stripe (4ko)
4.2. Opérations sur les VGs
4.2.1. Comment ajouter une partition au VG?
La gestion d'un VG consiste principalement en l'ajout d'une partition dans un VG, ou en sa suppression..
[root@katyucha root]#vgextend film_vg /dev/hdb1
permet de rajouter au VG film_vg la première partition du disque hdb.
Vous pouvez ensuite rajouter/modifier/etendre vos LVs à souhait.
4.2.2. Comment enlever une partition au VG?
Pour enlever une partition :
[root@katyucha root]#vgreduce film_vg /dev/hda1
warning Attention !
on ne peut pas enlever une partition s'il ne reste pas assez de place sur les autres partitions du VG
Il est important pour tout administrateur de gérer l'espace disque avec précision. Souvent, les utilisateurs ont le tort de demander leur espace, soit trop grand, soit trop petit, ou pire ... ils ont oubliés un système de fichier ... et bien plus encore! Sous Linux, le système de gestion des volumes logiques LVM est simple, efficace et plus souple que les bonnes vieilles partitions primaires, étendues et secondaires...
1.2. Concept et esprit des LVM
Le système de LVM insère des sous-couches entre la partition de disque et votre système de fichier (là où sont vos données). Ces sous-couches vont vous permettre de modifier dynamiquement la taille des systèmes de fichier, sans mettre en péril vos données. Ainsi vous pourrez ajouter, enlever de l'espace disque d'un filesystem à la volée, rajouter un système de fichier... sans modification de la table des partitions.
Ces deux couches se nomment : le "Volume Group (Abréviation : VG)" et le "Logical Volume (ou LV)".
A un "Volume Group", nous affecterons des partitions de disque. Chaque disque ou partition de disque affecté à un VG lui est exclusivement réservé. Il est impossible d'affecter un même disque à plusieurs VG.
Dans chaque VG, nous créerons plusieurs LV. Chaque LV sera alors formaté et monté dans notre arborescence pour y être utilisé par l'utilisateur final.
Quand nous formatons un LV, nous créons en fait un système de fichier (fs) : c'est cette couche que vous utilisez lorsque vous effectuez l'opération de montage.
Un petit schéma :
Partition(s) de disque
|----> Volume Group
|----> Logicals Volumes
|----> système de fichiers
Au lieu de :
Une partition de disque
|---->un système de fichier
Ces couches intermédiaires vont donc permettre une meilleure mobilité de nos systèmes de fichiers.
2. Préparation du système
2.1. Installation des outils
L'installation requiert simplement un paquet, les outils LVM (version 2). Il vous permettra d'obtenir l'ensemble des commandes pour manipuler le LVM.
Sous Debian : apt-get install lvm2
2.2. Configuration du Noyau
Il vous faudra recompiler votre noyau pour y ajouter les modules suivants :
Kernel 2.4.x
[*] Multiple devices driver support (RAID and LVM)
<M> Logical volume manager (LVM) support
Je vous laisse ensuite reconstruire votre nouveau noyau et redémarrer dessus.
3. Installation du LVM : Etude d'un cas pas à pas
3.1. Créer une partition sur le disque
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@katyucha root]#fdisk /dev/hda
The number of cylinders for this disk is set to 10011.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/hda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10011, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-10011, default 10011): +10000M
Command (m for help): p
Disk /dev/hda: 82.3 GB, 82348277760 bytes
255 heads, 63 sectors/track, 10011 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 10011 9775521 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Il ne faut pas oublier de faire un "toggle" du type de la partition en "Linux LVM" (code 8e).
Une autre opération est à effectuer pour initialiser le disque au LVM.
[root@katyucha root]#pvcreate /dev/hda1
Nous disposons de notre partition prête à l'utilisation.
3.2. Créons notre VG
Ce VG s'appellera film_vg. Un VG est composé de UNE ou PLUSIEURS partitions.
Créons notre VG, appelé film_vg.
[root@katyucha root]#vgcreate film_vg /dev/hda1
Nous avons initialisé notre VG avec la partition /dev/hda1.
Regardons désormais ce que vous avons créé :
[root@katyucha root]#vgdisplay -v film_vg
Using volume group(s) on command line
Finding volume group "film_vg"
--- Volume group ---
VG Name film_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
Le PV correspond au Volume Physique : dans notre cas la partition /dev/hda1.
Un nouveau sigle apparaît : le PE. Qu'est ce qu'un PE? C'est la plus petite unité de votre VG. Un LV aura une taille minimum de 4.00MB (la taille du PE dans notre cas).
info Les Aixiens auront reconnu leurs fameux PPs.
3.3. Créons un LV
Il nous faut désormais créer un LV.
Nous allons créer un LV de 10Go pour les films en Noir et Blanc dans le VG film_vg.
[root@katyucha root]#lvcreate -L10000 -n lv_noir_blanc film_vg
Nous pouvons désormais voir ses caractéristiques via la commande :
[root@katyucha root]#lvdisplay -v /dev/film_vg/lv_noir_blanc
--- Logical volume ---
LV Name /dev/film_vg/lv_noir_blanc
VG Name film_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
Remarquons que le nombre LE est de 2500.
Le LE est le nombre d'unités de PE affectées à votre volume logique.
LE * Size d'un PE = Taille du LV
ici: 2500 * 4M = 10000M !
Nous avons bien la taille désirée.
Nous aurions pu utiliser la commande suivante pour donner plutot le LE désiré :
[root@katyucha root]#lvcreate -l2500 -n lv_noir_blanc film_vg
3.4. Créons le système de fichier.
Nous appelons souvent vulgairement cette action : formater. En fait, nous créons une couche appelée système de fichier (ou filesystem).
Pour créer un système de fichier en ext3 :
[root@katyucha root]#mkfs.ext3 /dev/film_vg/lv_noir_blanc
Il nous suffit ensuite de faire le montage de notre nouvelle partition.
[root@katyucha root]#mkdir -p /film/noir_et_blanc
[root@katyucha root]#mount /dev/film_vg/lv_noir_blanc /film/noir_et_blanc
Nous avons donc abouti à la création d'un système de fichier utilisable. Maintenant, nous allons pouvoir passer à la gestion du LVM, qui va nous démontrer toute sa puissance.
4. Gestion et Administration : Le LVM au jour le jour
4.1. Modification des LVs
4.1.1. Comment agrandir la taille d'un système de fichier?
La problématique est la suivante. J'ai organisé mes systèmes de fichier ainsi :
film_vg
10 Go : lv_noir_blanc monté sur /film/noir_et_blanc
20 Go : lv_couleur monté sur /film/couleur
30 Go : lv_non_traite
20 Go d'espace libre non utilisé.
Mais, je n'ai plus de place dans /film/noir_et_blanc. Bah oui, il manque 1024 Mo... La solution d'antant aurait été de sauvegarder les films, détruire/recréer la partition, refaire le système de fichier et recopier les fichiers.
Dans notre cas, deux commandes suffisent. Rappellez vous le schéma des couches :
Partition(s) de disque
|----> Volume Group
|----> Logicals Volumes
|----> Filesystem
Nous avons donc deux couches à modifier : Logical Volume et Filesystem.
Première opération : démontage
[root@katyucha root]#umount /film/noir_et_blanc
Le système de fichier est démonté, nous pouvons travailler.
Deuxième opération : agrandissons le LV.
[root@katyucha root]#lvextend -L+1024M /dev/film_vg/lv_noir_blanc
Troisième opération : mettons le système de fichiers à la taille du LV.
[root@katyucha root]#resize2fs /dev/film_vg/lv_noir_blanc
Quatrième opération : montage
[root@katyucha root]#mount /dev/film_vg/lv_noir_blanc /film/noir_et_blanc
La deuxième et troisième opération peuvent être lancées en seule fois pour les formats ext2/ext3 via e2fsadm.
[root@katyucha root]#e2fsadm -L+1024M /dev/film_vg/lv_noir_blanc
4.1.2. Comment réduire la taille d'un système de fichier?
Vous pouvez aussi réduire le LV et le système de fichier. Mais l'opération comporte certains risques non négligeables... Le procédé est le même. Je vous donne la commande pour réduire le LV (celle du système de fichier ne change pas) :
[root@katyucha root]#lvreduce -L-1024M /dev/film_vg/lv_noir_blanc
Vous pouvez aussi supprimer un LV. Il faut auparavant démonter le système de fichier.
Toutes les données seront perdues!
[root@katyucha root]#lvremove /dev/film_vg/lv_couleur
4.1.3. Cas particulier du LV strippé? Qu'est-ce?
Le stripping consiste à écrire alternativement sur un PV, puis sur un autre, les blocs de données.
Ces blocs (en Ko) sont définis à la création du LV, par une puissance de 2.
Exemple :
lvccreate -i2 -I10 -L100M -lv lv_test film_vg
Pour l'option "-i", le 2 correspond au nombre de stripes voulues.
Pour l'option "-I", le 4 correspond à la taille du stripe (4ko)
4.2. Opérations sur les VGs
4.2.1. Comment ajouter une partition au VG?
La gestion d'un VG consiste principalement en l'ajout d'une partition dans un VG, ou en sa suppression..
[root@katyucha root]#vgextend film_vg /dev/hdb1
permet de rajouter au VG film_vg la première partition du disque hdb.
Vous pouvez ensuite rajouter/modifier/etendre vos LVs à souhait.
4.2.2. Comment enlever une partition au VG?
Pour enlever une partition :
[root@katyucha root]#vgreduce film_vg /dev/hda1
warning Attention !
on ne peut pas enlever une partition s'il ne reste pas assez de place sur les autres partitions du VG
the_major_nmy_s- Messages : 37
Date d'inscription : 05/11/2007
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|