Accueil du site > Système > Utilisation de LVM
Aller à ...
OMFG
Informations
Dans la rubrique Système , cet article a été écrit par b3nj et publié le 11 février 2007.
2011 personnes ont affiché cette page et sa popularité est de 1.
Pebkac
Mots clefs
I see dead pixels.
Outils
SYN
Utilisation de LVM
pour logical volume manager

Notions basiques

Comme dit dans le chapeau, LVM2 vous permet de pouvoir créer des partitions s’étendant sur plusieurs disques en les regroupant en volumes virtuels. Il permet également de pouvoir agrandir la taille des partitions existantes facilement [1]. Cela permet d’avoir une gestion de disque bien plus scalable car l’ajout ou la suppression d’espace est très facile et permet d’agrandir les ressources disponibles sur un système sans avoir à repartitionner toute la machine (et la plupart du temps réinstaller la machine).

Physical volumes and volume groups

La méthode utilisée par LVM2 pour permettre de gérer plusieurs disques en tant qu’une seule même unité est de regrouper toutes les partitions que l’on souhaite utiliser avec LVM2 dans un ou plusieurs "volume groups".

Pour cela, il est nécessaire de créer un "physical volume", opération qui premet de préparer une partition, un disque entier dans un format que LVM2 utilisera plus tard pour stocker les données.

Cela se fait au moyen de la commande pvcreate.

Par exemple si j’ai un disque de 6.4Go situé en /dev/hdb et un disque de 40Go en /dev/hde, je les initialiserais de la façon suivante :


osiris ~ # pvcreate /dev/hdb
Physical volume "/dev/hdb" successfully created
osiris ~ # pvcreate /dev/hde
Physical volume "/dev/hdb" successfully created

Nous pouvons vérifier que les deux physical volumes sont bien préparés en utilisant la commande pvdisplay ce qui retournerait :


livecd ~ # pvdisplay
 --- NEW Physical volume ---
 PV Name               /dev/hde
 VG Name
 PV Size               37.27 GB
 Allocatable           NO
 PE Size (KByte)       0
 Total PE              0
 Free PE               0
 Allocated PE          0
 PV UUID               f0iIbU-ayPe-kpoy-d3bP-hfDP-JqPO-5MVLT7

 --- NEW Physical volume ---
 PV Name               /dev/hdb
 VG Name
 PV Size               6.01 GB
 Allocatable           NO
 PE Size (KByte)       0
 Total PE              0
 Free PE               0
 Allocated PE          0
 PV UUID               yV0Qht-jGSe-jdDo-jErn-cgYi-tbR6-ITqrz1

Nous avons donc deux disques préparés pour l’utilisation dans un volume group. Il est maintenant nécessaire de créer un volume group de la façon suivante (nous lui donnerons le nom lvmspace)


osiris ~ # vgcreate lvmspace /dev/hdb
 Volume group "lvmspace" successfully created

Le volume group est maintenant créé et totalise une taille de 6.01Go, ce que nous pouvons vérifier avec la commande vgdisplay :


osiris ~ # vgdisplay
 --- Volume group ---
 VG Name               lvmspace
 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               6.00 GB
 PE Size               4.00 MB
 Total PE              1537
 Alloc PE / Size       0 / 0
 Free  PE / Size       1537 / 6.00 GB
 VG UUID               W7zp0w-pYZk-xkg1-9u37-9kiI-30uM-yA6Yji

Création du volume group

La prochaine opération permettra d’étendre la taille du volume group avec la taille du disque /dev/hde.


osiris ~ # vgextend lvmspace /dev/hde
 /dev/cdrom: open failed: Read-only file system
 /dev/cdrom: open failed: Read-only file system
 Attempt to close device '/dev/cdrom' which is not open.
 Volume group "lvmspace" successfully extended

Ne prêtez pas attention aux messages concernant le lecteur cd.

Voici une représentation de l’opération que l’on vient de réaliser, à savoir cumuler les deux espaces disques physiques dans un disque virtuel.

Extension du volume group

Nous pouvons donc vérifier que la taille du volume group à bien été augmentée :


osiris ~ # vgdisplay
 --- Volume group ---
 VG Name               lvmspace
 System ID
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  2
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                0
 Open LV               0
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               43.27 GB
 PE Size               4.00 MB
 Total PE              11078
 Alloc PE / Size       0 / 0
 Free  PE / Size       11078 / 43.27 GB
 VG UUID               W7zp0w-pYZk-xkg1-9u37-9kiI-30uM-yA6Yji

On peut voir maintenant avec pvdisplay que les disques ont été totalement affectés au volume group.


osiris ~ # pvdisplay
 --- Physical volume ---
 PV Name               /dev/hdb
 VG Name               lvmspace
 PV Size               6.00 GB / not usable 0
 Allocatable           yes
 PE Size (KByte)       4096
 Total PE              1537
 Free PE               1537
 Allocated PE          0
 PV UUID               yV0Qht-jGSe-jdDo-jErn-cgYi-tbR6-ITqrz1

 --- Physical volume ---
 PV Name               /dev/hde
 VG Name               lvmspace
 PV Size               37.27 GB / not usable 0
 Allocatable           yes
 PE Size (KByte)       4096
 Total PE              9541
 Free PE               9541
 Allocated PE          0
 PV UUID               f0iIbU-ayPe-kpoy-d3bP-hfDP-JqPO-5MVLT7

Maintenant que nous avons un espace disque virtuel utilisable, nous allons pouvoir créer des partitions sur cet espace afin de pouvoir les utiliser. Commençons par créer une partition, que l’on appelle logical volume lorsque l’on utilise LVM, nommée home d’une taille de 7Go avec la commande lvcreate.


osiris ~ # lvcreate -L 7G -n home lvmspace
 Logical volume "home" created

Ajout d'un logical volume

Nous pouvons voir les détails du résultat de l’opération précédente avec la commande lvdisplay.


osiris ~ # lvdisplay
 --- Logical volume ---
 LV Name                /dev/lvmspace/home
 VG Name                lvmspace
 LV UUID                icrus5-H10v-GqTG-NW0L-cwUR-FW2P-T5eqy1
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                7.00 GB
 Current LE             1792
 Segments               2
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:0

Nous pouvons également constater que le logical volume créé plus tot occupe tout l’espace de /dev/hdb et une petite partie de /dev/hde.


osiris ~ # pvdisplay
 --- Physical volume ---
 PV Name               /dev/hdb
 VG Name               lvmspace
 PV Size               6.00 GB / not usable 0
 Allocatable           yes (but full)
 PE Size (KByte)       4096
 Total PE              1537
 Free PE               0
 Allocated PE          1537
 PV UUID               yV0Qht-jGSe-jdDo-jErn-cgYi-tbR6-ITqrz1

 --- Physical volume ---
 PV Name               /dev/hde
 VG Name               lvmspace
 PV Size               37.27 GB / not usable 0
 Allocatable           yes
 PE Size (KByte)       4096
 Total PE              9541
 Free PE               9286
 Allocated PE          255
 PV UUID               f0iIbU-ayPe-kpoy-d3bP-hfDP-JqPO-5MVLT7

Créons maintenant un logical volume de 20Go nommée var.


osiris ~ # lvcreate -L 20G -n var lvmspace
 Logical volume "var" created

Voyons le résultat de la commande précédente :


osiris ~ # lvdisplay
 --- Logical volume ---
 LV Name                /dev/lvmspace/home
 VG Name                lvmspace
 LV UUID                icrus5-H10v-GqTG-NW0L-cwUR-FW2P-T5eqy1
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                7.00 GB
 Current LE             1792
 Segments               2
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:0

 --- Logical volume ---
 LV Name                /dev/lvmspace/var
 VG Name                lvmspace
 LV UUID                GNPaI1-7jlr-oUYZ-6qot-1cS8-gN8G-Ig6cJ2
 LV Write Access        read/write
 LV Status              available
 # open                 0
 LV Size                20.00 GB
 Current LE             5120
 Segments               1
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:1

Nous voyons donc bien que 27Go sont occupés dans le volume group lvmspace.


osiris ~ # vgdisplay
 --- Volume group ---
 VG Name               lvmspace
 System ID
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  4
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                2
 Open LV               0
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               43.27 GB
 PE Size               4.00 MB
 Total PE              11078
 Alloc PE / Size       6912 / 27.00 GB
 Free  PE / Size       4166 / 16.27 GB
 VG UUID               W7zp0w-pYZk-xkg1-9u37-9kiI-30uM-yA6Yji

Créons maintenant un logical volume de 3Go nommé tmp et un dernier logical volume de 13.27Go pour remplir tout l’espace disque disponible.


osiris ~ # lvcreate -L 3G -n tmp lvmspace
 Logical volume "tmp" created
osiris ~ # lvcreate -L 13.27G -n portage lvmspace
 Rounding up size to full physical extent 13.27 GB
 Logical volume "portage" created

Nous voyons donc maintenant qu’il n’y a plus d’espace disque disponible dans le volume group.


osiris ~ # vgdisplay
 --- Volume group ---
 VG Name               lvmspace
 System ID
 Format                lvm2
 Metadata Areas        2
 Metadata Sequence No  6
 VG Access             read/write
 VG Status             resizable
 MAX LV                0
 Cur LV                4
 Open LV               0
 Max PV                0
 Cur PV                2
 Act PV                2
 VG Size               43.27 GB
 PE Size               4.00 MB
 Total PE              11078
 Alloc PE / Size       11078 / 43.27 GB
 Free  PE / Size       0 / 0
 VG UUID               W7zp0w-pYZk-xkg1-9u37-9kiI-30uM-yA6Yji

Le schéma actuel est le suivant :


osiris ~ # ls /dev/lvmspace/
home  portage  tmp  var

Volume group plein

Nous allons donc maintenant créer des systèmes de fichier sur les logical volumes afin de pouvoir les utiliser comme des partitions standard.


osiris ~ # mkfs.ext3 /dev/lvmspace/tmp -L "/tmp"
osiris ~ # mkfs.ext3 /dev/lvmspace/var -L "/var"
osiris ~ #mkfs.reiserfs /dev/lvmspace/portage -l "/usr/portage"
osiris ~ # mkfs.reiserfs /dev/lvmspace/home -l "/home"

Nous avons donc le schéma suivant :

Systèmes de fichiers créés

Nous allons dans la prochaine partie voir à quel point l’utilisation de LVM2 est un avantage.

pages : 1 2 >>

[1] Attention, seulement si le système de fichiers le permet