Unable to turn off dmp native support due to zdb command is failed.

book

Article ID: 100043974

calendar_today

Updated On:

Description

Error Message

# /opt/VRTS/bin/vxdmpadm  settune dmp_native_support=off VxVM vxdmpadm ERROR V-5-1-15690 Operation failed for one or more zpoolsVxVM vxdmpadm ERROR V-5-1-15686 The following zpool(s) could not be migrated as failed to obtain root pool information -        rpool

 

Cause

During disable dmp native support, below command is executed to find zpool information, but it is failing due to stale dmp device in the zpool cache file.

# zdb -C rpool
zdb: can't open pool 'rpool': No such file or directory


zdb reads the data from /etc/zfs/zpool.cache file, and it contains stale entries for dmp devices which is not exist any more:

# cat /etc/zfs/zpool.cache 
....
path        /dev/dsk/disk_1s0PHdevid        -id1,dmp@n5000cca0708ee660/n5000cca0708ee660-aHH 

       

This error can be fixed by recreate cache file with following command:

# zpool set cachefile=/etc/zfs/zpool.cache rpool

Or rebooting system which will recreate dmp device files as dmp native still enabled.

 

So, the problem is the native disable operation removes dmp devices, and 'zdb -C rpool' is trying to open those dmp device files, and gets "No such file or directory" error.

 

Resolution

To disable dmp native, you need to reset zpool cache just before run zdb command inside script like following:

Please add below line:
zpool set cachefile=/etc/zfs/zpool.cache rpool

To below script file:
/usr/lib/vxvm/bin/vxdmproot

Before below line:
558         $ZDB -C $ZFS_POOL > $ZFS_LOGDIR/$ZFS_POOL/config

Then, try disable dmp native support:
# /opt/VRTS/bin/vxdmpadm  settune dmp_native_support=off 

Issue/Introduction

Disable dmp native support is failed with below error message on Solaris.