Joseph Tux
Volumes logiques

LVM (v2)

samedi 6 novembre 2010

CRÉATION

  • gparted 0x8e lvm (ne pas formater)
  • pvcreate /dev/sdb4
  • vgcreate VG_BKP_sdb4 /dev/sdb4
  • lvcreate —size 500g —name LV_BKP VG_BKP_sdb4
  • lvdisplay | egrep sdb4 ( affiche le nom de la partition virtuelle à formater )
  • mkfs.xfs /dev/VG_BKP_sdb4/LV_BKP

Liens

Cet aide-mémoire personnel de novice est largement inspiré par « Administration Linux à 200%, Tome2 -avril 2006 [feu O’Reilly France] » ( merci aux auteurs[Bill von Hagen et Brian K.Jones] et traducteurs[Sandrine Burriel et François Cerbelle] )

Commandes

Aide mémoire de lvm

Principe

  1. Partitionner le(s) disque(s) voir « Outils de partitionnement »
    - Ox8e
  2. Utiliser des partitions comme Volumes Physiques ( PV ) :
    - 1 PARTITION == 1 Volume Physique (PV)
    -  pvcreate /dev/hdd2
  3. Assigner des « extent » physiques (PE ) de un ou plusieurs PV en 1 Groupe de volume ( VG ) :
    -  vgcreate nom_du_VG /dev/hdd2
  4. Créer un volume logique ( LV )
    - 1 ou plusieurs volumes logiques (LV) par Groupe de Volumes (VG)
    - Dimension exprimée en Physiques Extends (PE) dans la limite des PE Libres ( Fee PE)
    -  lvcreate -l nombre_de_PE nom_du_VG -n nom_du_LV
  5. Formater le VL ( système de fichier ici : XFS )
    -  mkfs -t xfs /dev/nom_du_VG/nom_du_LV
  6. montage :
    -  mount -t xfs /dev/nom_du_VG/nom_du_LV/ /repertoire de montage/
  7. fstab :
    -  /dev/nom_du_VG/nom_du_LV/ /repertoire de montage/ xfs defaults,noatime 0 0

Partitionner le disque

Partitionner

  1. Préserver une partition / (racine) et une partition /boot sur un système de fichier « direct », « classique » ( ext2/ext3 par exemple ) pour assurer le démarrage du système
  2. Partition du type 0x8e = « Linux LVM »
  3. formatage inutile : attribution lvm
  4. Préférer de nombreuses partitions :
    - en cas de crash disque, moins de dégats, moins de difficultés à récupérer les données.
    - Avec RAID, un disque = une partition = un volume physique est envisageable.

pvcreate

Créer les volumes physiques

  • Déclarer les partitions comme volumes physiques
  • pvcreate /dev/hdb1 /dev/hdc1
  • pvdisplay affiche :
    pvdisplay /dev/hda9
     --- Physical volume ---
     PV Name               /dev/hda9
     VG Name               GV_home_9
     PV Size               279,39 GB / not usable 0
     Allocatable           yes (but full)
     PE Size (KByte)       4096
     Total PE              71525
     Free PE               0
     Allocated PE          71525
     PV UUID               ISjUpw-hMuW-3IL1-h1hp-NDLA-Sxn5-GSCOT8

vgcreate

Créer un groupe de volumes

  • vgcreate GV_home_9 /dev/hda9 /dev/hdc1
    • Ici 2 volumes physiques ont été attribués au groupe de volume « GV_home_9 »
  • vgdisplay nom_du_groupe affiche :
    vgdisplay GV_home_9
     --- Volume group ---
     VG Name               GV_home_9
     System ID
     Format                lvm2
     Metadata Areas        1
     Metadata Sequence No  2
     VG Access             read/write
     VG Status             resizable
     MAX LV                0
     Cur LV                1
     Open LV               1
     Max PV                0
     Cur PV                1
     Act PV                1
     VG Size               279,39 GB
     PE Size               4,00 MB
     Total PE              71525
     Alloc PE / Size       71525 / 279,39 GB
     Free  PE / Size       0 / 0
     VG UUID               4RiIhJ-Ypch-Hl1O-jKmC-9jhl-CVyy-XpO43G


    - Un groupe de volume donné est composé d’extents de taille identique.


lvcreate

Créer un volume logique dans ce groupe de volumes.

  • pvdisplay /dev/hda9 | grep « Free PE » affiche la quantité d’Extents libres.
    pvdisplay /dev/hda9
  • --- Physical volume ---
  • PV Name /dev/hda9
  • VG Name GV_home_9
  • PV Size 279,39 GB / not usable 0
  • Allocatable yes (but full)
  • PE Size (KByte) 4096
  • Total PE 71525
  • Free PE 0
  • Allocated PE 71525
  • PV UUID ISjUpw-hMuW-3IL1-h1hp-NDLA-Sxn5-GSCOT8
  • lvcreate -l 71525 GV_home_9 -n VL_home
  • lvcreate —logical GV_home_9 —name VL_home
    • Ici un volume logique VL_home est créé dans le groupe de volumes GV_home_9.
    • On lui alloue tous les Extents disponibles.

Autre possibilité :

  • lvcreate —size 2g —name VL_home GV_home_9
    • Ici sa taille serait de 2 Go (comme LVM nous permet d’étendre à volonté la taille des volumes logiques, il n’est pas nécessaire d’utilisez tout l’espace disponible dans le groupe de volumes)

/dev/Groupe_de_Volumes/Volume_logique

Désignation des volumes logiques

- Une fois le volume logique créé, LVM y associe un fichier spécial de type bloc à cet emplacement : « /dev/Groupe_de_Volumes/volume_logique ».
- Il est utilisable comme une partition sur un disque.

/dev/Groupe_de_volumes/volume_logique est un lien symbolique vers
- /dev/mapper/Groupe_de_volumes-volume_logique

  • Sur squeeze (Debian 6) - ( 2.6.32-5-amd64 ) le lien symbolique est vers
    - /dev/dm-x ( x est un nombre)

formater le volume logique

Formatage

- L’article 1 recommande XFS
- mkfs -t xfs /dev/GV_xx/LV_xy

monter le volume logique

mount..

- mount -t xfs /dev/GV_home_9/VL_home /home


fstab

fstab

L’article propose l’option noatime
- ne pas mettre à jour l’inode à chaque accès fichier est un gain ( minime ) de temps et surtout une économie d’usure du disque dur.

Snapshot

snapshot

EN RÉSUMÉ :

  1. lvcreate —snapshot —size 100M —name nom_de_l_image /dev/nomVG/nomLV/
  2. mkdir /point_de_montage
  3. mount -t xfs /dev/nomVG/nomLV/ /point_de_montage -o nouuid,ro
  4. Action ( par exemple sauvegarde pendant les modifications )
  5. umount /point_de_montage
  6. lvremove /dev/nomVG/nomLV/

PRÉREQUIS :
nécessite le module kernel : dm_snapshot

  • sur etch : lsmod | grep -i dm_snapshot donne :
    • dm_snapshot 15904 0
    • dm_mod 50776 13 dm_mirror,dm_snapshot
  1. Créer une « image instantanée » : lvcreate -s -L 100M -n nom_de_l_image /dev/nomVG/nomLV/
  2. plus compréhensible : lvcreate —snapshot —size 100M —name nom_de_l_image /dev/nomVG/nomLV/
    -L 100M alloue 100M pour les modifications à venir
  3. Monter l’instantané :
    mount /dev/nomVG/nomLV/ /montage
  4. lvs = ne pas attendre que l’instantané soit rempli à 100% ( débordement d’instantané ! )
    Dans ce cas la prévention ( de perte de données ) est pire que le mal : à partir de 100 %, plus aucune modification n’est prise en compte !
    Mais, en cas de perte de fichier il suffit de le recopier à partir du LV figé .
  5. lvremove Supprimer une image instantanée ( = mettre à jour les modifications et perdre l’archive initiale )

Autres commandes

  1. lvs pour s’informer
  2. lvextend pour agrandir
  3. lvreduce pour supprimer
  4. pvmove /dev/hdd2 pour déplacer les extends de /dev/hdd2 vers les autres volume physiques (PV) du même groupe de volumes (VG) ,
    - par exemple avant d’enlever ou remplacer /dev/hdd (ATTENTION c’est TRÈS LENT)
  5. lvresize

 Toutes les commandes

  • avec lvm help

Available lvm commands : (...)

Available lvm commands :
Use ’lvm help ’ for more information

- dumpconfig Dump active configuration
- formats List available metadata formats
- help Display help for commands
- lvchange Change the attributes of logical volume(s)
- lvconvert Change logical volume layout
- lvcreate Create a logical volume
- lvdisplay Display information about a logical volume
- lvextend Add space to a logical volume
- lvmchange With the device mapper, this is obsolete and does nothing.
- lvmdiskscan List devices that may be used as physical volumes
- lvmsadc Collect activity data
- lvmsar Create activity report
- lvreduce Reduce the size of a logical volume
- lvremove Remove logical volume(s) from the system
- lvrename Rename a logical volume
- lvresize Resize a logical volume
- lvs Display information about logical volumes
- lvscan List all logical volumes in all volume groups
- pvchange Change attributes of physical volume(s)
- pvresize Resize physical volume(s)
- pvck Check the consistency of physical volume(s)
- pvcreate Initialize physical volume(s) for use by LVM
- pvdata Display the on-disk metadata for physical volume(s)
- pvdisplay Display various attributes of physical volume(s)
- pvmove Move extents from one physical volume to another
- pvremove Remove LVM label(s) from physical volume(s)
- pvs Display information about physical volumes
- pvscan List all physical volumes
- lvm segtypes List available segment types
- vgcfgbackup Backup volume group configuration(s)
- vgcfgrestore Restore volume group configuration
- vgchange Change volume group attributes
- vgck Check the consistency of volume group(s)
- vgconvert Change volume group metadata format
- vgcreate Create a volume group
- vgdisplay Display volume group information
- vgexport Unregister volume group(s) from the system
- vgextend Add physical volumes to a volume group
- vgimport Register exported volume group with system
- vgmerge Merge volume groups
- vgmknodes Create the special files for volume group devices in /dev
- vgreduce Remove physical volume(s) from a volume group
- vgremove Remove volume group(s)
- vgrename Rename a volume group
- vgs Display information about volume groups
- vgscan Search for all volume groups
- vgsplit Move physical volumes into a new or existing volume group
- version Display software and driver version information

  • Commandes d’information : [1]

lvmdiskscan

lvmdiskscan

- /dev/md0 [ 1,78 TiB] LVM physical volume
- /dev/dm-0 [ 500,00 GiB]
- /dev/dm-1 [ 465,66 GiB]
- /dev/dm-2 [ 952,00 MiB]
- /dev/sda3 [ 12,03 GiB]
- /dev/dm-3 [ 9,31 GiB]
- /dev/dm-4 [ 952,00 MiB]
- /dev/sda5 [ 904,04 GiB] LVM physical volume
- /dev/dm-5 [ 3,72 GiB]
- /dev/dm-6 [ 558,79 GiB]
- /dev/dm-7 [ 4,66 GiB]
- /dev/dm-8 [ 4,66 GiB]
- /dev/dm-9 [ 1,86 GiB]
- /dev/sdb1 [ 200,00 MiB]
- /dev/sdb2 [ 330,85 GiB]
- /dev/sdb3 [ 12,01 GiB]
- /dev/sdb4 [ 588,46 GiB] LVM physical volume
- /dev/root [ 7,45 GiB]
- /dev/sdc2 [ 478,50 MiB]
- /dev/sdc3 [ 11,18 GiB]
- /dev/sdd1 [ 7,45 GiB]
- /dev/sdd2 [ 478,50 MiB]
- /dev/sdd3 [ 11,18 GiB]
- 1 disk
- 19 partitions
- 0 LVM physical volume whole disks
- 3 LVM physical volumes

EN BREF

COMMENCER

Aide mémoire de lvm

Principe

  1. Partitionner le(s) disque(s)
  2. Utiliser des partitions comme Volumes Physiques ( PV ) : pvcreate /dev/hdd2
  3. Assigner des « extent » physiques (PE ) de un ou plusieurs PV en 1 Groupe de volume ( VG ) : vgcreate nom_du_VG /dev/hdd2
  4. Créer un volume logique ( LV ) lvcreate -l nombre_de_PE nom_du_VG -n nom_du_LV
  5. Formater le VL ( système de fichier ) mkfs -t xfs /dev/nom_du_VG/nom_du_LV
  6. montage : mount -t xfs /dev/nom_du_VG/nom_du_LV/ /repertoire de montage/
  7. fstab : /dev/nom_du_VG/nom_du_LV/ /repertoire de montage/ xfs defaults,noatime 0 0

EN BREF : ENSUITE

  1. Enlever un groupe de volumes ( VG)
    - Désactiver : vgchange -a n mon_groupe_de_volumes.
    - Supprimer : vgremove mon_groupe_de_volumes.
  2. Ajouter un volume physique ( PV) à un groupe de volumes (VG)
    - vgextend mon_groupe_de_volumes /dev/hdd10
  3. Étendre un volume logique ( LV ) :
    - TAILLE FINALE
    - ( en octets ) lvextend -L12G /dev/monvg/homevol
    - (en extents) lvextend -l10280 /dev/monvg/homevol
    - TAILLE AJOUTÉE
    - ( en octets ) lvextend -L+1G /dev/monvg/homevol
    - (en extents) lvextend -l+12801G /dev/monvg/homevol
  4. Étendre ( ajuster ) la taille du système de fichiers :
    - xfs (système monté) => xfs_growfs /home/backup/
    - ext2/ext3 (démonté) => ext2resize /dev/monvg/homevol
    - reiserfs ( indifférent) => resize_reiserfs -f /dev/monvg/homevol

Partitionner le disque

Préserver une partition / (racine) et une partition /boot sur un système de fichier « direct » ( ext2/ext3 par exemple ) pour assurer le démarrage du système.

formatage inutile : attribution lvm.

Préférer de nombreuses partitions : en cas de crash disque, moins de dégats, moins de difficultés à récupérer les données.

pvcreate

vgcreate

lvcreate

formater le volume logique

monter le volume logique

fstab

snapshot

RÉSUMÉ

  1. lvcreate —snapshot —size 100M —name nom_de_l_image /dev/nomVG/nomLV/
  2. mkfs -t xfs /dev/nomVG/nomLV/
  3. mkdir /point_de_montage
  4. mount -t xfs /dev/nomVG/nomLV/ /point_de_montage -o nouuid,ro
  5. Action ( par exemple sauvegarde pendant les modifications )
  6. umount /point_de_montage
  7. lvremove /dev/nomVG/nomLV/

PRÉREQUIS :
nécessite le module kernel : dm_snapshot

  • sur etch : lsmod | grep -i dm_snapshot donne :
    • dm_snapshot 15904 0
    • dm_mod 50776 13 dm_mirror,dm_snapshot
  1. Créer une « image instantanée » : lvcreate -s -L 100M -n nom_de_l_image /dev/nomVG/nomLV/
  2. plus compréhensible : lvcreate —snapshot —size 100M —name nom_de_l_image /dev/nomVG/nomLV/
    -L 100M alloue 100M pour les modifications à venir
  3. Monter l’instantané :
    mount /dev/nomVG/nomLV/ /montage
  4. lvs = ne pas attendre que l’instantané soit rempli à 100% ( débordement d’instantané ! )
    Dans ce cas la prévention ( de perte de données ) est pire que le mal : à partir de 100 %, plus aucune modification n’est prise en compte !
    Mais, en cas de perte de fichier il suffit de le recopier à partir du LV figé .
  5. lvremove Supprimer une image instantanée ( = mettre à jour les modifications et perdre l’archive initiale )

Autres commandes

  1. lvextend pour agrandir
  2. lvreduce pour supprimer
  1. pvmove /dev/hdd2 pour déplacer les extends de /dev/hdd2 vers les autres volume physiques (PV) du même groupe de volumes (VG) , par exemple avant d’enlever ou remplacer /dev/hdd (ATTENTION ! c’est TRÈS LENT)

Options

Il est possible de définir la taille des physical extents :

  • 4Mo ( = 256 Go pour 1 VG de 65534 PE ) par défaut , et sur Debian
  • 32 Mo ( = 2 To pour 1 VG ) sur Fedora, RHEL et dérivés.

Script

Projet : script interactif pour

  • agrandir un volume logique
  • créer, surveiller et supprimer un snapshot ( photo instantanée )
  1. Affichage des données utiles à a tache demandée
  2. Lancement de la commande ( avec confirmation ) ou informations complémentaires ou renoncement.

lvextend

Agrandir un volume logique

À chaud : [2]
Sous XFS le volume logique doit être monté pour être redimensionné.

  • soit lvextend -L+1G /dev/vg_name/lv_name = agrandir un volume logique d’ 1G supplémentaire
  • soit lvextend -L12G /dev/vg_name/lv_name = agrandir un volume logique jusqu’à 12G

Ensuite la taille du système de fichier doit être ajustée :

  • xfs_growfs /point/de/montage pour XFS [3]
EXEMPLE
agrandir /home, monté sur /dev/mapper/VG_tout-home

VÉRIFICATION PRÉALABLE
* /home est-il bien monté ? ( mount, ou mieux: df )
* VG_tout dispose-t-il d'espace libre à la mesure du besoin ? ( vgdisplay )

ACTION
lvextend /dev/mapper/VG_tout/home
xfs_growfs /home

et c’est tout !

lvextend -L+1G /dev/

[2encore un avantage de XFS

[3autres systèmes : à voir


Accueil | Contact | Plan du site | | Statistiques du site | Visiteurs : 162 / 59178

Suivre la vie du site fr  Suivre la vie du site GNU, LINUX, BSD, LL  Suivre la vie du site AIDES GNU/LINUX  Suivre la vie du site Administration disques   ?

Site réalisé avec SPIP 3.1.6 + AHUNTSIC

Creative Commons License