Qu'est-ce que LVM
Le gestionnaire de volumes logiques (LVM) introduit une couche supplémentaire entre les disques physiques et le système de fichiers permettant aux systèmes de fichiers d'être :
– redimensionnés et déplacés facilement et en ligne sans nécessiter une interruption du système.
– Utilisation discontinue espace sur le disque
– des noms significatifs pour les volumes, plutôt que les noms de périphériques cryptés habituels.
– s'étendent sur plusieurs disques physiques
Linux LVM est très similaire à HP-UX LVM et fournit de nombreuses autres fonctionnalités avancées telles que les instantanés, la prise en charge des clusters (GFS2, OCFS et Lustre).
Concepts
LVM comprend quelques couches conceptuelles telles que le volume physique, le volume logique et les systèmes de fichiers.
Les couches conceptuelles sont à leur tour composées d'unités plus petites comme les étendues physiques (dans le cas des volumes physiques) et les étendues logiques (dans le cas des volumes logiques).
Volume physique (VP)
Chaque volume physique peut être une partition de disque, un disque entier, un méta-périphérique ou un fichier de bouclage. Utilisez la commande pvcreate pour initialiser le stockage à utiliser par LVM. L'initialisation d'un périphérique bloc en tant que volume physique place une étiquette au début du périphérique.
Groupe de volumes (VG)
Un groupe de volumes rassemble une collection de volumes logiques et de volumes physiques en une seule unité administrative. Le groupe de volumes est divisé en étendues physiques de taille fixe. La commande vgcreate crée un nouveau groupe de volumes à l'aide du chemin de volume physique du périphérique spécial de bloc précédemment configuré pour LVM avec pvcreate.
– Les VG sont constitués de PV, qui à leur tour sont constitués d'étendues physiques (PE). La taille de PE peut différer selon les VG et est définie au moment de la création de VG.
– La taille par défaut de PE est de 4 Mo, mais vous pouvez la modifier à la valeur souhaitée au moment de la création de VG.
– En règle générale, plus la taille du PE est grande, meilleures sont les performances (mais moins de contrôle granulaire de LV).
Volume logique (VG)
Un volume logique est l'équivalent conceptuel d'une partition de disque dans un système non LVM. Les volumes logiques sont des périphériques blocs qui sont créés à partir des étendues physiques présentes dans le même groupe de volumes. Vous pouvez utiliser la commande lvcreate pour créer un volume logique dans un groupe de volumes existant.
Système de fichiers
Les systèmes de fichiers sont construits au-dessus des volumes logiques. La commande mkfs peut être utilisée pour créer un système de fichiers sur un volume logique. Une fois le système de fichiers créé, nous pouvons monter le volume logique selon nos besoins.
Commençons
L'exemple
Dans l'exemple ci-dessous, nous :
1. Créez 3 volumes physiques à partir de 3 disques physiques (/dev/sdb, /dev/sdc, /dev/sdd ).
2. Créez un groupe de volumes à partir de ces 3 PV (/dev/vg01 ).
3. Créer un volume logique dans ce VG (/dev/vg01/lvol01 ).
4. Créez un système de fichiers sur ce LV et montez-le (/data01 ).
Créer des volumes physiques
Le pvcreate La commande est utilisée pour initialiser le PV à utiliser par LVM. Avant de créer le PV, assurez-vous que le disque est visible dans le système d'exploitation. Pour analyser les périphériques de bloc à utiliser comme PV, utilisez le lvmdiskscan commande.
# lvmdiskscan ....... /dev/sdb [ 2.00 GiB] /dev/sdc [ 2.00 GiB] /dev/sdd [ 2.00 GiB] 3 disks 19 partitions 0 LVM physical volume whole disks 0 LVM physical volumes
Initialiser les périphériques de bloc :
# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created
Afficher les volumes physiques
Utilisez les commandes pvdisplay , pvs et pvscan pour afficher les PV que nous venons de créer.
# pvdisplay "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Mt3F7z-a2AV-28Vn-uXe2-QejE-Z6tP-UMlQGM "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 5m1Fuc-yTRn-I2vG-bMfU-6SE7-53EA-s8VQjt "/dev/sdd" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdd VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1x3e2A-C0Lt-DrUA-tPSM-lsMu-sn70-qg1j8p
# pvscan PV /dev/sdb lvm2 [2.00 GiB] PV /dev/sdc lvm2 [2.00 GiB] PV /dev/sdd lvm2 [2.00 GiB] Total: 3 [6.00 GiB] / in use: 0 [0 ] / in no VG: 3 [6.00 GiB]
# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 2.00g 2.00g /dev/sdc lvm2 a-- 2.00g 2.00g /dev/sdd lvm2 a-- 2.00g 2.00g
Créer un groupe de volumes
Utilisez le vgcreate commande pour créer le nouveau groupe de volumes vg01 en utilisant les 3 PV que nous venons de créer. Nous pouvons spécifier les étendues avec -s option et nombre maximum de PV et LV dans le VG en utilisant les options -p et -l respectivement. Toutes ces options sont facultatives et ne doivent pas nécessairement être utilisées.
# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd Volume group "vg01" successfully created
Les options facultatives utilisées avec la commande vgcreate sont :
Option | Signification |
---|---|
-s | Taille de l'étendue physique |
-p | Nombre maximum de PV |
-l | Nombre maximum de LV |
–allouer | politique d'allocation (contiguë, n'importe où ou accrochée) |
Affichage des informations VG
Les commandes vgs et vgdisplay peuvent être utilisées pour afficher les informations sur le VG que nous venons de créer :
# vgs vg01 VG #PV #LV #SN Attr VSize VFree vg01 3 0 0 wz--n- 5.99g 5.99g
# vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 3 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 3 Act PV 3 VG Size 5.99 GiB PE Size 4.00 MiB Total PE 1533 Alloc PE / Size 0 / 0 Free PE / Size 1533 / 5.99 GiB VG UUID Cw7GGz-NH3o-Sax2-5jPv-buZS-938T-tmNKFa
Activer et désactiver les VG
Le vgchange La commande peut être utilisée pour activer/désactiver un groupe de volumes.
Pour désactiver un VG :
# vgchange -a n vg01 0 logical volume(s) in volume group "vg01" now active
Pour activer un VG :
# vgchange -a y vg01 1 logical volume(s) in volume group "vg01" now active
Créer un volume logique
Le volume logique peut maintenant être créé dans le VG à l'aide de la commande lvcreate .
– Si vous ne spécifiez pas le nom du LV dans la commande, le LV reçoit par défaut le nom lvol# .
– Normalement, si vous ne spécifiez pas quel PV couvrir le LV, le volume logique sera créé sur le PV sur une base de prochain-libre.
– Pour créer un volume logique lvol01 de taille 5 Go :
# lvcreate -L 5G -n lvol01 vg01 Logical volume "lvol01" created
Création d'un volume segmenté
Pour créer un volume réparti sur les 3 PV que nous avons créés :
# lvcreate -L 5G -I 4096 -i 3 -n lvol01 vg01 Rounding size (1280 extents) up to stripe boundary size (1281 extents) Logical volume "lvol01" created
I - PVs to span while creating striped volume i - stripe unit
Créer un volume en miroir
Pour créer un volume en miroir à 3 voies couvrant les 3 PV (sdb, sdc, sdd) :
# lvcreate -L 1G -m 2 -n lvol01 vg01 Logical volume "lvol01" created
Nous pouvons également spécifier les appareils à utiliser lors de la création du LV en miroir. Dans notre cas comme nous n'avions que 3 PV dans le VG, le LV est créé par défaut sur ces 3 PV.
Affichage des informations LV
Les commandes lvdisplay , niveaux et lvscan peut être utilisé pour afficher les informations sur le LV que nous venons de créer.
# lvs /dev/vg01/lvol01 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lvol01 vg01 mwi-a-m-- 1.00g lvol01_mlog 100.00
# lvdisplay /dev/vg01/lvol01 --- Logical volume --- LV Path /dev/vg01/lvol01 LV Name lvol01 VG Name vg01 LV UUID ptlmAV-mO42-fWiJ-e2Ml-r9kj-PFcC-MOexxw LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-10-22 09:04:25 -0700 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Mirrored volumes 3 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
# lvscan ACTIVE '/dev/vg01/lvol01' [1.00 GiB] inherit
Créer un système de fichiers
La dernière étape consiste à créer un système de fichiers sur le nouveau LV que nous venons de créer et à le monter sur un répertoire pour pouvoir y accéder et y stocker des données. La commande mkfs peut être utilisé pour créer un système de fichiers au-dessus du LV.
# mkfs.ext4 /dev/vg01/lvol01 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Le volume logique peut être monté, une fois le système de fichiers créé. Assurez-vous d'ajouter une entrée à /etc/fstab , afin qu'il soit monté automatiquement au démarrage du système.
# mkdir /data01 # mount /dev/vg01/lvol01 /data01
# vi /etc/fstab /dev/vg01/lvol01 /data01 ext4 defaults 0 0
# df -h /data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lvol01 1008M 34M 924M 4% /data01
L'outil graphique pour gérer LVM
Il existe un outil graphique sympa disponible (system-config-lvm ) au cas où vous souhaiteriez l'utiliser. S'il n'est pas déjà installé sur le système, installez-le en utilisant yum :
# yum install system-config-lvm
Pour démarrer l'outil d'administration Graphical LVM, lancez la commande :
# system-config-lvm
Configuration LVM :opérations/utilitaires de volume logique (LV)
Configuration LVM :opérations/utilitaires de groupe de volumes (VG)
Configuration LVM :opérations/utilitaires de volume physique (PV)