4.13 Utilisations des containers LVM2
Renommer une région LVM2
set:<region>,name=<new_name>
Exemple : EVMS: set:lvm2/linuxbox/alterne,name=altsystem
Agrandir un container LVM2
e:<container>,size=<size>,<object>
Exemple :
EVMS: e:lvm2/linuxbox,cciss/c1d2p5
Liste des PE composants une région :
q:ei,<region>,Mappings
Exemple :
EVMS: q:ei,lvm2/linuxbox/Freespace,Mappings
Field Name: mapping0_start_le Title: Mapping 0: Starting Extent Description: Extent within the region where this mapping begins. The value of this field is: 0
Field Name: mapping0_le_count Title: Mapping 0: Extent Count Description: Number of extents in this mapping. The value of this field is: 2560
Field Name: mapping0_type Title: Mapping 0: Mapping Type Description: (null) The value of this field is: Linear
Field Name: mapping0_pvs Title: Mapping 0: PVs and PEs Description: The target objects and physical-extents for this mapping. This field represents a collection. The items in the collection are: Object : Start PE : PE Count, cciss/c1d2p4 : 0 : 2560
Déplacement de région LVM2
task:move_mapping,<region>, object=‹disque | segment cible›, mapping=<N° de mapping>, extent=<N° du premier PE libre du disque cible>
Exemple :
EVMS: task:move_mapping,lvm2/linuxbox/system,object=cciss/c1d2p5,mapping=0
Attention ne pas quitter la session interactive pendant le move sinon il est annulé
Attention l’ordre des paramètres est important (bug EVMS)
Note le disque ou le segment cible peut être le même que le disque ou le segment d’origine
Un objet Device-Mapper est alors créé avec un nom commençant par Copy_ et contenant le nom des disques
On peut suivre la progression dans un autre terminal avec la commande :
dmsetup status "Copy_..."
On a alors une sortie ressemblant à ça :
0 20905984 mirror 2 253:9 9:0 36742/163328 1 AA 1 core
Split et merge de mappings
task:split_mapping,<region>, extent=<N° du premier PE de la zone mapping> mapping=<N° de mapping>,
Exemple :
EVMS: task:split_mapping,lvm2/users/usersdbdcvol,extent=6399,mapping=1
Attention ne pas quitter la session interactive pendant le move sinon il est annulé Attention l’ordre des paramètres est important (bug EVMS)
Exemple:
Situation AVANT:
EVMS: q:ei,lvm2/users/usersdbdcvol,Mappings
Mapping 0 Object : Start PE : PE Count, xvdl : 0 : 9599 Mapping 1 Object : Start PE : PE Count, xvde1 : 0 : 9610
Situation APRES:
EVMS: q:ei,lvm2/users/usersdbdcvol,Mappings
Mapping 0 Object : Start PE : PE Count, xvdl : 0 : 9599 Mapping 1 Object : Start PE : PE Count, xvde1 : 0 : 6398 Mapping 2 Object : Start PE : PE Count, xvde1 : 6398 : 3212
La commande inverse est la suivante:
task:merge_mapping,<region>
Exemple :
EVMS: task:merge_mappings,lvm2/users/usersdbdcvol
Shrink de régions LVM2
Détermination des informations nécessaires sur région à shrinker
q:ep,<region>,Mappings
Il faut relever le nombre de PE correspondant à l’extent (au sens EVMS) à sortir de la région
q:ep,<container>
Il faut relever le Extent_Size qui correspond à la taille en octet d’un seul extent (au sens disque)
Réduire le container
s:<region>,size=<size>
<region> : région à réduire <size> : taille qui doit être supprimée de la région.
Attention : la réduction se fait par PE complet. Si vous shrinkez une size de 1 et que la taille des PE est de 512, alors il y aura 512 Blocs de supprimés Pour supprimer un composant complet de la région (comme par exemple un disque), il faut supprimer une taille correspondant à Extent_Size x PE_Count Agrandissement de volumes LVM2
Détermination de la région à agrandir
q:ep,<volume>
Agrandissement de la région
2 cas :
On ne souhaite pas contrôler la source des PE qui seront utilisés pour agrandir la région
e:<region>,size=<size>
Exemple :
EVMS: e:lvm2/users/usersvol,size=30GB
On souhaite le faire il doit rester au moins un PE de libre sur le disque ou la lun
e:‹region>,pvs=<disque | lun›
Exemple (seuls les PE disponibles de mpatha seront utilisés):
EVMS: e:lvm2/users/usersvol,pvs=mpatha
Mise en miroir a posteriori de disque de données (pas de boot)
Pré-requis :
existence d’un disque libre de la taille du disque à mettre en miroir
Actions :
créer une région EVMS de type Raid1SegMgr en y ajoutant le disque libre
c:r,Raid1SegMgr={},nom_du_disque
Etendre le container contenant le disque à mettre en miroir avec l’objet md créé
e:lvm2/,md/md…
déplacer les données de l’ancien disque vers la région md avec move_mapping (voir ci-dessus) sortir l’ancien disque du container avec un shrink EVMS créer un objet spare dans le miroir md avec evms
task:addspare,md/md…,nom_de_l’ancien_disque
activer le spare avec mdadm ––grow ––raid-disks=2 /dev/md
ATTENTION : il faut également modifier
la règle udev pour mdadm le fichier de configuration de lvm @@/etc/lvm/lvm.conf
2 choix sont possibles :
1er choix ajouter la ligne suivante dans /etc/udev/rules.d/73-mdadm.rules
KERNEL==“md[0–9]*”, NAME=“%k”
modifier la ligne scan= de /etc/lvm/lvm.conf pour qu’elle devienne
scan=[“/dev/disk/by-id”, “/dev/md”]
2ème choix Ajouter la ligne suivante dans /etc/udev/rules.d/73-mdadm.rules
KERNEL==“md[0–9]*”, SYMLINK+=“disk/by-id/%k”
Modifier la ligne scan= de /etc/lvm/lvm.conf pour qu’elle devienne
scan=“/dev/disk/by-id”
Sur le hyperviseur ceette ligne est déjà correcte car modifiée par l’installation de machine_virtuelle