*** vxdisk list output shows online altused:
# vxdisk -o alldgs list
[...]
hds9500-alua0_358 auto:cdsdisk - (altdg) online altused
hds9500-alua0_359 auto:cdsdisk - (altdg) online
#
*** vxconfigd debug log when enabled may show the following errors when running 'vxdisk online' or 'vxdctl enable' commands:
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-18996 dasup_dg_join: register:
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-12246 IOCTL completion (thread 49082, ET = 0m0.000s): return 0(0x0)
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-5785 priv_read_toc_block: bad magic
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-23406 dasup_dg_join: priv_join failed with 165
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-6059 thread 49080: running
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-18996 dasup_dg_join: register:
05/05 16:57:50: VxVM vxconfigd DEBUG V-5-1-5310 da_join failed, thread 49082: Format error in disk private region
05/05 17:06:40: VxVM vxconfigd DEBUG V-5-1-12246 IOCTL completion (thread 65745, ET = 0m0.001s): return 0(0x0)
05/05 17:06:40: VxVM vxconfigd DEBUG V-5-1-5793 priv_unformat_header: bad magic
05/05 17:06:40: VxVM vxconfigd DEBUG V-5-1-23546 dapriv_refresh_region_info returned error res=3547684
05/05 17:06:40: VxVM vxconfigd DEBUG V-5-1-5892 REQUEST FAILURE: client 20455: Disk device is offline
VxVM uses two (primary and alternate) private headers in its private region configuration. As part of private region scanning, VxVM will search and read the disk header. When the 'alternate private header' sequence number is larger than (more up to date) the 'primary private header', the alternate header will be used (“altused” is marked) although the primary header is readable.
A defect tracked via e1912444 in VxVM versions prior to 5.1SP1 causes alternate private header offset not to be set properly. This will fail when the VxVM reads the alternate header later on causing the “bad magic” issue to be reported causing the private region of the disks inaccessible.
Procedure to explicitly clear the altused flag using vxprivutil command
On systems running VxVM 5.1SP1 or above, the following procedure could be used to explicitly clear the altused flag.
==> altused flag is set on hds9500-alua0_358:
hds9500-alua0_358 auto:cdsdisk - (altdg) online altused
hds9500-alua0_359 auto:cdsdisk - (altdg) online
# /etc/vx/diag.d/vxprivutil scan /dev/vx/rdmp/hds9500-alua0_358
diskid: 1368580956.92.ppatil1
group: name=altdg id=1368580973.94.ppatil1
flags: private noautoimport cds
hostid:
version: 3.1
iosize: 512
public: slice=2 offset=65792 len=3006208
private: slice=2 offset=256 len=65536
update: time: 1368582675 seqno: 0.29
headers: 0 240 altused
configs: count=1 len=48144
logs: count=1 len=7296
#
==> Setting DG name using vxprivutil:
# /etc/vx/diag.d/vxprivutil -D set /dev/vx/rdmp/
For example:
# /etc/vx/diag.d/vxprivutil -D set /dev/vx/rdmp/hds9500-alua0_358 dg_name=altdg
#
==> altused flag is cleared:
# /etc/vx/diag.d/vxprivutil scan /dev/vx/rdmp/hds9500-alua0_358
diskid: 1368580956.92.ppatil1
group: name=altdg id=1368580973.94.ppatil1
flags: private noautoimport cds
hostid:
version: 3.1
iosize: 512
public: slice=2 offset=65792 len=3006208
private: slice=2 offset=256 len=65536
update: time: 1368582870 seqno: 0.30
headers: 0 240
configs: count=1 len=48144
logs: count=1 len=7296
#
hds9500-alua0_358 auto:cdsdisk - (altdg) online
hds9500-alua0_359 auto:cdsdisk - (altdg) online
# vxdg import altdg
#
hds9500-alua0_358 auto:cdsdisk hds9500-alua0_358 altdg online
hds9500-alua0_359 auto:cdsdisk hds9500-alua0_359 altdg online
Applies To
This issue is applicable to any UNIX/Linux systems running Veritas Volume Manager (VxVM) prior to 5.1SP1.