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

7fév/11

How to recover VG after remove VG by smit or other


Vous pouvez vous inspirer de cette procédure pour récupérer un filesystem suite à un "rmlv" ou rmfs malencontreux.

Cette procédure est inspirée de ce script:
http://www.zubyzu.com/aix/mergevg.html

Warning::
Le pré-requis pour récupérer un VG : Avoir les vgdata ou un snap qui contient les MAP des LVs.

- VGDATA location:
/tmp/vgdata/

- SNAP location:
/tmp/ibmsupt/lvm/

Maquette de test

Créer un VG sur hdisk1

# lspv
hdisk0          00c848edfe43e40c                    rootvg          active
hdisk1          00c848ed176293f8                    testvg          active

Créer un FS

# mklv -t jfs2 -y testlv1 testvg 200 hdisk1

# crfs -v jfs2 -d testlv1 -m /testfs1 -A yes

# lsvg -l testvg
testvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
testlv1             jfs2       100     100     1    open/syncd    /testfs1
loglv00             jfs2log    1       1       1    open/syncd    N/A

# mount /testfs1

Vérifier les VGDA de hdisk1

# lqueryvg -p hdisk1 -At
Max LVs:        256
PP Size:        23
Free PPs:       438
LV count:       2
PV count:       1
Total VGDAs:    2
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Quorum (disk):  1
Quorum (dd):    1
Auto Varyon ?:  1
Conc Autovaryo  0
Varied on Conc  0
Logical:        00c848ed00004c000000012b1773ef4b.1   testlv1 1
00c848ed00004c000000012b1773ef4b.2   loglv00 1
Physical:       00c848ed176293f8                2   0
Total PPs:      639
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      0
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VARYON MODE:    0
VG Type:        0
Max PPs:        32512


Executer ces commandes, les MAP des LVs sont requises pour récupérer un VG.

# mkvgdata -m testvg
or
# snap -a

C'est parti !!!

# umount /testfs1

# smitty vg
Remove a Volume Group
* VOLUME GROUP name             [testvg]
ARE YOU SURE?

rmlv: Logical volume testlv1 is removed.
rmlv: Logical volume loglv00 is removed.
ldeletepv: Volume Group deleted since it contains no physical volumes.


Les VGDA ont été supprimée .

# lqueryvg -p hdisk1 -At
0516-320 lqueryvg: Physical volume hdisk1 is not assigned to
a volume group.
0516-066 lqueryvg: Physical volume is not a volume group member.
Check the physical volume name specified.

# lspv
hdisk0          00c848edfe43e40c                    rootvg          active
hdisk1          00c848ed176293f8                    None

Récupérer le VG

# ls -l /tmp/vgdata/testvg
total 32
-rw-r--r--    1 root     system         2117 Sep 15 21:16 filesystems
-rw-r--r--    1 root     system           12 Sep 15 21:16 loglv00.map
-rw-r--r--    1 root     system         2400 Sep 15 21:16 testlv1.map
-rw-r--r--    1 root     system         2531 Sep 15 21:16 testvg.data

Vérifier la taille de la PP du VG

# grep PPSIZE /tmp/vgdata/testvg/testvg.data
PPSIZE= 8

Recréer le VG avec la bonne taille de PPs

# mkvg -s 8 -y testvg hdisk1

# lspv
hdisk0          00c848edfe43e40c                    rootvg          active
hdisk1          00c848ed176293f8                    testvg          active

Vérifier le nombre de PPs et le type de LV pour chaque LV du VG

# cat /tmp/vgdata/testvg/loglv00.map | wc -l
1

# grep -p 'LOGICAL_VOLUME= loglv00' /tmp/vgdata/testvg/testvg.data | grep TYPE
TYPE= jfs2log

Recréer le LV à l'aide des paramètres précédents

# mklv -t jfs2log -y loglv00 -m /tmp/vgdata/testvg/loglv00.map testvg 1

Au suivant ...

# cat /tmp/vgdata/testvg/testlv1.map | wc -l
200

# grep -p 'LOGICAL_VOLUME= testlv1' /tmp/vgdata/testvg/testvg.data | grep TYPE
TYPE= jfs2

#  mklv -t jfs2 -y testlv1 -m /tmp/vgdata/testvg/testlv1.map testvg 200

Vérifier l'état des LV

# lsvg -l testvg
testvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00             jfs2log    1       1       1    closed/syncd  N/A
testlv1             jfs2       200     200     1    closed/syncd  N/A

#  getlvcb -AT testlv1
AIX LVCB
intrapolicy = m
copies = 1
interpolicy = m
lvid = 00c848ed00004c000000012b17819b9d.2
lvname = testlv1
label =
machine id = 848ED4C00
number lps = 200
relocatable = y
strict = y
stripe width = 0
stripe size in exponent = 0
type = jfs2
upperbound = 32
fs =
time created  = Wed Sep 15 21:36:32 2010

Vérifier les options des filesystems à partir du snap ou /tmp/vgdata/testvg/filesystems
Inscrire dans le logical volume control block toutes les options

# /usr/sbin/putlvcb -f log=/dev/loglv00:mount=true:options=rw:account=false testlv1

# /usr/sbin/putlvcb -L /testfs1 testlv1

#  getlvcb -AT testlv1
AIX LVCB
intrapolicy = m
copies = 1
interpolicy = m
lvid = 00c848ed00004c000000012b17819b9d.2
lvname = testlv1
label = /testfs1
machine id = 848ED4C00
number lps = 200
relocatable = y
strict = y
stripe width = 0
stripe size in exponent = 0
type = jfs2
upperbound = 32
fs = log=/dev/loglv00:mount=true:options=rw:account=false
time created  = Wed Sep 15 21:36:32 2010
time modified = Wed Sep 15 21:39:12 2010

Copier le fichier filesystems dans /etc

# cp /etc/filesystems /etc/filesystems.bak
# cp filesystems /etc/filesystems

# lsvg -l testvg
testvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
loglv00             jfs2log    1       1       1    closed/syncd  N/A
testlv1             jfs2       200     200     1    closed/syncd  /testfs1

# lqueryvg -p hdisk1 -At
Max LVs:        256
PP Size:        23
Free PPs:       438
LV count:       2
PV count:       1
Total VGDAs:    2
Conc Allowed:   0
MAX PPs per PV  1016
MAX PVs:        32
Quorum (disk):  1
Quorum (dd):    1
Auto Varyon ?:  1
Conc Autovaryo  0
Varied on Conc  0
Logical:        00c848ed00004c000000012b17819b9d.1   loglv00 1
00c848ed00004c000000012b17819b9d.2   testlv1 1
Physical:       00c848ed176293f8                2   0
Total PPs:      639
LTG size:       128
HOT SPARE:      0
AUTO SYNC:      0
VG PERMISSION:  0
SNAPSHOT VG:    0
IS_PRIMARY VG:  0
PSNFSTPP:       4352
VARYON MODE:    0
VG Type:        0
Max PPs:        32512

Monter et vérifier l'intégrité des filesystems.

Commentaires () Trackbacks (0)

Aucun commentaire pour l'instant


Leave a comment

(required)

Aucun trackbacks pour l'instant