Sunday, March 29, 2009

EMC PowerPath - Removal Error

Have been doing EMC Power Path upgrade for couple of weeks now and here is one error I have encountered a lot during Power Path removal on Sun Solaris Box with Veritas.

During >pkgrm EMCpower command I get the error below, even though I'm on single user mode, anyway one of the reason I got that error was that my Veritas dump is using powerpath devices.
EMCpower Removal:
Error: PowerPath pseudo(s) still in-use,
busy or mounted.
Please stop all I/Os and make sure all
volumes are not mounted then retry removing
the package.
pkgrm: ERROR: preremove script did not
complete successfully
Removal of failed.

Anyway I would check first that my system swap is not using the Power Path device

Then I will check that Veritas dump is not using Power Path device.
>vxdmpadm getsubpaths ctlr=emcp
emcpower0c ENABLED(A) - c8t1d27s2 EMC_CLARiiON EMC_CLARiiON0 -
emcpower1c ENABLED(A) - c8t1d26s2 EMC_CLARiiON EMC_CLARiiON0 -

In my case Veritas dump is using the Power Path device that is preventing me from uninstalling the EMCpower package from the system to fix this we will need disable dmp.
>vxdmpadm disable –f path= emcpower0c
>vxdmpadm disable –f path= emcpower1c

Then remove EMCpower
>pkgrm EMCpower

After installing the new Power Path we need to enable the Veritas dump once again
>vxdmpadm enable path= emcpower0c
>vxdmpadm enable path= emcpower1c

Then boot with -r option.

This solution work for me however it might not work for you I have also found other solution to this problem including some that are recommended by EMC it is quite lengthy see below I hope it work for you.

Fix 1 - emc28200 -
Fix for PowerPath 4.x and 5.x - Make sure to backup /kernel/drv before removing anything and make sure you have a copy of your license.

tar -cf /kernel/drv.tar /kernel/drv

rm /kernel/drv/emcp.conf (make sure there is no emcp.conf.saved )
rm /etc/powermt.custom (make sure there is no powermt.custom.saved )

rm /etc/emcp_devicesDB.dat

rm /etc/emcp_devicesDB.idx
rm /dev/dsk/emcp*
rm /dev/rdsk/emcp*
Caution on next step!
Do not remove /devices/pseudo/emcp@0:0 . Device driver file do not remove, Remove other emcp@ devices
rm /devices/pseudo/emcp@xxxxxxxxxxxxraw
rm /devices/pseudo/emcp@xxxxxxxxxxxxblk
For severe cases such as path_to_inst being replaced:
Refer to How to rebuild path_to_inst on Solaris Host
rm /dev/dsk/c1* , etc.. (do not remove boot device, normally c0)
rm /dev/rdsk/c1* , etc.. (do not remove boot device, normally c0)
perform reboot -- -r
run powercf -q
run powermt config

run powermt manage class=ess | hpxp | hitachi (only if PowerPath controling these 3rd party arrays)

run powermt display (confirm paths)
run powermt display dev=all (confirm devices)

If PowerPath still cannot be remove as it was busy or PowerPath would not run, initialization error. Then you need to reboot without PowerPath running and remove PowerPath. To do this, it is no longer sufficient just to remove /kernel/drv/emcp.conf as volume manager has a copy and it will be rebuilt in on reboot. In addition to the procedure above, remove the drivers themselves (/kernel/drv/emcp and /kernel/drv/sparcv9/emcp. (or move to a emcp.drv)). Reboot (in single mode if you want), pkgrm emcpower, pkgadd emcpower, reboot and hopefully be all set.

Fix 2
System Forceload Removal

Fix: Comment out the following entries in the /etc/system:
forceload: drv/emcp
forceload: misc/emcpmp
forceload: misc/emcpmpc
forceload: misc/emcpmpaa
forceload: misc/emcpmpap
forceload: misc/emcpsapi
forceload: misc/emcpcg
forceload: misc/emcphr
forceload: misc/emcpgpx
forceload: misc/emcpdm
forceload: misc/emcpioc
set emcp:bPxEnableInit=1
set lwp_default_stksize=0x6000
set rpcmod:svc_default_stksize=0x6000
Rename the emcp driver located within the following two directories;
Once the files are commented out and renamed boot the host in single user mode.

1 comment:

Anonymous said...

more thanks!!! its correctly

For suggestion and concerns E-mail