Add a configurable delay to Nova Evacuate calls
In case /var/lib/nova/instances resides on NFS we have seen migrations failing with 'Failed to get "write" lock - Is another process using the image' errors. This has been tracked down to grace/lease timeouts not having expired before attempting the migration/evacuate, so in this cases it might be desirable to delay the nova evacuate call to give the storage time to release the locks. Change-Id: Ie2fe784202d754eda38092479b1ab3ff4d02136a Resolves: rhbz#1740069
This commit is contained in:
parent
41387bf09d
commit
8b9c49fd96
@ -125,6 +125,15 @@ Enable extra logging from the evacuation process
|
|||||||
<content type="boolean" default="0" />
|
<content type="boolean" default="0" />
|
||||||
</parameter>
|
</parameter>
|
||||||
|
|
||||||
|
<parameter name="evacuate_delay" unique="0" required="0">
|
||||||
|
<longdesc lang="en">
|
||||||
|
Allows delaying the nova evacuate API call, e.g. to give a storage array time to clean
|
||||||
|
up eventual locks/leases.
|
||||||
|
</longdesc>
|
||||||
|
<shortdesc lang="en">Nova evacuate delay</shortdesc>
|
||||||
|
<content type="integer" default="0" />
|
||||||
|
</parameter>
|
||||||
|
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|
||||||
<actions>
|
<actions>
|
||||||
@ -216,6 +225,11 @@ handle_evacuations() {
|
|||||||
fence_agent="fence_evacuate"
|
fence_agent="fence_evacuate"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ${OCF_RESKEY_evacuate_delay} != 0 ]; then
|
||||||
|
ocf_log info "Delaying nova evacuate by $OCF_RESKEY_evacuate_delay seconds"
|
||||||
|
sleep ${OCF_RESKEY_evacuate_delay}
|
||||||
|
fi
|
||||||
|
|
||||||
ocf_log notice "Initiating evacuation of $node with $fence_agent"
|
ocf_log notice "Initiating evacuation of $node with $fence_agent"
|
||||||
$fence_agent ${fence_options} -o status -n ${node}
|
$fence_agent ${fence_options} -o status -n ${node}
|
||||||
if [ $? = 1 ]; then
|
if [ $? = 1 ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user