1. 28 May, 2014 1 commit
2. 26 May, 2014 6 commits
• Use more efficient statistics for the standard deviation · b3aa93a2
Klaus Aehlig authored

Instead of using the full sample as statistics providing
enough information to compute the standard deviation, use
a slightly more elaborate one. It contains the standard
statistics count, sum, and sum of squares, which can also
very easily be updated. However, computing the standard
deviation from these values unfortunately is not precise
enough for our purpose (small difference of large values).
Therefore, we also carry the naively computed variance in
the statistics. The latter can also be updated using the
standard statistics and, moreover, this can be done in a
way that does not introduce too large inaccuracies for a
Signed-off-by:
Reviewed-by:
• Use statistics updates when allocating on pairs · c5da4cf1
Klaus Aehlig authored

When considering the various ways of positioning an instance
on a pair of nodes, make use of the fact that the statistics
are extremely similar (only two nodes changed) and obtain the
new statistics by updating the old one, rather than by recomputing
it from scratch.
Signed-off-by:
Reviewed-by:
• Factor score computation through abstract statistics · f66ae90a
Klaus Aehlig authored

Logically separate the computation of the cluster score into
two steps: the computation of the abstract statistics and its
evaluation. In this way, we obtain an abstract value which we
can update instead of recomputing it when considering different
instance placements.
Signed-off-by:
Reviewed-by:
• Verify the update of the standard deviation statistics · 6bb77749
Klaus Aehlig authored

Add a test that verifies that the error introduced by updating
a standard-deviation statistics of a sample with at least two
elements is not too large, as compared to the direct computation.
Signed-off-by:
Reviewed-by:
• Add data type for abstract statistics · 394a5cb9
Klaus Aehlig authored

Our cluster score is a weighted sum of certain sums and
standard deviations of node characteristics. When placing
a single instance, the cluster score of a big number of
quite similar clusters are computed: that of the original
cluster with one instance added, for each possible placement.
To speed up these computations, add an abstract type of
statistics that allows a potentially more efficient update
of a single value.
Signed-off-by:
Reviewed-by:
• Relax test requirements · 2b296ad4
Klaus Aehlig authored

Instead of insisting on perfect equality of score
allow for numerical inaccuracies and consider everything
all differences in the cluster score smaller than 1e-12
negligible. Given that, by default, a cluster with a
score of less than 1e-9 is considered perfectly balanced,
this relaxation is on the save side.
Signed-off-by:
Reviewed-by:
3. 23 May, 2014 2 commits
• Fix gnt-network client wrt instances report · 0f63c080
Dimitris Aragiorgis authored

Let the gnt-network client expect a list of instance names and not
UUIDs as returned by QueryNetworks (by both old and new style query
mechanism).
Signed-off-by:
Reviewed-by:
• Fix QueryNetworks wrt instances · 96092119
Dimitris Aragiorgis authored

QueryNetworks tries to find which instances are connected to which
networks. The query mechanism in Haskell was written back when NICs
referred to a network via its name and not its UUID. Fix luxi to
comply with the current implementation (network slot of NIC object
is a UUID).

Fix old style query mechanism to return a list of names instead of
UUIDs for the instances that are connected to a network.
Signed-off-by:
Reviewed-by:
4. 22 May, 2014 4 commits
• tiered allocation: try canonical search path first · a37549ea
Klaus Aehlig authored

In tiered allocation, instances are put on the cluster, while they
fit---and once no more instances of the given size can be fit, smaller
instances are tried next. There is obviously some heuristics involved
in how to shrink the instance to get a smaller one of suitable
size. The standard heuristics is to shrink on the resource that
prevents to most placements. This, however, can lead into missing out
possible smaller instances, as noted in issue 483. The way to avoid
this trap was to consider all shrinkings of a single resource to see
if this leads to new solutions. This patch now changes the order of
the search: use this single resource look-ahead only if the standard
heuristics does not yield any progress. While this does not change the
complexity of the underlying algorithm, it improves search time
significantly for those cases where the standard heuristics works,
which should cover a good part of the practically relevant cases.
Signed-off-by:
Reviewed-by:
• Add QA config flag for all performance tests · 399aa2ec
Thomas Thrainer authored

Add a config flag similar to "os", "env" or "rapi" which disables all
performance related tests centrally. The individual config flags for
jobqueue and parallel processing focused tests are not touched.

Also, add the flags to qa-sample.json.

This fixes issue 826.
Signed-off-by:
Reviewed-by:
• build-bash-completion: reduce branches · d8e19f53
Helga Velroyen authored

The 'build-bash-completion' script has an enormous
function which triggered a 'too many branches' lint
error and was quite easily splittable in logical
sub-functions.
Signed-off-by:
Reviewed-by:
• Convert all the classes to new-style classes · 876fb142
Helga Velroyen authored

... to make lint shut up.
Signed-off-by:
Reviewed-by:
5. 20 May, 2014 3 commits
• Merge branch 'stable-2.9' into stable-2.10 · c4460a46
Klaus Aehlig authored

* stable-2.9
check-man-warnings: use C.UTF-8 and set LC_ALL
Fix passing of ispecs in cluster init during QA

Conflicts:
src/Ganeti/Monitoring/Server.hs: trivial
Signed-off-by:
Reviewed-by:
• Improve haskell style · 8f467ab0
Klaus Aehlig authored

...by fixing lint warnings found by HLint v1.8.57. In particular,
make sure 'make hlint' passes for this version of hlint.
Signed-off-by:
Reviewed-by:
• Add --no-locks option to gnt-debug delay · aa112e9f
Thomas Thrainer authored

Add the possibility to don't acquire locks during `gnt-debug delay`.
This allows to run many delay jobs in parallel instead of having
them run sequentially.
Signed-off-by:
Reviewed-by:
Reviewed-by:
6. 19 May, 2014 7 commits
• Include design-performance-tests.rst in index · c374ceab
Thomas Thrainer authored
Signed-off-by:
Reviewed-by:
• Document the --force-failover option · 46593037
Klaus Aehlig authored

Extend the gnt-group man page by documenting the --force-failover
option of the evacuation command.
Signed-off-by:
Reviewed-by:
• Support group evacuation by failover · d0cd1368
Klaus Aehlig authored

Support evacuating a node group not using migration.
This can be useful if the group evacuated to has different
hardware.
Signed-off-by:
Reviewed-by:
• Add an option --force-failover · 2039321f
Klaus Aehlig authored

...to be added to gnt-group evacuate forcing evacuation by
means for failovers instead of migrations.
Signed-off-by:
Reviewed-by:
• Extend OpGroupEvacuate by a ForceFailover paramter · 8ddee5b6
Klaus Aehlig authored

Add a parameter to OpGroupEvacuate to force failovers to be
used instead of migrations. This can be useful, if a group
is evacuated to another with different hardware.
Signed-off-by:
Reviewed-by:
• Mark performance tests design as implemented · 63c875e7
Thomas Thrainer authored

The performance tests are implemented as outlined in the design doc, so
mark the document as implemented.
Signed-off-by:
Reviewed-by:
• check-man-warnings: use C.UTF-8 and set LC_ALL · 4868dfd5
Apollon Oikonomopoulos authored

check-man-warnings currently partially forces the en_US.UTF-8 locale by
setting LANG. This implicitly assumes that the locale exists, which
might not be the case when building e.g. in chroot environments. If the
locale does not exist, then check-man-warnings fails with the following
message:

col: Invalid or incomplete multibyte or wide character
man: command exited with status 1: col -b -p -x

Some distributions (at least Debian and derivatives) ship an embedded
C.UTF-8 locale with full unicode support. We prefer using C.UTF-8 if it
is available and fall back to en_US.UTF-8 otherwise. We also set LC_ALL
to the same locale, because if they remain unset (i.e. "C"), the same
behavior happens.
Signed-off-by:
Signed-off-by:
Reviewed-by:
7. 16 May, 2014 5 commits
• openvswitch fix · 95ec6e95
Ansgar Jazdzewski authored

* fix unhandled nic.mode in config.py
"Unhandled Ganeti error: NIC mode 'openvswitch' not handled" (Issue 804)
* handle link-changes for the virtual NIC
a instance will readd the tap interface to the openviswitch so that
changes of the instance-link (VLAN) will be considered.
Signed-off-by:
Signed-off-by:
Reviewed-by:
• Document the --sequential option · f4664f19
Klaus Aehlig authored

Document that group evacuation is usually run in parallel, but
can be made sequentially by providing an appropriate option.
Signed-off-by:
Reviewed-by:
• Support sequential evacuation · c812ab71
Klaus Aehlig authored

Make gnt-group evacuate support the --sequential option,
which causes all evacuation moves to be execuated sequentially.
This can be used to avoid congestion on a possibly slow link
between the node groups.
Signed-off-by:
Reviewed-by:
• Add an option --sequential · ed9c2202
Klaus Aehlig authored

...which can be used to tell commands like gnt-group evacuate to
sequentially perform their action to keep load away from the cluster.
Signed-off-by:
Reviewed-by:
• Extend OpGroupEvacuate by a sequential paramter · 593fd115
Klaus Aehlig authored

...telling it to run all the evacuation jobs sequentially.
This might be useful to avoid too much load that otherwise
might occur.
Signed-off-by:
Reviewed-by:
8. 14 May, 2014 6 commits
9. 13 May, 2014 2 commits
10. 12 May, 2014 4 commits