Read This F****** Manual !

yeah, everything is written, so why don't you read ?

Statistiques

Membres : 67
Contenu : 57
Liens internet : 6
Affiche le nombre de clics des articles : 14781

En ligne actuellement

Nous avons 4 invités en ligne

Share this !

Partager sur: Mr. Wong Partager sur: Webnews Partager sur: Icio Partager sur: Oneview Partager sur: Yigg Partager sur: Linkarena Partager sur: Digg Partager sur: Del.icoi.us Partager sur: Reddit Partager sur: Simpy Partager sur: StumbleUpon Partager sur: Slashdot Partager sur: Netscape Partager sur: Furl Partager sur: Yahoo Partager sur: Blogmarks Partager sur: Diigo Partager sur: Technorati Partager sur: Newsvine Partager sur: Blinkbits Partager sur: Ma.Gnolia Partager sur: Smarking Partager sur: Netvouz Partager sur: Folkd Partager sur: Spurl Partager sur: Google Partager sur: Blinklist Information

Connexion



Utilisation de LVM PDF Imprimer Email
Note des utilisateurs: / 0
MauvaisTrès bien 
Écrit par Benjamin   
Dimanche, 11 Février 2007 00:00

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 (seulement si le système de fichiers le permet). 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

Volume group creation

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.


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

first lv

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

vg full

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 :


all lvs with FS

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

Redimensionnement des logical volumes

Imaginons que nous souhaitions ajouter un disque dur pour utiliser son espace disque.

Préparation du physical volume :

osiris ~ # pvcreate /dev/hdg
 Physical volume "/dev/hdg" successfully created
On étend maintenant le volume group :
osiris ~ # vgextend lvmspace /dev/hdg
 /dev/cdrom: open failed: Read-only file system
 Attempt to close device '/dev/cdrom' which is not open.
 Volume group "lvmspace" successfully extended

vg extended

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

Nous allons maintenant étendre le logical volume home de 3Go. Maintenant il est très important de saisir que nous allons étendre ce qui fait office de lecteur virtuel, pas la partition que nous avons créé dessus, et il sera nécessaire de redimensionner le système de fichiers pour que le lecteur puisse être utilisé dans sa totalité. Le shéma suivant vous illustrera la différence.

osiris ~ # lvextend -L +3G /dev/lvmspace/home
 Extending logical volume home to 10.00 GB
 Logical volume home successfully resized

home extended

Nous voyons bien maintenant que le logical volume à une taille de 10Go.

osiris ~ # lvdisplay /dev/lvmspace/home
 --- 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                10.00 GB
 Current LE             2560
 Segments               3
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:0

Nous allons maintenant étendre le système de fichiers existant sur home en utilisant la commande spécialement mise à disposition pour cela concernant le système de fichiers reiserfs appelée resize_reiserfs.

Il est important de noter que cette opération doit se faire sur une partition non montée !


osiris ~ # resize_reiserfs -s+3G /dev/lvmspace/home
resize_reiserfs 3.6.19 (2003 www.namesys.com)

ReiserFS report:
blocksize             4096
block count           2621440 (1835008)
free blocks           2613149 (1826741)
bitmap block count    80 (56)

Syncing..done

resize_reiserfs: Resizing finished successfully.

Nous allons maintenant faire la même opération sur le lecteur var en étendant la logical volume et le système de fichiers ext3 qui est dessus (grâce à la commande resize2fs) de 5Go.

Contrairement a resize_reiserfs, il est possible de resizer (dans le sens de l'agrandissement) à chaud les partitions ayant ext3 comme filesystem. Ceci peut etre considéré comme un avantage sérieux d'ext3 par rapport à reiser sur des systèmes de production


osiris ~ # lvextend -L +5G /dev/lvmspace/var
 Extending logical volume var to 25.00 GB
 Logical volume var successfully resized
osiris ~ # resize2fs /dev/lvmspace/var 25G
resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/lvmspace/var to 6553600 (4k) blocks.
The filesystem on /dev/lvmspace/var is now 6553600 blocks long.

Voici donc maintenant la situation :


var extended


Rétrecissement d’un logical volume


Admettons maintenant que nous souhaitions ne plus avoir 10Go sur home pour une raison quelconque. La méthode à suivre pour pouvoir procéder au rétrécissement du logical volume est d’abord de redimensionner à la baisse le système de fichiers existant dessus puis de redimensionner à la baisse le logical volume.

Redimensionnement du système de fichiers :

osiris ~ # resize_reiserfs -s-1G /dev/lvmspace/home
resize_reiserfs 3.6.19 (2003 www.namesys.com)

You are running BETA version of reiserfs shrinker.
This version is only for testing or VERY CAREFUL use.
Backup of you data is recommended.

Do you want to continue? [y/N]:y
Processing the tree: 0%....20%....40%....60%....80%....100%    left 0, 0 /sec

nodes processed (moved):
int        0 (0),
leaves     1 (0),
unfm       0 (0),
total      1 (0).

check for used blocks in truncated region

ReiserFS report:
blocksize             4096
block count           2359296 (2621440)
free blocks           2351013 (2613149)
bitmap block count    72 (80)

Syncing..done

resize_reiserfs: Resizing finished successfully.

Redimensionnement du logical volume :

osiris ~ # lvresize -L -1G /dev/lvmspace/home
 WARNING: Reducing active logical volume to 9.00 GB
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce home? [y/n]: y
 Reducing logical volume home to 9.00 GB
 Logical volume home successfully resized
Vous savez maintenant agrandir et reduire des logical volume, étendre des volume groups, vous êtes donc capables de faire pas mal de choses avec cette technologie géniale qu’est LVM.
LAST_UPDATED2
 

Articles liés

 
Joomla 1.5 Templates by Joomlashack