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

Reply via email to