This commit fixes a bug where long-lasting OsDiagnose jobs would
unnecessarily execute after a RAPI client had already closed the
connection. This fix introduces a couple new polling/timeout
constants for Luxi and RAPI to handle the polling of the HTTP
connection while at the same time monitor the
This commit fixes a bug where long-lasting OsDiagnose jobs would
unnecessarily execute after a RAPI client had already closed the
connection. This fix introduces a couple new polling/timeout
constants for Luxi and RAPI to handle the polling of the HTTP
connection while at the same time monitor the
This commit fixes a bug where long-lasting OsDiagnose jobs would
unnecessarily execute after a RAPI client had already closed the
connection. This fix introduces a couple new polling/timeout
constants for Luxi and RAPI to handle the polling of the HTTP
connection while at the same time monitor the
This patch optimizes unnecessary calls to the lvs command when running
gnt-cluster verify (among other operations) by caching multiple series
of lvs statements into a single operation and storing the results in
a dictionary with device paths used as keys.
Signed-off-by: Federico Morg Pareschi
---
Verify disks should not run on clusters or nodegroups with only ext
storage, as it requires an unnecessary amount of locks for its jobs.
This commit performs additional checks when submitting a gnt-cluster
verify-disks job or during a watcher run to prevent this.
Signed-off-by: Federico Morg Pares
Signed-off-by: Federico Morg Pareschi
---
lib/backend.py | 11 ++-
lib/storage/bdev.py | 11 +++
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/lib/backend.py b/lib/backend.py
index ba71fbe..f0ce380 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -3805,7
Signed-off-by: Federico Morg Pareschi
---
lib/storage/bdev.py| 13 +++--
lib/storage/drbd.py| 2 +-
lib/storage/extstorage.py | 8
lib/storage/filestorage.py | 4 ++--
lib/storage/gluster.py | 4 ++--
5 files changed, 16 insertions(+), 15 deletions(-)
di
Due to a previous commit, some parameters and function calls were
broken. This commit should fix it by moving all the arguments to
**kwargs rather than *args (for consistency).
Apologies for the inconvenience.
Federico Morg Pareschi (1):
Fix broken parameters in storage create methods
lib/sto
This bug was introduced by commit 38c735d62ae and should be now fixed.
Signed-off-by: Federico Morg Pareschi
---
lib/storage/bdev.py| 13 +++--
lib/storage/drbd.py| 2 +-
lib/storage/extstorage.py | 8
lib/storage/filestorage.py | 4 ++--
lib/storage/gluster.
This commit introduces further test classes and methods for the Create
family of methods of the BlockDev subclasses and a few additional minor
cosmetic changes.
Signed-off-by: Federico Morg Pareschi
---
lib/storage/base.py| 13 ++
lib/storage/gluster.py
There is no functional change from this patch.
While the test coverage of our storage backend is still far from
satisfactory, this patch tries to improve the little we have so that
we can better catch refactoring bugs like those introduced by
commit 38c735d62ae (and subsequiently fixed by 5529ea58a
Thanks for reviewing Brian, I have implemented the changes you
suggested and I have already squashed the two commits into a single
patch. Please have another look.
Federico Morg Pareschi (1):
Don't verify disks when all disk templates are ext
lib/cmdlib/cluster/verify.py | 24 +++
Verify disks should not run on clusters or nodegroups with only ext
storage, as it requires an unnecessary amount of locks for its jobs.
This commit performs additional checks when submitting a gnt-cluster
verify-disks job or during a watcher run to prevent this.
Signed-off-by: Federico Morg Pares
This commit fixes a bug where a LogicalVolume would try to attach
to a non-existing device and then raise an exception, rather than
gracefully returning a negative result.
As a consequence, unit tests have also been introduced for Attach
methods for block devices.
Signed-off-by: Federico Morg Par
The ganeti-watcher holds the group file lock for too long, until after
the execution of a group-verify-disk job. This locks for a long time if
there are other jobs already running and blocking the verify from
executing. When the lock is held, another ganeti-watcher run cannot be
scheduled, so this
When the watcher runs on each node group, if it can obtain the group
lock, it submits a GROUP_VERIFY_DISKS job for each group. This happens
every 5 minutes due to a cron job. This patch stops the watcher from
submitting unnecessary verify disks jobs if there are some already
pending in the queue to
The group verify disk ganeti job is executed every 5 minutes by a cron
job. This type of job tries to take all node locks in a nodegroup in
shared mode and can easily get stuck for a long time if there are
conflicting long-running jobs (like a create instance).
With this commit, we introduce a --n
The group verify disk ganeti job is executed every 5 minutes by a cron
job. This type of job tries to take all node locks in a nodegroup in
shared mode and can easily get stuck for a long time if there are
conflicting long-running jobs (like a create instance).
With this commit, we introduce a --n
With this commit, the ganeti-watcher now uses os.fork() instead of
spawning independent processes for each nodegroup to verify. With the
previous approach, there was very little memory being shared between
each subprocess and this introduced a significant and unnecessary
overhead. With this patch n
With this commit, the ganeti-watcher now uses os.fork() instead of
spawning independent processes for each nodegroup to verify. With the
previous approach, there was very little memory being shared between
each subprocess and this introduced a significant and unnecessary
overhead. With this patch n
Signed-off-by: Federico Morg Pareschi
---
lib/backend.py | 2 +-
lib/storage/base.py | 4 ++--
lib/storage/bdev.py | 9 +
lib/storage/drbd.py | 2 +-
lib/storage/extstorage.py | 2 +-
l
The cli.py module depended on the rpc/node.py module just for a single
exported decorator. This ended up reserving unnecessary memory for no actual
reason. By changing the imported and exported modules/methods, this commit
saves memory on some command line tools like the ganeti-watcher.
Signed-off
Signed-off-by: Federico Morg Pareschi
---
lib/cli.py| 18 +++---
lib/errors.py | 11 +++
2 files changed, 14 insertions(+), 15 deletions(-)
diff --git a/lib/cli.py b/lib/cli.py
index 362f2ae..033f9d0 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -76,7 +76,6 @@ __all__ = [
As a follow-up, I'm changing this patch to have a better-styled import as
discussed with Brian offline.
Federico Morg Pareschi (1):
Removed unnecessary dependency from rpc in cli
lib/cli.py| 5 -
lib/client/gnt_cluster.py | 7 ---
lib/client/gnt_node.py| 3 ++-
3 fi
The cli.py module depended on the rpc/node.py module just for a single
exported decorator. This ended up reserving unnecessary memory for no actual
reason. By changing the imported and exported modules/methods, this commit
saves memory on some command line tools like the ganeti-watcher.
Signed-off
The makefile guidelines say to use tabs instead of spaces. This commit
makes the file consistent with these guidelines whenever possible, as
long as it does not impact the visual alignment of elements.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 64 ++-
This design document introduces a new Ganeti job scheduler that
prioritizes jobs in the queue based on their lock declaration and state
of the cluster.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 1 +
doc/design-predictive-queue.rst | 210 +++
Regardless of the stability/consistency of luxid, I think Klaus raised a valid
point and having a quantized age based on the submission time is probably
a more elegant implementation. I have updated the design document to
reflect this decision, let me know if you find it appropriate, thanks.
Feder
This design document introduces a new Ganeti job scheduler that
prioritizes jobs in the queue based on their lock declaration and state
of the cluster.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 1 +
doc/design-predictive-queue.rst | 213 +++
This design document introduces a new Ganeti job scheduler that
prioritizes jobs in the queue based on their lock declaration and state
of the cluster.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 1 +
doc/design-predictive-queue.rst | 213 +++
This design document introduces a new Ganeti job scheduler that
prioritizes jobs in the queue based on their lock declaration and state
of the cluster.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 1 +
doc/design-predictive-queue.rst | 221 +++
This is just a partial implementation of the static lock prediction system.
With this, Ganeti queue system tries to predict the locks of the running
jobs and schedule new jobs that are less likely to block.
It is a partial implementation which might cause starvation for jobs stuck
in the queue, fol
As outlined in the previous design doc (design-predictive-queue.rst),
this commit provides the first (partial) implementation of such plan.
There is no starvation prevention yet, I will submit that in a follow-up
patch as this one was getting pretty big already.
The testing infrastructure is still
This patch adds a starvation prevention mechanism to the Ganeti
predictive job queue. It calculates the age of submitted jobs
comparing the current time to the submission time and appropriately
adjusts the job's lock weight accordingly to avoid starvation.
Signed-off-by: Federico Morg Pareschi
--
This patch depends on the not-yet-submitted predictive scheduler
implementation. Please make sure the code is up-to-date with that
patch before applying this one.
This implementation introduces an anti-starvation mechanism for
the predictive job queue in Ganeti. It is based on the predictive
queue
This commit improves some of the test data generation in the ConfigData
dummy values of quickcheck, to have a saner and more robust testing
infrastructure.
Signed-off-by: Federico Morg Pareschi
---
test/hs/Test/Ganeti/JQueue/LockDecls.hs | 26 ++
test/hs/Test/Ganeti/Objects.hs | 3
This patch depends on the not-yet-submitted predictive queue
patch and its purpose is to improve the data generation and accuracy
for most job/opcode test cases. Make sure the previous patch is
checked into the master tree before applying this one.
There should be no conflicts between this patch a
This is just a partial implementation of the static lock prediction system.
With this, Ganeti queue system tries to predict the locks of the running
jobs and schedule new jobs that are less likely to block.
It is a partial implementation which might cause starvation for jobs stuck
in the queue, fol
This patch adds a starvation prevention mechanism to the Ganeti
predictive job queue. It calculates the age of submitted jobs
comparing the current time to the submission time and appropriately
adjusts the job's lock weight accordingly to avoid starvation.
Signed-off-by: Federico Morg Pareschi
--
This commit improves some of the test data generation in the ConfigData
dummy values of quickcheck, to have a saner and more robust testing
infrastructure.
Signed-off-by: Federico Morg Pareschi
---
test/hs/Test/Ganeti/JQueue/LockDecls.hs | 25 ++---
test/hs/Test/Ganeti/Objects.hs | 38
As per issue #1193, instance reinstalls with modified OS parameters
did not persist among reinstalls and were not saved to the cluster's
config data. With this patch, this problem should be fixed.
Signed-off-by: Federico Morg Pareschi
---
lib/cmdlib/instance_operation.py | 8 ++--
1 file cha
Following issue #1194, this patch allows Ganeti to correctly
parse drbd versions that also include a dash in their k-fix
version component.
Signed-off-by: Federico Morg Pareschi
---
lib/storage/drbd_info.py| 17 +++--
test/py/ganeti.storage.drbd_unittest.py | 10 +
Following issue #1194, this patch allows Ganeti to correctly
parse drbd versions that also include a dash in their k-fix
version component.
This technically makes Ganeti treat x.y.z.k the same as x.y.z-k
with regards to compatibility. For practicality we can assume that
these versions are the same
This is the second implementation of the previously-sent patch that
implements starvation prevention for the predictive scheduler.
I am re-sending this for more clarity as the previous patch has
been out for a while and has been a little bitrotten.
Federico Morg Pareschi (1):
Implement starvati
This patch adds a starvation prevention mechanism to the Ganeti
predictive job queue. It calculates the age of submitted jobs
comparing the current time to the submission time and appropriately
adjusts the job's lock weight accordingly to avoid starvation.
Signed-off-by: Federico Morg Pareschi
--
I've changed the commit message to make it more evident what was
going on. Also some minor changes to make this patch merge without
conflicts.
Federico Morg Pareschi (1):
Improve the test data generation algorithms
test/hs/Test/Ganeti/JQueue/LockDecls.hs | 25 ++---
test/hs/Test/Ganeti/Object
This commit improves some of the test data generation in the ConfigData
dummy values of quickcheck. It generates more realistic instance, node
and group names by sampling them from the provided ConfigData. This
makes it possible to test for consistent data validation that might
depend on multiple n
Trivial change to add the missing LockDecls.hs files to Makefile.am.
This should remove some complaints to some of the tests that failed to
build.
Signed-off-by: Federico Morg Pareschi
---
Makefile.am | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index e18ee7e..
This patch adds some more consistency in the parameter names
displayed in various ganeti man pages.
Signed-off-by: Federico Morg Pareschi
---
man/gnt-group.rst| 8
man/gnt-instance.rst | 16
man/gnt-job.rst | 6 +++---
man/gnt-network.rst | 6 +++---
man/gn
Signed-off-by: Federico Morg Pareschi
---
lib/cli_opts.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/cli_opts.py b/lib/cli_opts.py
index 0b1bb0c..75379aa 100644
--- a/lib/cli_opts.py
+++ b/lib/cli_opts.py
@@ -852,7 +852,7 @@ IGNORE_CONSIST_OPT = cli_option("--ignore-c
As introduced by commit 77807d831976cf018ace04961820987a91c1d58a
and was not caught during the code review process.
Signed-off-by: Federico Morg Pareschi
---
lib/cmdlib/instance_set_params.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/cmdlib/instance_set_params
As introduced by commit 77807d83 and d388e30c6d
and was not caught during the code review process.
Signed-off-by: Federico Morg Pareschi
---
lib/cmdlib/instance_set_params.py | 6 +++---
tools/move-instance | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/
This commit adds the enabled_predictive_queue cluster parameter that
allows the cluster to specify if the predictive scheduler should be used
or not when ordering ganeti jobs in the queue. It also adds the correct
command line flags for the cluster init and cluster modify ganeti jobs.
As a default
This patch adds some more consistency in the parameter names
displayed in various ganeti man pages and their helper text
in gnt commands.
Signed-off-by: Federico Morg Pareschi
---
lib/client/gnt_backup.py | 6 +++---
lib/client/gnt_cluster.py | 21 +-
lib/client/gnt_debug.py
54 matches
Mail list logo