Statistics
| Branch: | Tag: | Revision:

root @ e0eb63f0

# Date Author Comment
e0eb63f0 04/19/2009 01:17 am Iustin Pop

Implement writing the command list to a script

This patch adds support in hbal for writing the command list to a shell
script, with error checking and allowing for early exit.

3d7cd10b 04/16/2009 12:02 pm Iustin Pop

hbal: Abort for invalid offline node names

Since it's easy to pass a wrong node name as offline, we should abort
instead of silently ignoring it.

c5bd8d89 03/23/2009 09:26 am Iustin Pop

Updated new in preparation for the 0.0.7 release

6ef35e3c 03/23/2009 09:12 am Iustin Pop

More documentation updates

This removes most of the content of the README file (obsoleted by new
algorithm and man pages), modifies the Makefile to include the built
documentation in the source archive (so that haddock/hscolour are not
needed) and updates the haddock-prologue with current information.

d0003b35 03/23/2009 08:58 am Iustin Pop

More man page updates

This moves some data from README to the man pages and has other general
improvements.

9cded5d3 03/23/2009 12:32 am Iustin Pop

Add checks for missing disk space

This small patch adds disk space checks to the Cluster.checkData
function, and simplifies a little the warning messages.

190ce47c 03/23/2009 12:32 am Iustin Pop

Include DRBD overhead in sda/sdb size

For Ganeti 1.2 which doesn't have the ‘disk_usage’ instance query field,
we need to manually include the DRBD overhead (per disk). This patch
modifies the RAPI collection to do this, but loading from disk does not
as it's unknown if the query came from hscan or RAPI 1.2 or RAPI 2.0...

d2ac5526 03/23/2009 12:12 am Iustin Pop

Documentation updates

This patch adds a man page for hscan and updates the README and other
man pages with the latest changes.

0ee8fd76 03/22/2009 11:33 pm Iustin Pop

Update all needed node fields on f_mem change

This fixes the setFmem function which didn't compute other related
fields after free memory change. Ideally, this should be abstracted so
that add/remove Pri and similar functions could reuse it instead of
duplicating code.

53f00b20 03/22/2009 12:40 pm Iustin Pop

Fix interaction between down instances and nodes

If an instance is down, it's memory is not reflected in the node used
memory, and thus the node free memory is higher than the actual value.
This patch deducts the memory for such instances from the node free...

f82f1f39 03/22/2009 12:24 pm Iustin Pop

Add a new instance field denoting run status

This patch modifies Rapi, the Cluster.loadData and hscan serialization to load
and save the instance run status. At instance level, we add both a boolean
field denoting the true/false run status, and a string field which holds the...

a1c6212e 03/22/2009 12:07 pm Iustin Pop

Show the x_mem/i_mem in node list

This patch adds checking of cluster data in the binaries and display of
node's x_mem/i_mem in the node list.

5d1baf63 03/22/2009 12:02 pm Iustin Pop

Add functions to check and fix cluster data

This patch adds a checkData function which goes over the node list and computes
the unaccounted memory, returning a list of warning messages (if any) and the
update nodes.

8c5b0a0d 03/22/2009 11:55 am Iustin Pop

Add a new node filed x_mem

Nodes can have some memory unaccounted for, due to (e.g.) hypervisor
overhead, rounding errors in reporting, etc.

It is better if we model this memory explicitly instead of hiding it,
and actually since the n_mem addition it is actually required to do so....

209b3711 03/22/2009 11:52 am Iustin Pop

Split common CLI functionality into a module

This patch moves the common CLI functionality (as much as currently
possible) into a separate module. This means we only have one parseOpts
and that Utils.hs doesn't keep this kind of functions anymore.

6e75a445 03/22/2009 02:18 am Iustin Pop

Remove unused and obsolete function

The Node.str function is very old and is not useful since the node
objects have much more fields today. This patch removes it, and if
needed a full node display can be done via ‘show’.

04be800a 03/22/2009 01:25 am Iustin Pop

Add node memory field to Node objects

This patch adds a new n_mem field to the node objects, and implements
read/save/show support for it. The field is not currently used (except
in the node list) but will be used for checking data consistency and
instance up/down status.

47a8bade 03/22/2009 01:12 am Iustin Pop

Pass actual types to node/instance constructors

This patch changes the parameters passed to the node and instance
constructors from generic Strings (which are then parsed via “read”) to
the actual used types, by converting them earlier in Cluster.loadData.

670b57ad 03/22/2009 01:06 am Iustin Pop

Small change in hscan

This fixes a mistake between Int/Integer. Should be more careful :)

127e0396 03/22/2009 12:51 am Iustin Pop

Add hscan to Makefile

1b7a5835 03/22/2009 12:50 am Iustin Pop

Add the hscan tool

This patch adds an hscan tool that loads data from clusters via RAPI and
writes it to files that can be later used offline.

7847a037 03/22/2009 12:48 am Iustin Pop

Some small changes in preparation for hscan

This patch does some small changes:
- fixes a comment
- export more node functions (unneeded now, but hscan will use them)
- fixes Makefile rule for building the programs

740ec004 03/21/2009 11:00 pm Iustin Pop

Add a separate type for the [(Int, String)] list

This is added for better readability, since this is very often used in
declarations.

19777638 03/21/2009 04:48 pm Iustin Pop

Handle correctly offline nodes in cluster scoring

This patch changes two things with regard to offline nodes:
- first, it only calculates the various coefficients across online
nodes
- second, it adds a new score denoting the percentage of instances...

352806f7 03/21/2009 01:20 pm Iustin Pop

Show offline nodes in the node status list

This patch adds a new ‘-’ flag for the node status which denotes offline
nodes.

40d4eba0 03/21/2009 01:26 am Iustin Pop

Restrict move list based on offline node status

This patch changes the Cluster.checkInstanceMove function to restrict
the target move list based on which nodes are online.

ec18dca9 03/21/2009 12:48 am Iustin Pop

Add command line support for offlining nodes

This patch modifies hbal (only, hn1 not yet) for setting nodes offline.

c2c1ef0c 03/21/2009 12:45 am Iustin Pop

Add a new 'offline' Node attribute

This patch adds a new node attribute - offline - which will serve to
skip nodes from the target candidate list.

2cd85a1b 03/21/2009 12:43 am Iustin Pop

More fixes to the Makefile

80d0d2f1 03/20/2009 11:48 pm Iustin Pop

Small doc update in Node.hs

7ae514ba 03/20/2009 08:58 pm Iustin Pop

Some updates to the apidoc rules

968de7fc 03/20/2009 08:28 pm Iustin Pop

Fix/enhance makefile rules after the rename

10e37f3b 03/20/2009 07:17 pm Iustin Pop

Add a .gitattributes file

This will enhance the ‘dist’ rule by skipping unneeded files.

669d7e3d 03/20/2009 07:16 pm Iustin Pop

Introduce a namespace for the modules

The modules are moved from the ‘top’ namespace to ‘Ganeti.HTools’, in
compliance with standard practices.

9857c181 03/16/2009 09:35 am Iustin Pop

Update NEWS for version 0.0.6

29ac5975 03/14/2009 09:25 pm Iustin Pop

Abstract the version format into a function

This patch moves the version string creation into a function in Utils
which shows some more information.

b0045e4d 03/14/2009 09:12 pm Iustin Pop

Add a man page for hn1 and update the hbal one

A new man page and typos fixed in hbal.1.

a9211170 03/14/2009 01:53 pm Iustin Pop

Add a manpage for hbal

7ef4d93e 03/14/2009 01:49 pm Iustin Pop

Add a --version option

This patch adds a -V, --version command line option that shows the
program version and also updates the hn1 usage string (similar to hbal).

6dc960bc 03/14/2009 01:41 pm Iustin Pop

Move a function around in hbal.hs

This just reorders some functions for a more logical ordering.

ab271fc1 03/14/2009 01:35 pm Iustin Pop

Show the step counter in the solution list

This patch changes the solution list to include a step counter so that
it's more clear these are successive steps (in a definite order), and
not just an unordered list of changes.

9b91b5a3 03/14/2009 01:16 pm Iustin Pop

Use gnt-instance migrate instead of failover

This patch changes the gnt-instance failover to migrate, and fixes a bug
in the formatting of commands.

7eff5b09 03/14/2009 01:14 pm Iustin Pop

hbal: added a verbose setting and changed output

This patch added a verbose output and changed the output so that by
default it is less verbose and more clear.

19493d33 03/14/2009 11:11 am Iustin Pop

Add a new move FailoverAndReplace

This patch adds a new instance move, FailoverAndReplace, which promotes
the old secondary to primary and then uses a new secondary node.

This is the last move that we can do within the limitations of one node
changed per move.

00b51a14 03/13/2009 10:00 pm Iustin Pop

Some more docstring updates

142538ff 03/13/2009 09:11 pm Iustin Pop

Enhance the command list for the solution

This patch moves the formatting of the command list to Cluster.hs and
enhances it with separator messages between the steps.

79ac6b6f 03/13/2009 08:53 pm Iustin Pop

Add a new ReplaceAndFailover move

This patch adds a new replace secondary and failover move (equals to
“r:x f”), which can improve the solution (since we are testing more
options at each step).

fd934a28 03/13/2009 08:52 pm Iustin Pop

Some whitespace changes

Aligned the comments in Instance.hs

7dfaafb1 03/13/2009 07:57 pm Iustin Pop

Convert hbal from multiple rounds to a step-method

Currently hbal does multiple rounds, stopping when a rounds doesn't
bring improvements. With the recent changes to not remove instances from
the candidate list, this is obsolete as the first round will always run...

ca8258d9 03/13/2009 09:14 am Iustin Pop

Rework the solution printing in Cluster.hs

This abstracts the individual placement solution so that it can be used
independently.

0a0f2533 03/12/2009 10:23 pm Iustin Pop

Remove the restriction of one-move-per-round

The current code restricts each instance to one move per round. This is
bad, as an computation restarted in the middle of the solution will have
a different set of instances to work and will thus lead to a different...

ced859f3 03/12/2009 10:16 pm Iustin Pop

Add a header to node lists and print more data

This prints the total memory/disk and also adds a header.

c622fa7c 03/12/2009 10:07 pm Iustin Pop

Rename the maxRes to r_mem

This is to keep in style with the other memory variables.

04247752 03/12/2009 09:54 pm Iustin Pop

Display the reserved memory too in node lists

This is useful and not easy to compute otherwise.

8b42a5db 03/12/2009 09:31 pm Iustin Pop

First try to embed VCS id in binaries

This patch attempts to embed the VCS id in binaries, based on the way
other projects seem to do this.

ea22656b 03/11/2009 10:22 am Iustin Pop

Fix the Makefile clean rule

This removes obsolete entries from the clean rule and adds the hbal
binary.

34a6e127 03/11/2009 10:18 am Iustin Pop

Change the N1 score to percent of N1 failures

Since for a very many N+1 failures in a cluster, we could actually
degrade the N1 CV by making a node N+1 compliant, we need to make sure
this value only decreases when fixing non-compliant nodes.

The easiest way is to compute the N+1 score as a percentage of failed...

d6be0775 03/11/2009 10:08 am Iustin Pop

Add two new variables in the cluster score

This patch adds two new variables to the cluster score:
- variance of the failN1 attribute
- variance of the reserved memory percentage

The variance of the failN1 helps make the cluster N+1 happy, whereas the...

dfc749e6 03/11/2009 10:07 am Iustin Pop

Add the node reserved memory percentage

This patch adds the node attribute “reserved memory percentage” that is
derived from the maximum reserved memory for a node and its total
memory.

This will be useful for enhancing the balancing algorithm.

c5c295bc 03/11/2009 09:14 am Iustin Pop

Record the running cluster CV in placements

This patch adds a score variable to the placement type, so we can record
the changes in the cluster CV for later display.

This gives visibility in the decrease of the parameters and can show
which are the most important steps to perform (out of the full move...

0c1df6fd 03/11/2009 09:13 am Iustin Pop

Also print cluster coefficients in hn1

This patch adds printing the initial and final cluster coefficients in
hn1 too, to better understand the found solution.

af53a5c4 03/10/2009 10:20 pm Iustin Pop

Beautify the cluster status list

This patch removes the primary/secondary instance lists from the node
status and also removes the tabbed formatting with explicit width
formatting.

671b85b9 03/10/2009 09:35 pm Iustin Pop

Beautify solution list

This patch makes the tabular solution list nicer, by changing from tabs
to explicit widths.

289c3835 03/10/2009 09:14 pm Iustin Pop

Limit string literals to 80-char columns

Learned how multi-line string literals work in Haskell :)

bbd1d273 03/09/2009 10:47 pm Iustin Pop

Add a news file and make the 0.0.5 release

a0529a64 03/09/2009 10:37 pm Iustin Pop

Beautify: strip common suffix from names

This patch automatically removes the longest common (domain, i.e.
starting with a dot) suffix from the node and instance names. This gives
a much clearer display, and this format is compatible with the way
Ganeti accepts shortened names.

d6109e64 03/09/2009 09:50 pm Iustin Pop

hbal: allow, but warn on, N+1 failed clusters

Based on the node changes, we remove the N+1 check and only show a
warning instead.

d10b27ef 03/09/2009 09:46 pm Iustin Pop

Change the node N+1 check model

Currently, we fail a new instance placement if the new node status is
not N+1 compliant. This means that an allocation on an already N+1
failed node still fails, even though (conceptually) we're not worse than
before.

This patch changes this model to fail the allocation only if the node...

2cf878a5 03/09/2009 09:36 pm Iustin Pop

Show which nodes are not N+1 compliant in output

This patch adds a '*' character to nodes which are not N+1 compliant to
the output, to help with understanding pre- and post-changes cluster
status.

8df5db55 02/22/2009 02:20 pm Iustin Pop

Don't build documentation for the Main modules

This fixes the doc issue which exists since the addition of hbal. Now
make doc makes sense again.

38f63ae6 02/22/2009 02:18 pm Iustin Pop

Change the total disk/mem to Double

Since we only use the totals for computations, and we always convert
them via fromIntegral, let's just store them directly as Doubles.

962367fe 02/22/2009 02:15 pm Iustin Pop

A no-code change s/disk/dsk/

This just makes indendation nicer in many expressions.

0335fe4a 02/22/2009 02:05 pm Iustin Pop

Compute the p_mem / p_dsk statically

This patch changes the computation of p_mem / p_dsk from on-demand
(whenever the cluster stats are computed) to after-modify (after a node
is modified, we update its stats). This brings a god speed-up as only
one node or two are usually changed between cluster-wide stats are...

d53264c0 02/15/2009 03:53 pm Iustin Pop

Documentation updates

9dc6023f 02/15/2009 03:48 pm Iustin Pop

Simplify the checkInstanceMove function

This patch flattens the two folds into one, by simply building the whole
list of moves instead of the double recursion (nodes and the each
node's moves). This has no functional change, but it's much cleaner.

256810de 02/15/2009 03:40 pm Iustin Pop

A small optimization in node computation

Currently we always compute the available node list for moves (for an
instances) based on the nodes of the initial table. This works find,
however is a repeated calculation.

We optimize this by passing a node list (of indexes, not full objects),...

1fd47ca2 02/15/2009 03:40 pm Iustin Pop

Container: add a 'keys' function

d4f62d4e 02/15/2009 03:35 pm Iustin Pop

Replace a foldl by foldl'

4e25d1c2 02/15/2009 03:10 pm Iustin Pop

Split checkMove into two

This cleans up and splits the individual instance move into a separate function.

aaaa0e43 02/15/2009 02:58 pm Iustin Pop

Change the balancing algorithm

This patch changes the balancing algorithm to not iterate linearly over
the instances (in a random, but fixed order), instead selecting at each
step the best next move. This should allow a better score (most of the
time), and usually also a shorter solution.

dd4c56ed 02/14/2009 10:05 am Iustin Pop

Add RAPI support to hn1

This patch moves a function to Utils and changes hn1 to be able to take
data from RAPI.

27f96567 02/14/2009 10:00 am Iustin Pop

Implement oneline-output for hbal

9b9a5931 02/14/2009 09:51 am Iustin Pop

Do not try both http and https against the server

This patch changes the tryRapi function so that if the http request
succeeded, we don't try https too.

d7cf83bf 02/14/2009 09:46 am Iustin Pop

Simplify some JSON transforms

... hopefully this is more clear.

aab26f2d 02/13/2009 11:26 pm Iustin Pop

Add compatibility with rapi v1

The patch adds compatibility with RAPI v1, and this required some new
JSON functions as valFromObj doesn't behave nicely.

Some other unrelated changes were done too.

a30b2f5b 02/13/2009 10:28 am Iustin Pop

Implement reading data from RAPI v2

1b7cf8ca 02/13/2009 10:27 am Iustin Pop

Some more utility functions

e5f02e15 02/13/2009 10:26 am Iustin Pop

Fix a bug in Cluster.fixNodes

We need to lookup the moving accumulator, of course.

b8b9a53c 02/12/2009 10:14 pm Iustin Pop

Make RAPI return the same data format as gnt-*

This patch changes the RAPI endpoint return the same data format as the
input files. This will allow using it instead of the files.

01f6a5d2 02/12/2009 09:55 pm Iustin Pop

Change the input file formats

This patch changes the format of the input node and instance lists. It
removes the list of primary and secondary instances from the nodes, and
adds the primary and secondary nodes to the instance list.

This is done so that we can have the same input data from commands as...

a7654563 02/11/2009 10:37 pm Iustin Pop

Initial support for reading from RAPI

e4f08c46 01/28/2009 01:09 pm Iustin Pop

Initial import

This is the initial import of release 0.0.3.