Objects stuck in 'reduced-availability-with-no-rebuild' can usually be fixed by temporary change of Storage Policy to an alternative one and then back to original.
When this specific issue is encountered, such workaround does not help, objects in question do change state to 'reducedavailabilitywithpolicypending' and stay in it, example:
Health Status Number Of Objects--------------------------------------------------------- -----------------remoteAccessible 0inaccessible 0reduced-availability-with-no-rebuild 0 reduced-availability-with-no-rebuild-delay-timer 0reducedavailabilitywithpolicypending 3 <<<<<reducedavailabilitywithpolicypendingfailed 0reduced-availability-with-active-rebuild 0reducedavailabilitywithpausedrebuild 0data-move 0nonavailability-related-reconfig 0nonavailabilityrelatedincompliancewithpolicypending 0nonavailabilityrelatedincompliancewithpolicypendingfailed 0nonavailability-related-incompliance 0nonavailabilityrelatedincompliancewithpausedrebuild 0healthy 450
Additionally, repeated messages in /var/run/log/clomd.log do suggest rapid changes of no. of available Fault Domains for attempt to recalculate votes (but only for the objects in question), example:
info clomd[2099031] [Originator@6876 opID=1804330564] CLOM_SetQuorumVotes: Need at least 3 Lower FDs Per Upper, current: 2info clomd[2099031] [Originator@6876 opID=1804330564] CLOM_SetQuorumVotes: Need at least 1 Lower FDs Per Upper, current: 1info clomd[2099031] [Originator@6876 opID=1804330564] CLOM_SetQuorumVotes: Need at least 3 Lower FDs Per Upper, current: 2info clomd[2099031] [Originator@6876 opID=1804330564] CLOM_SetQuorumVotes: Need at least 3 Lower FDs Per Upper, current: 3
NOTE:
No cluster flapping/Fault Domain availability problems are present when this issue is encountered - all other objects are able to provision and/or reconfigure properly.
VMware ESXi 7.0 Update 2 (build 17867351)
This issue is fixed in 7.0 U3.
If update at current is not possible then the following workarounds are available:
a) Storage vMotion the Virtual Machine (for which the objects do belong) to alternative storage and back.
b) Alternatively:
- schedule downtime
- power down the Virtual Machine in question
- clone the VM
- validate sanity of clone
- delete the original VM
c) Approach using backups is another viable alternative:
- schedule downtime
- power down the Virtual Machine in question
- backup the VM
- restore from backup to newly created VM
- validate sanity of restored machine
- delete the original VM