martes, 1 de diciembre de 2009

Desencapsular un root disk en Solaris manejado por Veritas

Debido a que en una actividad un servidor Solaris 10 con el filesystem root encapsulado con Veritas se queda en un loop de reinicios, se necesita dar servicio y subir la máquina lo mas rápido posible. Para hacerlo hay que desencapsular los filesystems del S.O. y dejarlo iniciando por las particiones físicas. El procedimiento está en un documento de Sun, pero el cual no es de acceso público.

Para realizarlo las actividades serían las siguientes:

Si todavía no ha iniciado el sistema operativo, por consola mandar una señal de break y desde el prompt del ok indicar que inicie por cd-rom:

boot cdrom -s

Una vez que suba el sistema, configurar la consola:

TERM=vt100;export TERM

Hacer un chequeo del disco con la partición root:

fsck -y /dev/rdsk/c0t0d0s0

Montar el filesystem en un directorio:

mount /dev/dsk/c0t0d0s0 /a

Hacer un backup del archivo /a/etc/system y editarlo:

cp /a/etc/system /a/etc/system.orig
vi /a/etc/system


Quitar las siguientes líneas:

rootdev:/pseudo/vxio@0:0
set vxio:vol_rootdev_is_volume=1

Hacer una copia del vfstab y editarlo:

cp /a/etc/vfstab /a/etc/vfstab.orig
vi /a/etc/vfstab


Cambiar los paths de Veritas por los físicos, y si hay filesystems en almacenamiento externo manejado por Veritas, comentariarlos, por ejemplo, si se tiene:

/dev/vx/dsk/swapvol - - swap - no -
/dev/vx/dsk/rootvol /dev/vx/rdsk/rootvol / ufs 1 no -

/dev/vx/dsk/datadg/somevol /dev/vx/rdsk/datadg/somevol /somevol ufs 2 yes -
#NOTE: volume rootvol (/) encapsulated partition c0t0d0s0
#NOTE: volume swapvol (swap) encapsulated partition c0t0d0s1

Cambiar por:

/dev/dsk/c0t0d0s1 - - swap - no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -

#/dev/vx/dsk/datadg/somevol /dev/vx/rdsk/datadg/somevol /somevol ufs 2 yes -
#NOTE: volume rootvol (/) encapsulated partition c0t0d0s0
#NOTE: volume swapvol (swap) encapsulated partition c0t0d0s1


Ejecutar el siguiente comando, para que Veritas no inicie en el siguiente reinicio:

touch /a/etc/vx/reconfig.d/state.d/install-db

Quitar la bandera que le dice a Veritas que el filesystem root está encapsulado:

rm /a/etc/vx/reconfig.d/state.d/root-done

Reiniciar.
Si todo sale bien, el sistema debería subir con las particiones físicas y sin activar Veritas.
Luego que suba ejecutar:

rm /etc/vx/reconfig.d/state.d/install-db
/usr/sbin/vxiod set 10
/usr/sbin/vxconfigd -m disable
/usr/sbin/vxdctl enable


Con esto suben los servicios de Veritas, ahora hay que eliminar los volumenes del diskgroup root, se puede saber cuales son con el comando 'vxprint -htg rootdg':

/usr/sbin/vxedit -rf rm

Luego eliminar el rootdisk de rootdg que ya no tiene volúmenes:

/usr/sbin/vxdg [-g diskgroup] rmdisk

Si ya solo le queda un disco, el comando anterior va a fallar, entonces se pasa a destruir el diskgroup:

/usr/sbin/vxdg destroy

Ahora hay que reescribir las particiones a como estaba antes de encapsularlo, la forma mas fácil es con:

/etc/vx/bin/vxedvtoc -f /etc/vx/reconfig.d/disk.d/c0t0d0/vtoc /dev/rdsk/c0t0d0s2

Ya se podrían descomentariar en /etc/vfstab los filesystems en almacenamiento externo manejados por Veritas.
Para activarlos se ejecutaría:

/usr/sbin/vxvol [-g diskgroup] startall

y con mountall se montan.
Esto es todo, ya el sistema no tendría la partición / manejada por Veritas.

No hay comentarios:

Publicar un comentario