1. 08 Dec, 2011 3 commits
  2. 06 Dec, 2011 1 commit
    • Andrea Spadaccini's avatar
      Add DRBD barriers disk parameters · 8a69b3a8
      Andrea Spadaccini authored
      
      
      Add the disk-barriers and meta-barriers parameters described in the
      design doc.
      
      constants.py:
      * add the needed LD and DT-level parameters, use the defaults provided
        at ./configure time;
      * add constants representing which barriers should be disabled and the
        set of valid options.
      
      lib/bdev.py:
      * factor the barriers handling code to a class method, for testing
        purposes;
      * implement the more granular version checking logic;
      * use the LD level parameters;
      * add stricter check on DRBD version (8.0, 8.2 or 8.3), as we do not
        support 8.4 yet.
      
      lib/cmdlib.py:
      * translate DT level parameters to LD level ones.
      
      configure.ac, Makefile.am:
      * set both disk and meta barriers parameters depending on the value of
        --enable-drbd-barriers.
      
      test/ganeti.bdev_unittest.py:
      * unit tests for the code that sets DRBD barrier parameters depending on
        the version.
      
      doc/design-resource-model.rst:
      * reword the description of meta-barriers;
      * change all disk parameters names to use dashes instead of underscores.
      Signed-off-by: default avatarAndrea Spadaccini <spadaccio@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      8a69b3a8
  3. 02 Dec, 2011 2 commits
  4. 01 Dec, 2011 4 commits
  5. 30 Nov, 2011 1 commit
  6. 24 Nov, 2011 3 commits
    • Michael Hanselmann's avatar
      LUGroupAssignNodes: Fix node membership corruption · 54c31fd3
      Michael Hanselmann authored
      
      
      Note: This bug only manifests itself in Ganeti 2.5, but since the
      problematic code also exists in 2.4, I decided to fix it there.
      
      If a node was assigned to a new group using “gnt-group assign-nodes” the
      node object's group would be changed, but not the duplicate member list
      in the group object. The latter is an optimization to require fewer
      locks for other operations. The per-group member list is only kept in
      memory and not written to disk.
      
      Ganeti 2.5 starts to make use of the data kept in the per-group member
      list and consequently fails when it is out of date. The following
      commands can be used to reproduce the issue in 2.5 (in 2.4 the issue was
      confirmed using additional logging):
      
        $ gnt-group add foo
        $ gnt-group assign-nodes foo $(gnt-node list --no-header -o name)
        $ gnt-cluster verify  # Fails with KeyError
      
      This patch moves the code modifying node and group objects into
      “config.ConfigWriter” to do the complete operation under the config
      lock, and also to avoid making use of side-effects of modifying objects
      without calling “ConfigWriter.Update”. A unittest is included.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      (cherry picked from commit 218f4c3d)
      54c31fd3
    • Michael Hanselmann's avatar
      LUGroupAssignNodes: Fix node membership corruption · 218f4c3d
      Michael Hanselmann authored
      
      
      Note: This bug only manifests itself in Ganeti 2.5, but since the
      problematic code also exists in 2.4, I decided to fix it there.
      
      If a node was assigned to a new group using “gnt-group assign-nodes” the
      node object's group would be changed, but not the duplicate member list
      in the group object. The latter is an optimization to require fewer
      locks for other operations. The per-group member list is only kept in
      memory and not written to disk.
      
      Ganeti 2.5 starts to make use of the data kept in the per-group member
      list and consequently fails when it is out of date. The following
      commands can be used to reproduce the issue in 2.5 (in 2.4 the issue was
      confirmed using additional logging):
      
        $ gnt-group add foo
        $ gnt-group assign-nodes foo $(gnt-node list --no-header -o name)
        $ gnt-cluster verify  # Fails with KeyError
      
      This patch moves the code modifying node and group objects into
      “config.ConfigWriter” to do the complete operation under the config
      lock, and also to avoid making use of side-effects of modifying objects
      without calling “ConfigWriter.Update”. A unittest is included.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      218f4c3d
    • Michael Hanselmann's avatar
      Fix pylint warning on unreachable code · 9c4f4dd6
      Michael Hanselmann authored
      Commit c50452c3
      
       added an exception when all instances should be
      evacuated off a node, but did so in a way which made pylint complain
      about unreachable code.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      9c4f4dd6
  7. 23 Nov, 2011 4 commits
  8. 22 Nov, 2011 4 commits
  9. 21 Nov, 2011 2 commits
  10. 17 Nov, 2011 3 commits
  11. 16 Nov, 2011 3 commits
  12. 15 Nov, 2011 10 commits