- Jul 15, 2011
-
-
Iustin Pop authored
This is much more complicated than either change primary (which is trivial) and change secondary (which is also simple). The main strategy is: - choose a new secondary (that will become the final primary) and replace-disks to it - failover - choose a new secondary again (this will be the final secondary) However, if the original primary was offline, then we first have to failover to the secondary of the instance. Note: currently this evacuation mode, while producing correct evacuation results, does not result in optimal placement of the instance; it will need attention and possibly an algorithm change. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This makes fewer temporary data structures, and thus brings a bit of improvement in total runtime. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently, the tieredAlloc/iterateAlloc functions will not return until the allocation fails; this means unit-testing their functionality (e.g. that an instance can be allocated) is slow, since they will allocate all possible instances. This patch adds an optional limit that allows allocation to return early; this makes the cluster unittests twice as fast. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In some cases, we have a [Node.Node] list, instead of a Node.List structure. Instead of converting [Node.Node] to the latter, let's rework compCV and add a compCVNodes such that we skip this (potentially expensive) step. This already allows a simplification in a unittest, and will simplify consumers of Node.computeGroups. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Stephen Shirley authored
The wrapper will connect to the console, and check in the background if the instance is paused, unpausing it as necessary. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Stephen Shirley authored
The wrapper will connect to the console, and check in the background if the instance is paused, unpausing it as necessary. Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
- Jul 14, 2011
-
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Michael Hanselmann authored
Signed-off-by:
Michael Hanselmann <hansmi@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
Similar to the previous hspace fix. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
And point to the main INSTALL file for up-to-date information. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Currently, the test prop_Node_rMem does some reserved memory checks on nodes, and for the test to work correctly (can add more instances) we require that the node free memory is greater than zero via a prerequisite. However, if the node free memory is exactly 1, the call to setInstanceSmallerThanNode will set the instance memory to "free memory `div` 2", and since this is integer division, the instance memory will get set to 0. Which means that the node reserved memory will not increase when we add this instance as secondary. To work around, we simply require that the node memory is high enough (we use our 'base' unit of memory). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
These move the 'not supported' message deeper into the workflow; assuming that the workflow as added by this patch is correct, all that remains is: - for disk template DRBD8, plug in the currently existing mechanisms to implement relocation - for other disk templates, first modify the Node function to handle node changes correctly for each disk template, and then add support for them in nodeEvacInstance Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
For monadic operations, these function will make it easier to convert other monads (or monad-like structure) to our 'Result' type. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
The new IAllocator interface is based on instances, not nodes, so we need to backtrack and compute on which nodes we can't allocate instances during the current operation. This patch adds a function for computing this node set. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
'emptySolution' is fine while we have only one Solution type (AllocSolution), but in the future we'll introduce another one and thus we should rename it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In the future, this 'split/associated instance idx list' functionality will be used by other code, so let's move it to its own code. The new method of computing the split also requires exporting one more function from IntMap in Container.hs. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
These are useful for checking what instance specifications we start with (as they are not necessarily the first entry in the TSPEC map). Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This patch converts hspace to allow units in all disk and memory specifications, and updates the man page accordingly. It also correct a mistake in the man page for the --max-cpu option. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This is similar, but not identical, to Utils.ParseUnit. The biggest difference is that we don't round up/down; as we only use integral types, the result will always be rounded down. Moreover, since (real-world) disk sizes come in SI units, the function differentiates between SI and binary prefixes, using lower-case for binary and upper-case for SI (similar to lvm usage). This distinction should be ported to the Python code. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
- Jul 13, 2011
-
-
Guido Trotter authored
Rather than running all possible tests in one go, split them out in three cases: "normal", undefined default value, undefined list values (both of which require a valid response before them). Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Stephen Shirley authored
This fixes the lint error: E1120:1220:InstanceReboot: No value passed for parameter 'startup_paused' in function call Signed-off-by:
Stephen Shirley <diamond@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Guido Trotter authored
Currently we just match the passed name with fqdns. With this change we do a proper search for either the fqdn or the initial name component, as in Ganeti itself. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Guido Trotter authored
if' is just a functional version of the if-then-else construct. Using it we can manipulate ifs as functions, and also build other functionality. select allows to choose a result depending on truth value of statements, with a final default, and can be used to substitute cascaded-nested if-then-else statements. Both come with unit tests. Signed-off-by:
Guido Trotter <ultrotter@google.com> Reviewed-by:
Iustin Pop <iustin@google.com>
-
Iustin Pop authored
hspace no longer uses it, hence it can be removed. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This makes more sense, as the disk template is more meaningful than the number of nodes. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
In the future we'll use this instead of requiring the number of nodes from the user. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Also sorts the export list correctly. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Michael Hanselmann <hansmi@google.com>
-
Iustin Pop authored
This requires that we change the signature of loadInst in order to properly annotate the error messages, which in turn requires more unittest changes. Also, this invalidates yet again saved data files… Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
We need to request the disk template in the Luxi query and then use it when parsing the response. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Both these backends already have the data, we just need to use it. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Currently always fixed to DRBD8, as that is what we assume already. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
This will be used later in the Instance type. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
We eliminate the local variable as it's used only once. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
… to autoBalance, per the recommended style. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-
Iustin Pop authored
Instead of manually encoding the JSValue(s), we can use showJSON as long as we use data types that can be auto-converted. Signed-off-by:
Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
-