Resync LUNs can leave LUNs in an Offline state.

חל על: Windows Server 2008 DatacenterWindows Server 2008 Datacenter without Hyper-VWindows Server 2008 Enterprise

Symptoms


If the hardware provider veto's the resync operation you may end up with the target LUN offline. If the operation is to resync to a target LUN that is not the same as the original source LUN the target may end up offline after the veto. The veto here is the correct option for the provider as it should fail to overwrite this volume. From Himanshu's blog: LUN-RESYNC WITH DISKSHADOW AND VIRTUAL STORAGE


NOVOLCHECK: This diskshadow flag corresponds to VSS_RECOVERY_NO_VOLUME_CHECK of VSS_RECOVERY_OPTIONS during RecoverSet and helps protect one or more unselected volumes on the target LUN from being silently overwritten during a resync operation. Specifying this option would indicate that the operation need not do the above check and it is OK to overwrite all the drives on the target LUN. A VSS resync operation as in the above scenario will fail in absence of this flag.

Cause


The LUNs are left in this state due to VSS not checking their state after the Hardware Provider Veto.

Resolution


The are a couple of ways to work around this issue:

1) Use Diskpart to online the volume if it has more than one LUN backing it or if it is just one LUN online the LUN

2) Use VDS to perform the above actions using:

IVdsVolumeMF::Mount

IVdsDiskOnline::Online

More Information


To identify this issue in a VSS trace, look for error VSS_E_PROVIDER_VETO (0x80042306) during CVssHardwareProviderWrapper::RecoverSet:

0927 [15:24:32.085 P:0994 T:0B90 CORHRSNC(0948)    COORD] ENTER[CVssHardwareProviderWrapper::OfflineResyncDisks]
0928 [15:24:32.085 P:0994 T:0B90 CORHRSNC(0955)    COORD] CONTEXT[CVssHardwareProviderWrapper::OfflineResyncDisks] Adding context: 'Offlining destination disks before Resync operation' (0)
0931 [15:24:32.085 P:0994 T:0B90 INCICHLH(0453)    COORD] TRACE_BINARY[CVssHardwareProviderWrapper::OfflineResyncDisks] 28 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0934 [15:24:32.086 P:0994 T:0B90 INCICHLH(0551)    COORD] TRACE_BINARY[CVssHardwareProviderWrapper::OfflineResyncDisks]
0935 [15:24:32.086 P:0994 T:0B90 CORHRSNC(0948)    COORD] EXIT[CVssHardwareProviderWrapper::OfflineResyncDisks] Time spent: 00:00:00-0000; total: 0; HRESULT: 0
0940 [15:24:34.320 P:0994 T:0B90 CORHRSNC(0432)    COORD] THROW[CVssHardwareProviderWrapper::RecoverSet] Provider veto detected. IVssSnapshotSnapshotProvider::ResyncLuns failed with error 0x80042306. Provider ID = {24e4e8a3-69cb-4370-8b7b-c5276cd49765}
0941 [15:24:34.320 P:0994 T:0B90 CORHRSNC(0432)    COORD] THROW[CVssHardwareProviderWrapper::RecoverSet]
0950    Current State: RecoverSet
0951 [15:24:34.328 P:0994 T:0B90 CORHRSNC(0495)    COORD] HRESULT exception caught: hr: 0x80042306
0952 [15:24:34.328 P:0994 T:0B90 CORHRSNC(3450)    COORD] ENTER[CVssHardwareProviderWrapper::CloseClusterResourceHandles]
0953 [15:24:34.328 P:0994 T:0B90 CORHRSNC(3458)    COORD] No cluster resource handles
0954 [15:24:34.328 P:0994 T:0B90 CORHRSNC(3450)    COORD] EXIT[CVssHardwareProviderWrapper::CloseClusterResourceHandles] Time spent: 00:00:00-0000; total: 0; HRESULT: 0
0955 [15:24:34.328 P:0994 T:0B90 CORHRSNC(0329)    COORD] EXIT[CVssHardwareProviderWrapper::RecoverSet] Time spent: 00:00:02-0325; total: 0x915; HRESULT: 0x80042306
0956 [15:24:34.328 P:0994 T:0B90 CORSNPSC(2841)    COORD] THROW[CVssSnapshotSetObject::DoRecoverSetAsync] Fail resync operation
0957 [15:24:34.328 P:0994 T:0B90 CORSNPSC(2841)    COORD] THROW[CVssSnapshotSetObject::DoRecoverSetAsync]
0963    Current State: RecoverSet
0966 [15:24:34.328 P:0994 T:0B90 CORSNPSC(2846)    COORD] HRESULT exception caught: hr: 0x80042306
0967 [15:24:34.328 P:0994 T:0B90 CORSNPSC(2774)    COORD] EXIT[CVssSnapshotSetObject::DoRecoverSetAsync] Time spent: 00:00:02-0325; total: 0x915; HRESULT: 0x80042306
0968 [15:24:34.328 P:0994 T:0B90 CORASYNC(0672)    COORD] DoRecoverSetAsync failed.  0x80042306