- Jul 21, 2010
-
-
Iustin Pop authored
This patch switches the applyMove function to the extended versions of Node.addPri and addSec, and passes the override flag based on the state of the node that we're moving away from.
-
- Jul 19, 2010
-
-
Iustin Pop authored
This was a regression from the name handling changes, as we started using the original names for the solution list (which is not designed for parsing/feeding back into ganeti).
-
Iustin Pop authored
printSolution is no longer used, as we print the solution iteratively now.
-
- Jul 18, 2010
-
-
Iustin Pop authored
When the field list is prefixed with a plus sign, this will extend the default field list, instead of replacing it entirely.
-
- May 20, 2010
-
-
Iustin Pop authored
The patch adds some simple unit-tests for both the allocation function (we can allocate small instances on an empty cluster, we can allocate in tiered more starting from any size) and the balancing functions (one single instance is placed optimally, a full cluster plus an empty node can be rebalanced). The coverage has increased greatly, since this is the bulk of the algorithm/code. Also, the cluster tests are now being run with different options, since they are much slower.
-
Iustin Pop authored
This is done so we can test a longer pipeline.
-
Iustin Pop authored
This helps debugging via ghci.
-
Iustin Pop authored
Currently the name used internally is modified and holds the shortened name of the nodes/instances. This has caused issues before, since we always have to strip the suffix from input data and reapply it if we need to send data back to Ganeti. This patch changes the code such that the names are never modified, only the alias, and all the internal computations can forget about the common suffix addition/removal.
-
- May 18, 2010
-
-
Iustin Pop authored
This patch moves from allowing no-limits for disk/cpu ratios, and always use a real limit. For disk, it's simple since we use 0, which means no reservations for disks. For CPU, we set an (arbitrary) limit of 64 v/p, which should be reasonable as a default limit (it can be changed via the command line).
-
- May 04, 2010
-
-
Iustin Pop authored
We returned the KM_POOL_* metrics as the final state, not as the delta between the final and the initial state.
-
- Apr 15, 2010
-
-
Iustin Pop authored
Given two cluster states, the new function can answer the following questions: - how much resources currently allocated - how much resources finally allocated (delta from above is how much we can actually allocate on the cluster) - unallocable resources (whatever is left free after the previous step)
-
Iustin Pop authored
We add a new field that tracks the available virtual cpus (expressed as node cpus times the vcpu ratio).
-
- Feb 25, 2010
-
-
Iustin Pop authored
-
- Feb 23, 2010
-
-
Iustin Pop authored
Instead of deciding based on secondary node, use the new flag.
-
- Feb 22, 2010
-
-
Iustin Pop authored
This will be used by the node evacuate IAllocator request type. Signed-off-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
We'll need AllocElement in both Cluster and IAlloc in the future, so we move it to Node.hs which is imported by both. Signed-off-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
In preparation for multiple responses, we change from Maybe to List (both used in the container sense). This allows us to keep the same workflow for all kind of requests. Signed-off-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
This mode restricts the list of instances to be moved to the instances living on the offline (and drained) nodes. Signed-off-by:
Iustin Pop <iustin@google.com>
-
- Jan 14, 2010
-
-
Iustin Pop authored
Currently we test each instance for relocation in checkMove; however, it is a little more clear if we pass only the relocatable instances to checkMove. The patch also slightly rewrites (indendation/style) the second half of the checkMove function.
-
Iustin Pop authored
Currently in the balancing function we do two thing: - take the decision where to do a new balancing round or not - and actually computing the balancing round This is not nice, as the two parts are conceptually separate, so this patch splits the decision on whether to descend or not to a new function.
-
- Dec 11, 2009
-
-
Iustin Pop authored
This increases the priority of fixing N+1 failures compared to balancing metrics.
-
Iustin Pop authored
This helps with evacuation/failover of instances on 2-node clusters with one one offline.
-
Iustin Pop authored
Currently we use the offline instance percentage (with range [0, 1]), but this is not good, since we want the evacuation of such instances to have a high priority; therefore we change this to a count of offline instances, which has higher weight than a metric with range [0, 1].
-
- Nov 17, 2009
-
-
Iustin Pop authored
This small patch adds the number of conflicting primaries in the cluster score. This is different from the other non-CV metrics where we usually compute the percentage of failing instances (for that metric); but for a somewhat big cluster, 1-2% failing instances will be a too small value to cause the relocation of conflicting instances (future patches will also switch other non-CV metrics to this method).
-
- Nov 10, 2009
-
-
Iustin Pop authored
The print nodes option can now accept an optional field list to customise the output. This is ugly, since the field names do not match the header names, but it is at least barely customisable (at runtime).
-
- Nov 09, 2009
-
-
Iustin Pop authored
This will prepare for the runtime-selectable field list.
-
Iustin Pop authored
-
- Oct 21, 2009
-
-
Iustin Pop authored
This adds run status, resource parameters and load parameters for instances.
-
- Oct 18, 2009
-
-
Iustin Pop authored
Since all values are initialized to zero, the exact ordering is not important and thus we can use the positional mode for simpler code. The patch also adds docstrings to the cstats functions.
-
Iustin Pop authored
Since we now have an actual type for describing the instance moves (IMove), it's simpler to convert this into the move description/move commands, rather than re-computing the move based on initial and final nodes. This makes the shell commands computation and over-Luxi command execution use the same method of computation.
-
Iustin Pop authored
The ‘Placement’ type has been moved to Types.hs but we kept exporting it from Cluster, which is not needed.
-
Iustin Pop authored
This patch introduces a generic formatTable function (based on, and similar to the Ganeti one, but different and more FP in style) and changes the node and instance listing to it. The node list (due to the many variables) is still a little bit hackish unfortunately…
-
Iustin Pop authored
-
- Oct 16, 2009
-
-
Iustin Pop authored
This enables the per-node load/total available capacity scores to be used in balancing. Note that the total available capacity is currently fixed at zero and cannot be changed by the user.
-
Iustin Pop authored
The strange printf usage is due to some limitation (it seems) in ghc for very long argument lists. The whole printout should be rewritten later.
-
- Oct 15, 2009
-
-
Iustin Pop authored
This is similar to --print-nodes, but with much fewer fields.
-
- Oct 14, 2009
-
-
Iustin Pop authored
This is again the cs_x to csX name change.
-
Iustin Pop authored
This changes from a_b to aB in all node and instance attributes, to match the standard Haskell style. Also attributes that should have been camel-cased but weren't were changed (e.g. plist → pList, pnode → pNode).
-
Iustin Pop authored
Before we used a tuple; since we'll need more metrics in the future, it's simpler to transform this into a list of doubles, whose elements are handled homogeneously by all the code that needs them.
-
Iustin Pop authored
The current Cluster.iMoveToJob always creates failovers, which is not what we want. This simply used the original instances status to select between these two (this is not optimal by the way, since the status could have changed in the meantime). Signed-off-by:
Iustin Pop <iustin@google.com>
-