Différences entre les versions de « LVM »
| Ligne 96 : | Ligne 96 : | ||
vgscan : Recherche les VG | vgscan : Recherche les VG | ||
vgs : Affiche les principales caractéristiques des VG | vgs : Affiche les principales caractéristiques des VG | ||
vgextend : Agrandit un VG, on lui ajoute un ou plusieurs PV | vgextend : Agrandit un VG, on lui ajoute un ou plusieurs PV (ex : pvcreate /dev/sde1 && vgextend vgtest /dev/sde1) | ||
vgreduce : Réduit un VG, en retirant un ou plusieurs PV. | vgreduce : Réduit un VG, en retirant un ou plusieurs PV. | ||
vgremove : Supprime un VG. | vgremove : Supprime un VG. | ||
</pre> | </pre> | ||
| Ligne 105 : | Ligne 104 : | ||
<pre> | <pre> | ||
# lvcreate -n $LVName -L $Taille $NomVG | # lvcreate -n $LVName -L $Taille $NomVG | ||
# lvcreate -n | # lvcreate -n VolA -L 2g vgtest | ||
# lvs (infos synthétique sur les lv) | # lvs (infos synthétique sur les lv) | ||
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert | LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert | ||
VolA vgtest -wi-a--- 2.00g | |||
# lvdisplay (info détaillé sur les lv) | # lvdisplay (info détaillé sur les lv) | ||
--- Logical volume --- | --- Logical volume --- | ||
LV Path /dev/ | LV Path /dev/vgtest/VolA | ||
LV Name | LV Name VolA | ||
VG Name | VG Name vgtest | ||
LV UUID | LV UUID chw7E0-a1Wi-HMLq-t0E6-aiDD-fo8G-aBkgg6 | ||
LV Write Access read/write | LV Write Access read/write | ||
LV Creation host, time | LV Creation host, time kvm-ins.agarik.com, 2013-07-08 17:01:58 +0200 | ||
LV Status available | LV Status available | ||
# open 0 | # open 0 | ||
| Ligne 128 : | Ligne 126 : | ||
Read ahead sectors auto | Read ahead sectors auto | ||
- currently set to 256 | - currently set to 256 | ||
Block device 253: | Block device 253:0 | ||
</pre> | </pre> | ||
* Autres commandes | * Autres commandes | ||
<pre> | <pre> | ||
lvscan : Recherche les LV | lvscan : Recherche les LV | ||
lvremove : Supprime un LV | lvremove : Supprime un LV | ||
lvextend : Agrandi un LV (il faut ensuite agrandir la taille du FS) | lvextend : Agrandi un LV (il faut ensuite agrandir la taille du FS) | ||
lvreduce : Diminue la taille d’un LV (il faut d’abord diminuer la taille du FS) | lvreduce : Diminue la taille d’un LV (il faut d’abord diminuer la taille du FS) | ||
# cfdisk /dev/vgtest/VolA (création d'une partition VolA1 primaire de 2 go; soit la totalité du VG) | |||
# kpartx -a /dev/vgtest/VolA | |||
# mkfs.ext3 /dev/mapper/vgtest-VolA1 | |||
# mount /dev/mapper/vgtest-VolA1 /mnt | |||
# df -h | |||
Filesystem Size Used Avail Use% Mounted on | |||
/dev/mapper/vgtest-VolA1 2.0G 36M 1.9G 2% /mnt | |||
# umount /mnt | |||
# kpartx -d /dev/vgtest/VolA | |||
# lvresize -L 3g /dev/vgtest/VolA | |||
Extending logical volume VolA to 3.00 GiB | |||
Logical volume VolA successfully resized | |||
Là si on refait un kpartx -a, un mount et un df -h, on verra que le /dev/mapper/vgtest-VolA1 est toujours à 2Go car il faut aussi resizer le File System | |||
[root@kvm-ins.agarik.com ~]# fdisk -l /dev/vgtest/VolA | |||
Disk /dev/vgtest/VolA: 2147 MB, 2147483648 bytes | |||
22 heads, 16 sectors/track, 11915 cylinders | |||
Units = cylinders of 352 * 512 = 180224 bytes | |||
Sector size (logical/physical): 512 bytes / 512 bytes | |||
I/O size (minimum/optimal): 512 bytes / 512 bytes | |||
Disk identifier: 0x00000000 | |||
Device Boot Start End Blocks Id System | |||
/dev/vgtest/VolA1 1 11916 2097120+ 83 Linux | |||
</pre> | </pre> | ||
[[Catégorie:Linux]] | [[Catégorie:Linux]] | ||
Version du 8 juillet 2013 à 15:34
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. Cela ne pose pas de soucis d'avoir sur le meme disque ou grappe raid, X partitions en ext4 classique pour l'OS et une autre partition pour le VG du lvm
* Volumes Physiques PV (physical volume) : les disques durs, partitions de disques durs, volumes RAID ou unités logiques provenant d’un SAN * Groupes de Volumes VG (volume group) : un ensemble de PV * Volumes Logiques LV (logical volume) : un volume logique est un espace de stockage où l’on peut mettre un système de fichiers. C’est donc ce qui remplace les partitions. * Extensions Physiques ou PE sont les unités physiques de stockage LVM utilisées pour augmenter la taille d’un groupe de volumes. * Extensions Logiques ou LE désignent les unités logiques de stockage LVM utilisées pour augmenter la taille d’un groupe de volumes VG .
Partition(s) de disque |---> Physical volume |----> Volume Group |----> Logicals Volumes |----> système de fichiers
PV
Un volume physique ou « PV » pour « physical volume » est tout simplement un disque ou une partition. Il est conseillé de créer une seule partition sdX1 (primaire) utilisant tout le disque dur, sans la formater, plutot que de créer le PV sur sdX directement (ce qui est faisable mais peut poser des soucis). On peut très bien avoir plusieur sdaX pour plusieurs PV.
# pvcreate /dev/sdd1 # pvs (infos synthétique sur les pv) PV VG Fmt Attr PSize PFree /dev/sdd1 lvm2 a-- 18.65g 18.65g # pvdisplay (info détaillé sur les pv) --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size 18.65 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID ireBFT-OKK4-kU0u-C1cU-dJwh-fvDU-i1ewYf
- Autres commandes
pvscan : Recherche les PV présents lvmdiskscan : Recherche des périphériques de blocs contenant des PV (on pourra y ajouter des PV) pvremove : Supprime le pv (pvremove /dev/$nompv, ex: pvremove /dev/sdd1 ) pvck : Vérifie l'état des méta données (pvck /dev/sdd1) pvrezise : pvrezise -v -d /dev/sdd1. Cela est utile si on change la taille de /dev/sdd1 avec un cfdisk, car logiquement pvdisplay verra toujours l'ancienne taille (un pvscan ne fonctionne pas) pvmove, pvchange
VG
Un groupe de volumes ou « VG » pour « volume group » est un ensemble de PV. Il est déconseillé de faire un VG sur plusieurs disques dur. Si on créé un VG sans faire de PV, le PV va se creer automatiquement. Lorsque l'on créé les VG, le lien /dev/volxxx n existera pas tant qu on n a pas créé de LV dans le VG en question
# vgcreate $VolumeGroupName $PhysicalVolume # vgcreate vgtest /dev/sdd1 NOTE : on peut créer un PV à partir de 2 disques ou 2 partitions : pvcreate /dev/hda3 && pvcreate /dev/hdb2 && vgcreate test /dev/hdb2 /dev/hda3 # vgs (infos synthétique sur les pv) VG #PV #LV #SN Attr VSize VFree vgtest 1 0 0 wz--n- 18.64g 18.64g # vgdisplay (info détaillé sur les vg) --- Volume group --- VG Name vgtest 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 18.64 GiB PE Size 4.00 MiB Total PE 4772 Alloc PE / Size 0 / 0 Free PE / Size 4772 / 18.64 GiB VG UUID 7hLlYm-fqDo-1c84-TDUp-1QOT-JEv7-Z7PPDf
- Autres commandes
vgcreate : Cree un VG en spécifiant 1 ou plusieurs PV. On peut indiquer la taille du PE. vgchange : Active/Désactive un VG ou tous les VG vgdisplay : Affiche la liste des VG et leurs caractéristiques. L’option -v permet de visualiser la liste des LV et des PV de chaque VG. vgscan : Recherche les VG vgs : Affiche les principales caractéristiques des VG vgextend : Agrandit un VG, on lui ajoute un ou plusieurs PV (ex : pvcreate /dev/sde1 && vgextend vgtest /dev/sde1) vgreduce : Réduit un VG, en retirant un ou plusieurs PV. vgremove : Supprime un VG.
LV
# lvcreate -n $LVName -L $Taille $NomVG # lvcreate -n VolA -L 2g vgtest # lvs (infos synthétique sur les lv) LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert VolA vgtest -wi-a--- 2.00g # lvdisplay (info détaillé sur les lv) --- Logical volume --- LV Path /dev/vgtest/VolA LV Name VolA VG Name vgtest LV UUID chw7E0-a1Wi-HMLq-t0E6-aiDD-fo8G-aBkgg6 LV Write Access read/write LV Creation host, time kvm-ins.agarik.com, 2013-07-08 17:01:58 +0200 LV Status available # open 0 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
- Autres commandes
lvscan : Recherche les LV
lvremove : Supprime un LV
lvextend : Agrandi un LV (il faut ensuite agrandir la taille du FS)
lvreduce : Diminue la taille d’un LV (il faut d’abord diminuer la taille du FS)
# cfdisk /dev/vgtest/VolA (création d'une partition VolA1 primaire de 2 go; soit la totalité du VG)
# kpartx -a /dev/vgtest/VolA
# mkfs.ext3 /dev/mapper/vgtest-VolA1
# mount /dev/mapper/vgtest-VolA1 /mnt
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vgtest-VolA1 2.0G 36M 1.9G 2% /mnt
# umount /mnt
# kpartx -d /dev/vgtest/VolA
# lvresize -L 3g /dev/vgtest/VolA
Extending logical volume VolA to 3.00 GiB
Logical volume VolA successfully resized
Là si on refait un kpartx -a, un mount et un df -h, on verra que le /dev/mapper/vgtest-VolA1 est toujours à 2Go car il faut aussi resizer le File System
[root@kvm-ins.agarik.com ~]# fdisk -l /dev/vgtest/VolA
Disk /dev/vgtest/VolA: 2147 MB, 2147483648 bytes
22 heads, 16 sectors/track, 11915 cylinders
Units = cylinders of 352 * 512 = 180224 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/vgtest/VolA1 1 11916 2097120+ 83 Linux