Statistics
| Branch: | Tag: | Revision:

root / Ganeti / HTools @ 5aa48dbe

# Date Author Comment
5aa48dbe 05/21/2009 12:54 am Iustin Pop

Generalize some Result function into monad ones

We don't really needed, but is more clean like this.

942403e6 05/21/2009 12:25 am Iustin Pop

Switch from hand-written monads to a real one

This big patch converts from our home-grown monad-like constructs
(the Either stuff) to a real, Either-like-but-another-name monad.

We introduce a “Result a” monad, and this allows dropping many of the
extra constructs. Hopefully the code is also more clear....

144f190b 05/21/2009 12:25 am Iustin Pop

Small changes to the IAlloc module

Adding a small request type data structure.

234d8af0 05/20/2009 12:59 am Iustin Pop

Don't consider offline nodes as N+1 failed

This is just a cosmetic (I hope) change; the nodes shouldn't be used
anyway, and we only correct the display message.

aff363a4 05/20/2009 12:50 am Iustin Pop

Drop RAPI v1 compatiblity

Since we only support Ganeti 2.0, we drop the 1.2 compatibility.

00b15752 05/20/2009 12:45 am Iustin Pop

Add support for 'offline' nodes

This patch drops compatiblity with Ganeti 1.2 and adds support for
offline nodes in the cluster. When reading from RAPI, the drained nodes
are considered offline so that we don't allocate on them too.

3f6af65c 05/19/2009 01:19 am Iustin Pop

Update the IAlloc module

We know have a working parseData function that returns the node and
instance data. This uncovered bad support for non-drbd instances ☹

9ba5c28f 05/18/2009 12:03 pm Iustin Pop

Move the JSON utilities to Utils.hs

This patch moves the generic/reusable JSON functions to Utils.hs, so
that they're shared between RAPI/IAlloc.

43643696 05/18/2009 09:46 am Iustin Pop

Add a copy of Rapi.HS as IAlloc.hs

This will be used in two ways:
- format the response to Ganeti (easy, implemented)
- parse the input data and build the node/instance lists (hard :)

b0517d61 04/25/2009 06:40 pm Iustin Pop

hbal: Add a new min-score option

This new parameter causes the algorithm to finish (or even not start at
all) if we reach/have a score better than it.

b161386d 04/25/2009 06:39 pm Iustin Pop

hbal: Change hardcoded tests to monadic composition

In some case we manually do “if isNothing … then Nothing else …”, which
can be very easily replaced with a monadic construct in the Maybe monad.

8930eef2 04/20/2009 03:12 pm Iustin Pop

Increase allowed missing memory to 512MB

Since Xen seems to “steal” some amounts of memory (depending on total
node memory), we increase the maximum allowed missing memory to 512MB,
based on gathered data from multiple machines.

8032b3b5 04/20/2009 02:07 pm Iustin Pop

Add reading the file names from env vars

This patch adds support for selecting the instance/node file names via
two environment variables (HTOOLS_NODES, HTOOLS_INSTANCES).

Unfortunately we still have lots of duplicated code, since the options
are not unified.

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.

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.

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...

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.

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.

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

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.