unixadmin.free.fr just another IBM blog and technotes backup

9fév/11

Comment utiliser lreducelv et synclvodm

Suite à un problème hardware survenu pendant la commande migratepv de hdisk1 vers hdisk4, le LVM n'est pas stable.

Voici une procédure pour remédier à ce genre de problème en utilisant les commande bas niveau comme lreduclv qui vont modifier les VGDA.
Pour tester cette procedure il est possible de créer un LV mirroré et de supprimer sa copie en utilisant lreducelv puis synclvodm.

Cas concret:

# lsvg -l datavg
0516-1147 : Warning - logical volume lv001 may be partially mirrored.
datavg:
LV NAME    TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv001      jfs2       239     478     2    open/syncd    /app/prod

# lspv -l hdisk1
hdisk1:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
lv001                 239     239     51..35..51..51..51    /app/prod

# lspv -l hdisk4
hdisk4:
LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT
lv001                 239     239     51..35..51..51..51    /app/prod

On constate qu'aucune PPs n'est STALE

# lsvg datavg
VOLUME GROUP:       datavg                   VG IDENTIFIER:  000d39810000d9000000011b3478a70e
VG STATE:           active                   PP SIZE:        128 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      765 (97920 megabytes)
MAX LVs:            512                      FREE PPs:       287 (36736 megabytes)
LVs:                3                        USED PPs:       478 (61184 megabytes)
OPEN LVs:           3                        QUORUM:         1 (Disabled)
TOTAL PVs:          3                        VG DESCRIPTORS: 3
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         3                        AUTO ON:        yes
MAX PPs per VG:     130048                                    
MAX PPs per PV:     1016                     MAX PVs:        128
LTG size (Dynamic): 256 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable

L'ODM nous montre bien que le LV est mirroré

odmget -q "name=lv001 and attribute=copies" CuAt

CuAt:
    name = "lv001"
    attribute = "copies"
    value = "2"
    type = "R"
    generic = "DU"
    rep = "r"
    nls_index = 642

Comme l'état du LV ressemble à un mirroir, ma première idée est de supprimer la copie de hdisk1

# rmlvcopy lv001 1 hdisk1
0516-022 lquerypv: Illegal parameter or structure value.
0516-304 getlvodm: Unable to find device id 0000000000000000
     in the Device Configuration Database.
0516-848 rmlvcopy: Failure on physical volume 0000000000000000,
    it may be missing or removed.

Résolution:

Effectuer par prudence Une sauvegarde du filesystem /app/prod.

Récupérer la map du LV lv001 à l'aide de la commande lquerylv

# lquerylv -L `getlvodm -l lv001` -r > /tmp/lv001.map

Editer le fichier /tmp/lv001.map et ne conserver que les lignes de hdisk1 soit les lignes commencant par son PVID 005b127cb1a5e315

# grep 005b127cb1a5e315 /tmp/lv001.map > /tmp/lv001_hdisk1.map

Vérifier le nombre de ligne présente dans le fichier /tmp/lv001_hdisk1.map (normalement égal à 239)

# wc -l /tmp/lv001_hdisk1.map

Supprimmer le LV lv001 contenu sur hdisk1 à partir du second fichier /tmp/lv001_hdisk1.map

# lreducelv -l `getlvodm -l lv001` -s 239 /tmp/lv001_hdisk1.map

L'ODM référence toujours 2 copies re-synchroniser les VGDA et l'ODM

# synvlvodm -v datavg lv001

Controler l'état du LV

# lsvg -l datavg
datavg:
LV NAME    TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv001      jfs2       239     239     1    open/syncd    /app/prod

Recréer le Boot Logical Volume

# bosboot -ad /dev/ipldevice
Commentaires () Trackbacks (0)

Aucun commentaire pour l'instant


Leave a comment

(required)

Aucun trackbacks pour l'instant