During the sequence of moves while cluster balancing the situation on cluster may change (e.g. because of adding new instance or because of instance or node parameters change) and desired moves can become unprofitable.
Partly prevent this effect by introducing new hbal option *--avoid-disk-moves=FACTOR* which will admit only profitable enough disk moves. Signed-off-by: Oleg Ponomarev <[email protected]> --- Makefile.am | 1 + doc/design-draft.rst | 1 + doc/design-migration-speed-hbal.rst | 29 +++++++++++++++++++++++++++++ doc/design-move-instance-improvements.rst | 2 ++ 4 files changed, 33 insertions(+) create mode 100644 doc/design-migration-speed-hbal.rst diff --git a/Makefile.am b/Makefile.am index c7dbea5..67cc322 100644 --- a/Makefile.am +++ b/Makefile.am @@ -690,6 +690,7 @@ docinput = \ doc/design-location.rst \ doc/design-linuxha.rst \ doc/design-lu-generated-jobs.rst \ + doc/design-migration-speed-hbal.rst \ doc/design-monitoring-agent.rst \ doc/design-move-instance-improvements.rst \ doc/design-multi-reloc.rst \ diff --git a/doc/design-draft.rst b/doc/design-draft.rst index e4dd2e0..42d6204 100644 --- a/doc/design-draft.rst +++ b/doc/design-draft.rst @@ -28,6 +28,7 @@ Design document drafts design-shared-storage-redundancy.rst design-repaird.rst design-plain-redundancy.rst + design-migration-speed-hbal.rst .. vim: set textwidth=72 : .. Local Variables: diff --git a/doc/design-migration-speed-hbal.rst b/doc/design-migration-speed-hbal.rst new file mode 100644 index 0000000..921f76e --- /dev/null +++ b/doc/design-migration-speed-hbal.rst @@ -0,0 +1,29 @@ +================================== +Migration speed accounting in Hbal +================================== + +.. contents:: :depth: 2 + +Hbal usually performs complex sequence of moves during cluster balancing in +order to achieve local optimal cluster state. Unfortunately, each move may take +significant amount of time. Thus, during the sequence of moves the situation on +cluster may change (e.g., because of adding new instance or because of instance +or node parameters change) and desired moves can become unprofitable. + +Usually disk moves become a bottleneck and require sufficient amount of time. +:ref:`Instance move improvements <move-performance>` considers +disk moves speed in more details. Currently, ``hbal`` has a ``--no-disk-moves`` +option preventing disk moves during cluster balancing in order to perform fast +(but of course non optimal) balancing. It may be useful, but ideally we need to +find a balance between optimal configuration and time to reach this +configuration. + +Avoiding insignificant disk moves +================================= + +Allowing only profitable enough disk moves may become a first step to reach +a compromise between moves speed and optimal scoring. This can be implemented +by introducing ``--avoid-disk-moves *FACTOR*`` option which will admit disk +moves only if the gain in the cluster metrics is *FACTOR* times +higher than the gain achievable by non disk moves. + diff --git a/doc/design-move-instance-improvements.rst b/doc/design-move-instance-improvements.rst index c64b4bf..6948fd8 100644 --- a/doc/design-move-instance-improvements.rst +++ b/doc/design-move-instance-improvements.rst @@ -31,6 +31,8 @@ greater parallelization. As all of these approaches aim to tackle two different aspects of the problem, they do not exclude each other and will be presented independently. +.. _move-performance: + The performance of Ganeti moves =============================== -- 1.9.1
