VxVM vxassist ERROR V-5-1-15304 Cannot allocate space for dco volume: Not enough HDD devices that meet specification.
The volume to be mirrored 'u01' had a DCO associated with it and snapshots in other diskgroups and these snapshots needed to be retained.
# vxprint -qth
Disk group: testdg
dg testdg default default 7000 1680014366.131.systemA
dm emc0_1 emc0_1 auto 65536 629051392 -
v u01 - ENABLED ACTIVE 713040 SITEREAD - fsgen
pl u01-01 u01 ENABLED ACTIVE 713040 CONCAT - RW
sd emc0_1-01 u01-01 emc0_1 0 713040 0 emc0_1 ENA
dc u01_dco u01 u01_dcl
v u01_dcl - ENABLED ACTIVE 67840 SITEREAD - gen
pl u01_dcl-01 u01_dcl ENABLED ACTIVE 67840 CONCAT - RW
sd emc0_1-02 u01_dcl-01 emc0_1 713040 67840 0 emc0_1 ENA
sp u01_snp u01 u01_dco
sp u01_snp1 u01 u01_dco
Disk group: snap2dg
dg snap2dg default default 16000 1680013817.127.systemA
dm emc0_2 emc0_2 auto 65536 629051392 -
v u01 - ENABLED ACTIVE 713040 SELECT - fsgen
pl u01-01 u01 ENABLED ACTIVE 713040 CONCAT - RW
sd emc0_2-01 u01-01 emc0_2 0 713040 0 emc0_2 ENA
dc u01_dco u01 u01_dcl
v u01_dcl - ENABLED ACTIVE 67840 SELECT - gen
pl u01_dcl-01 u01_dcl ENABLED ACTIVE 67840 CONCAT - RW
sd emc0_2-09 u01_dcl-01 emc0_2 347246448 67840 0 emc0_2 ENA
Disk group: snap3dg
dg snap3dg default default 9000 1680013806.125.systemA
dm emc0_3 emc0_3 auto 65536 629051392 -
v u01 - ENABLED ACTIVE 713040 SELECT - fsgen
pl u01-01 u01 ENABLED ACTIVE 713040 CONCAT - RW
sd emc0_3-01 u01-01 emc0_3 0 713040 0 emc0_3 ENA
dc u01_dco u01 u01_dcl
v u01_dcl - ENABLED ACTIVE 67840 SELECT - gen
pl u01_dcl-01 u01_dcl ENABLED ACTIVE 67840 CONCAT - RW
sd emc0_3-09 u01_dcl-01 emc0_3 347246448 67840 0 emc0_3 ENA
The newly added disk was the same size and mediatype as the disk that was already in the diskgroup and belonged to a different enclosure. There was no site-tagging, fss or rules in place. There were also no special settings in the /etc/default/vxassist file.
However the 'siteconsistent=on' flag was set for this volume.
# vxprint -g testdg -m | grep -i siteconsistent
siteconsistent=on
When 'siteconsistent=on' is set on a volume, the mirroring code will try to mirror the dco across sites even if there are no site tags configured on the disks and it will fail. Hence the error is reported.
Once 'siteconsistent=off' was set on the 'u01' volume, it could be successfully mirrored.
# vxvol -g testdg set siteconsistent=off u01
# vxprint -g testdg -m | grep -i siteconsistent
siteconsistent=off
# vxassist -g testdg mirror u01
# vxprint -g testdg -qth
v u01 - ENABLED ACTIVE 713040 SITEREAD - fsgen
pl u01-01 u01 ENABLED ACTIVE 713040 CONCAT - RW
sd emc0_1-01 u01-01 emc0_1 0 713040 0 emc0_1 ENA
pl u01-02 u01 ENABLED ACTIVE 713040 CONCAT - RW
sd emc0_0-01 u01-02 emc0_0 0 713040 0 emc0_0 ENA <<<<< note
dc u01_dco u01 u01_dcl
v u01_dcl - ENABLED ACTIVE 67840 SITEREAD - gen
pl u01_dcl-01 u01_dcl ENABLED ACTIVE 67840 CONCAT - RW
sd emc0_1-02 u01_dcl-01 emc0_1 713040 67840 0 emc0_1 ENA
sp u01_snp u01 u01_dco
sp u01_snp1 u01 u01_dco