Joshua Boniface
39cc992e9b
Lint: E306 expected 1 blank line before a nested definition, found 0
2020-11-07 12:17:38 -05:00
Joshua Boniface
8c623023d5
Lint: F811 redefinition of unused '<function>'
2020-11-07 12:14:29 -05:00
Joshua Boniface
5b3ee363b2
Lint: E222 multiple spaces after operator
2020-11-07 12:10:24 -05:00
Joshua Boniface
fad27a7f4d
Lint: E131 continuation line unaligned for hanging indent
2020-11-06 22:29:49 -05:00
Joshua Boniface
2eef6a1c21
Lint: E265 block comment should start with '# '
2020-11-06 21:32:17 -05:00
Joshua Boniface
4b47a2424c
Lint: E303 too many blank lines (2)
2020-11-06 21:16:52 -05:00
Joshua Boniface
cb2defbde9
Lint: W391 blank line at end of file
2020-11-06 21:14:19 -05:00
Joshua Boniface
5da314902f
Lint: F841 local variable '<variable>' is assigned to but never used
2020-11-06 21:13:13 -05:00
Joshua Boniface
98a573bbc7
Lint: E402 module level import not at top of file
2020-11-06 20:40:32 -05:00
Joshua Boniface
aecb845d6a
Lint: E713 test for membership should be 'not in'
2020-11-06 20:37:52 -05:00
Joshua Boniface
fde8ea2fea
Lint: W291 trailing whitespace
2020-11-06 19:44:14 -05:00
Joshua Boniface
57c51d3234
Lint: E711 comparison to None should be 'if cond is not None:'
2020-11-06 19:37:13 -05:00
Joshua Boniface
ce01b41d81
Lint: E711 comparison to None should be 'if cond is None:'
2020-11-06 19:36:36 -05:00
Joshua Boniface
4d6f36aca0
Lint: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
2020-11-06 19:35:51 -05:00
Joshua Boniface
fb4aafcea9
Lint: E111 indentation is not a multiple of four
2020-11-06 19:26:22 -05:00
Joshua Boniface
d9e7b7ec15
Lint: F401 <library> imported but unused
2020-11-06 19:22:49 -05:00
Joshua Boniface
ebf254f62d
Lint: W293 blank line contains whitespace
2020-11-06 19:11:07 -05:00
Joshua Boniface
63f4f9aed7
Lint: E722 do not use bare 'except'
2020-11-06 18:55:10 -05:00
Joshua Boniface
56ba7b1457
Bump version to 0.9.1
2020-10-29 12:16:38 -04:00
Joshua Boniface
ec0b8acf90
Support per-VM migration type selectors
...
Allow a VM to specify its migration type as a default choice. The valid
options are "default" (i.e. behave as now), "live" which forces a live
migration only, and "shutdown" which forces a shutdown migration only.
The new option is treated as a VM meta option and is set to default if
not found.
2020-10-29 12:01:29 -04:00
Joshua Boniface
5d08ad9573
Fix incorrect keepalive interval setting
2020-10-26 11:44:45 -04:00
Joshua Boniface
0f299777f1
Modify version to 3-digit numbering
...
I expect 0.9 will be fairly long-lived, so add another decimal place so
I may continue adding tweaks to it.
THIS IS NOT SEMVER.
2020-10-26 02:13:11 -04:00
Joshua Boniface
890023cbfc
Make sender wait dynamic based on receiver
2020-10-21 14:43:54 -04:00
Joshua Boniface
28abb018e3
Improve some timeouts and conditionals
2020-10-21 12:00:10 -04:00
Joshua Boniface
017953c2e6
Move lock release to phase D
2020-10-21 11:07:01 -04:00
Joshua Boniface
82b4d3ed1b
Add missing prefix statements to loggers
2020-10-21 10:52:53 -04:00
Joshua Boniface
bae366a316
Add waits and only receive check on send
2020-10-21 10:43:42 -04:00
Joshua Boniface
351076c15e
Check if node changed during final check
...
Avoids situations where two migrates, to different nodes, happen in
rapid succession. Aborts the migration if the current target node no
longer matches what was set at the start of the execution.
2020-10-21 02:52:36 -04:00
Joshua Boniface
42514b9a50
Improve messages further
2020-10-21 02:41:42 -04:00
Joshua Boniface
611e47f338
Add messages to migration aborts
...
Results in some information duplication, but ensures logging of the
reason a migration was aborted separate from the error(s) this may
generate.
2020-10-21 02:38:42 -04:00
Joshua Boniface
1523959074
Move where setting last_ vars happens
2020-10-21 02:24:00 -04:00
Joshua Boniface
ef762359f4
Adjust timing to avoid migrating to self quickly
...
Add another separate state lock, release it earlier, and ensure timings
are good to avoid double-migrating one VM.
2020-10-21 02:17:55 -04:00
Joshua Boniface
398d33778f
Avoid stopping duplicates, just lock our own key
2020-10-20 16:10:39 -04:00
Joshua Boniface
a6d492ed9f
Remove spurious writes and adjust sleep
2020-10-20 16:04:26 -04:00
Joshua Boniface
11fa3b0df3
Remove additional wait and add last_node entries
...
These allow for aborting a migration to retain the previous settings and
override what the client set.
2020-10-20 15:58:55 -04:00
Joshua Boniface
442aa4e420
Tweak timers further
2020-10-20 15:43:59 -04:00
Joshua Boniface
3910843660
Add missing break
2020-10-20 15:39:29 -04:00
Joshua Boniface
70f3fdbfb9
Tweak the delays slightly on receive
2020-10-20 15:38:07 -04:00
Joshua Boniface
7cb0241a12
Attempt live migrates 3 times before proceeding
2020-10-20 15:33:41 -04:00
Joshua Boniface
9fb33ed7a7
Increase peer lock acquiring timers
2020-10-20 15:26:59 -04:00
Joshua Boniface
abfe0108ab
Better handle aborting migrations
2020-10-20 15:22:16 -04:00
Joshua Boniface
567fe8f36b
Wait for existing migrations before proceeding
2020-10-20 15:12:32 -04:00
Joshua Boniface
ec7b78b9b8
Add additional short sleep in receive
2020-10-20 13:29:17 -04:00
Joshua Boniface
224c8082ef
Alter text of synchronization messages
2020-10-20 13:08:18 -04:00
Joshua Boniface
f9e7e9884f
Improve handling of VM migrations
...
The VM migration code was very old, very spaghettified, and prone to
strange failures.
Improve this by taking cues from the node primary migration. Use
synchronization between the nodes to ensure lockstep completion of the
migration in discrete steps.
A proper queue can be built later to integrate with this code more
cleanly.
References #108
2020-10-20 13:01:55 -04:00
Joshua Boniface
726501f4d4
Add additional logging to flush selector
...
Adds additional debug logging to the flush selector to determine how any
why any given node is selected. Useful for troubleshooting strange
choices.
2020-10-20 12:34:18 -04:00
Joshua Boniface
c6e34c7dc6
Bump base version to 0.9
2020-10-18 14:31:19 -04:00
Joshua Boniface
f749633f7c
Use provisioned memory for mem migration selector
...
Use the new "provisioned" memory field, instead of the "allocated"
memory field, to determine the optimal node when using the "mem"
migration selector. This will take into account non-running VMs in the
calculation as well as running VMs.
2020-10-18 14:17:15 -04:00
Joshua Boniface
a4b80be5ed
Add provisioned memory to node info
...
Adds a separate field to the node memory, "provisioned", which totals
the amount of memory provisioned to all VMs on the node, regardless of
state, and in contrast to "allocated" which only counts running VMs.
Allows for the detection of potential overprovisioned states when
factoring in non-running VMs.
Includes the supporting code to get this data, since the original
implementation of VM memory selection was dependent on the VM being
running and getting this from libvirt. Now, if the VM is not active, it
gets this from the domain XML instead.
2020-10-18 14:17:15 -04:00
Joshua Boniface
aa5f8c93fd
Entirely disable IPv6 on bridged interfaces
...
Prevents any potential leakage due to autoconfigured IPv6 on bridged
interfaces. These are exclusively VM-side bridges, and the PVC host
should not have any IPv6 configuration on them, ever.
2020-10-15 11:00:59 -04:00