Corrupcion de los espejos de un volumen logico

La corrupción de los espejos de un volumen lógico se refleja en errores como:
0516-1509 : VGDA corruption: physical partition info for this LV is invalid.
En estos casos, lo primero es tratar de eliminar el espejo y recrearlo, sea por medio de comandos o el smit. Sin embargo, no siempre es posible realizar la operación ya que la corrupción inhabilita al comando para ejecutar la operación de forma directa. En Internet encontré una forma de corregir el problema y aunque la solución funciona, las instrucciones no son claras. Al final lo que se desea es alimentar el comando lreducelv con el mapa de las particiones físicas mal espejadas. En el siguiente ejemplo obtenemos el mapa físico del volumen lógico:
root@server:/home/root #lslv -m fslv02
fslv02:/finanzas
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0204 hdisk1 0214 hdisk0
0002 0205 hdisk1 0215 hdisk0
0003 0206 hdisk1 0216 hdisk0
0004 0207 hdisk1 0217 hdisk0

El volumen lógico fslv02 tiene un espejo en el disco cero (hdisk0), el cual no permite ser eliminado. El comando lreducelv tiene el siguiente formato:
lreducelv -l identificador-del-volumen-logico -s numero-de-particiones-parcialmente-espejadas nombre-de-archivo

El identificador del volumen lógico lo obtenemos por medio de: lslv fslv02
LOGICAL VOLUME: fslv02 VOLUME GROUP: rootvg
LV IDENTIFIER: 00cfd90f00004c0000000108493c5c5b.18
Para construir el archivo necesitamos el identificador de disco físico que contiene el espejo, por medio del comando lspv:
PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg
PV IDENTIFIER: 00cfd90f493c4574

luego, extraemos la información necesaria del lslv -m volumen-logico y creamos el archivo asi:
lslv -m fslv02 awk {'print "00cfd90f493c4574 "$4" "$1'} > archivo

Observese que luego del identificador del volumen físico hay un espacio y que el awk transpone las columnas 4 y 1 para obtener el siguiente formato:
00cfd90f493c4574 0214 0001
00cfd90f493c4574 0215 0002
00cfd90f493c4574 0216 0003
00cfd90f493c4574 0217 0004
Nota: el archivo debe ser editado a mano para eliminar los headers.

Finalmente el comando se corre así:
lreducelv -l 00cfd90f00004c0000000108493c5c5b.18 -s 4 archivo
donde el "4" es el número de líneas del archivo, obtenible por medio de vi o wc -l archivo.
Luego de corregido el problema, el volumen lógico puede volver a ser espejado de forma regular.

0 comentarios: