Recovery from failure of a DCO volume

The procedure to recover from the failure of a data change object (DCO) volume depends on the DCO version number.

For information about DCO versioning, see the Veritas Storage Foundation Administrator's Guide.

Persistent FastResync uses a DCO volume to perform tracking of changed regions in a volume. If an error occurs while reading or writing a DCO volume, it is detached and the badlog flag is set on the DCO. All further writes to the volume are not tracked by the DCO.

The following sample output from the vxprint command shows a complete volume with a detached DCO volume (the TUTIL0 and PUTIL0 fields are omitted for clarity):

TY NAME             ASSOC          KSTATE        LENGTH      PLOFFS     STATE ...
dg mydg             mydg           -             -           -          -
dm mydg01           c4t50d0s2      -             35521408    -          -
dm mydg02           c4t51d0s2      -             35521408    -          -
dm mydg03           c4t52d0s2      -             35521408    -          FAILING
dm mydg04           c4t53d0s2      -             35521408    -          FAILING
dm mydg05           c4t54d0s2      -             35521408    -          -

v  SNAP-vol1        fsgen          ENABLED       204800      -          ACTIVE
pl vol1-03          SNAP-vol1      ENABLED       204800      -          ACTIVE
sd mydg05-01        vol1-03        ENABLED       204800      0          -
dc SNAP-vol1_dco    SNAP-vol1      -             -           -          -
v  SNAP-vol1_dcl    gen            ENABLED       144         -          ACTIVE
pl vol1_dcl-03      SNAP-vol1_dcl  ENABLED       144         -          ACTIVE
sd mydg05-02        vol1_dcl-03    ENABLED       144         0          -
sp vol1_snp         SNAP-vol1      -             -           -          -

v  vol1             fsgen         ENABLED       204800      -          ACTIVE
pl vol1-01          vol1          ENABLED       204800      -          ACTIVE
sd mydg01-01        vol1-01       ENABLED       204800      0          -
pl vol1-02          vol1          ENABLED       204800      -          ACTIVE
sd mydg02-01        vol1-01       ENABLED       204800      0          -
dc vol1_dco         vol1          -             -           -          BADLOG
v  vol1_dcl         gen           DETACHED      144         -          DETACH
pl vol1_dcl-01      vol1_dcl      ENABLED       144         -          ACTIVE
sd mydg03-01        vol1_dcl-01   ENABLED       144         0          -
pl vol1_dcl-02      vol1_dcl      DETACHED      144         -          IOFAIL
sd mydg04-01        vol1_dcl-02   ENABLED       144         0          RELOCATE
sp SNAP-vol1_snp    vol1          -             -           -          -

This output shows the mirrored volume, vol1, its snapshot volume, SNAP-vol1, and their respective DCOs, vol1_dco and SNAP-vol1_dco. The two disks, mydg03 and mydg04, that hold the DCO plexes for the DCO volume, vol1_dcl, of vol1 have failed. As a result, the DCO volume, vol1_dcl, of the volume, vol1, has been detached and the state of vol1_dco has been set to BADLOG. For future reference, note the entries for the snap objects, vol1_snp and SNAP-vol1_snp, that point to vol1 and SNAP-vol1 respectively.

You can use such output to deduce the name of a volume's DCO (in this example, vol1_dco), or you can use the following vxprint command to display the name of a volume's DCO:

# vxprint [-g diskgroup] -F%dco_name volume

You can use the vxprint command to check if the badlog flag is set for the DCO of a volume as shown here:

# vxprint [-g diskgroup] -F%badlog dco_name

This command returns the value on if the badlog flag is set. For the example output, the command would take this form:

# vxprint -g mydg -F%badlog vol1_dco
on

Use the following command to verify the version number of the DCO:

# vxprint [-g diskgroup] -F%version dco_name

This returns a value of 0 or 20. For the example output, the command would take this form:

# vxprint -g mydg -F%version vol1_dco

The DCO version number determines the recovery procedure that you should use.

More Information

Recovering a version 0 DCO volume

Recovering a version 30 DCO volume