4.13 Utilisations des containers LVM2

De UnixWiki
Aller à la navigation Aller à la recherche

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