Rédigé le 9 juin 2022 - modifié le 10 mai 2023. Étiquettes : lvm
Voici une n-ième page sur internet comportant des commandes liées à LVM.
Et des liens.
Mon petit bloc-notes, ma petite aide-mémoire quoi.
Je ne vous ferai pas l'affront de vous présenter l'outil, ni de vous expliquer son fonctionnement.
d'autres pages le font bien mieux que moi).
Rapide rappel :
- Volume physique (PV, _Physical volume_) : disque, partition, etc. pourvu que ça soit du stockage.
- Groupe de volumes (VG, _Volume group_) : Groupement de PVs vu comme un espace unique et qui va contenir des LV.
- Volume logiques (LV, _Logical volume_) : « partition » virtuelle reposant dans un VG qui va contenir un système de fichiers (à monter dans l'OS pour être utilisable).
Ainsi que diverses informations utiles comme la taille actuelle, et la taille disponible si on veut agrandir des LV par exemple.
- pvs
- pvscan
- pvdisplay
- vgs
- vgscan
- vgdisplay
- lvs
- lvscan
- lvdisplay
_Remarque_ : Les commandes *display prennent en argument optionel le nom du volume pour n'afficher que celui demandé au lieu de tous les afficher.
Utiliser pvcreate sur le disque (ou une partition)
pour indiquer à LVM que l'on va l'utiliser comme espace de stockage.
Cela marche également pour les disques rajoutés plus tard.
# un disque entier pvcreate /dev/sdc # ou bien une nouvelle partition pvcreate /dev/sdd3
On pourra ensuite l'ajouter à un groupe puis passer aux opérations sur les volumes logiques.
_Remarque_ : lors de l'ajout d'un nouveau disque, pour le détecter à chaud,
il faut d'abord relancer un scan du bus SCSI avant de pouvoir utiliser pvcreate :
echo "- - -" > /sys/class/scsi_host/hostX/scan
Avec X, le numéro de bus.
Après avoir agrandi une partition, utiliser simplement pvresize /dev/partition. Exemple :
pvresize /dev/sda2
Il est possible que le système n'ai pas détecté le changement de taille,
chose courante dans une augmentation à chaud sur une machine virtuelle.
Dans ce cas, il faut forcer le scan SCSI :
echo "1" > /sys/class/block/sdX/device/rescan # ou bien, avec les numéros de bus SCSI : echo "1" > /sys/class/scsi_device/2:0:0:0/device/rescan
Pour identifier ses disques :
- lsblk pour avoir les étiquettes classiques type /dev/sdX.
- lsblk -S, lsscsi ou lshw pour les étiquettes SCSI.
À noter, pour rescanner les disques,
il y a aussi la commande rescan-scsi-bus.sh --forcerescan sous Red Hat, via le paquet sg3_utils.
Avant de créer des volumes logiques,
il faut d'abord créer un groupe en lui donnant un nom puis en indiquant un volume (ou une partition).
vgcreate nom_du_vg /dev/sdX
Ce volume doit d'abord avoir été déclaré comme étant un volume physique via pvcreate.
On peut maintenant y créer des volumes logiques, qui seront rattachés à ce groupe,
Après avoir créé un nouveau volume physique (via pvcreate),
on peut l'attacher à un groupe existant pour en étendre les capacités :
vgextend nom_du_vg /dev/sdX
On peut maintenant y étendre les volumes logiques qui sont rattachés à ce groupe,
ou en créer de nouveaux.
Il faut d'abord s'assurer que le volume group contient assez d'espace.
Ensuite
lvcreate -LxxG -n nom_nouveau_lv nom_du_vg
Puis on formate le volume logique :
mkfs -t [type de FS] /dev/mapper/le_volume_qui_correspond
À partir de là le nouveau volume peut être monté, à la main pour tests, puis rajouté dans /etc/fstab
On peut facilement les étendre à chaud (en tant que root) :
# Identifier les volumes df # ou bien : df -h, df -Pm, ... # Vérifier que l'on dispose d'assez de place dans le groupe : vgs # Augmenter la taille du volume lvresize -r -L +XXG /dev/mapper/le_volume_qui_correspond # Augmenter le volume en prenant toute la place disponible lvresize -r -l +100%FREE /dev/mapper/le_volume_qui_correspond
L'option -r (--resizefs) est là pour retailler le volume pour prendre en compte la nouvelle taille immédiatement.
Sans ça, il faut passer manuellement un coup de resize2fs (si vous êtes en ext) ou de xfs_growfs (dans le cas d'un système de fichiers XFS) après coup sur le volume modifié.
L'argument -L attend la taille qu'on veut avoir.
Préfixer avec + pour rajouter de l'espace, au lieu d'avoir à calculer à la main la taille totale finale.
Rajouter un suffixe pour l'unité.
Souvent cela sera G.
La véritable forme du -L est (extrait du manuel de lvresize) :
-L|--size [+|-]Size[m|UNIT]
Specifies the new size of the LV. The --size and
--extents options are alternate methods of specifying
size. The total number of physical extents used will be
greater when redundant data is needed for RAID levels.
When the plus + or minus - prefix is used, the value is
not an absolute size, but is relative and added or
subtracted from the current size.
À noter que resize2fs et xfs_growfs s'utilisent de la même manière :
resize2fs /dev/mapper/le_volume_qui_correspond xfs_growfs /dev/mapper/le_volume_qui_correspond
Reportez-vous aux manuels correspondants pour les éventuelles options.
La forme basique suffit dans la plupart des cas.
La page LVM sur le site de Vincent Liefooghe
LVM sur le wiki Arch Linux (en Anglais)
Pour approfondir encore plus, le manuel de LVM sera une bonne source.
Sinon le wiki de votre distribution.
Enfin, d'autres sites que vous pourrez trouvez sur internet.
-------------------------------
← Plus récent : Une page d'accueil plus sobre
→ Plus ancien : imv, une visionneuse d'images en ligne de commande
Aléatoire : Reverse proxy Apache et alias qui se chevauchent : il faut une exclusion
Contenu sous licence CC-BY-SA