Merge branch 'stable-2.12' into stable-2.13
authorKlaus Aehlig <aehlig@google.com>
Thu, 16 Jul 2015 09:07:44 +0000 (11:07 +0200)
committerKlaus Aehlig <aehlig@google.com>
Thu, 16 Jul 2015 09:18:01 +0000 (11:18 +0200)
* stable-2.12
  Bugfix in checkInstanceMove function in Cluster.hs
  Revision bump for 2.12.5
  Update the NEWS file for 2.12.5
  Update Xen documentation in install.rst
  Clarify need for the migration_port Xen param

Conflicts:
NEWS: take both new entries
configure.ac: keep version and revision of stable-2.13

Signed-off-by: Klaus Aehlig <aehlig@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>

1  2 
NEWS
man/gnt-cluster.rst
src/Ganeti/HTools/Cluster.hs

diff --cc NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -2,153 -2,50 +2,197 @@@ New
  ====
  
  
 +Version 2.13.2
 +--------------
 +
 +*(Released Mon, 13 Jul 2015)*
 +
 +Incompatible/important changes
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +- This release contains a fix for the problem that different encodings in
 +  SSL certificates can break RPC communication (issue 1094). The fix makes
 +  it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
 +  after the cluster is fully upgraded to 2.13.2
 +
 +Other fixes and known issues
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +Inherited from 2.12:
 +
 +- Fixed Issue #1115: Race between starting WConfD and updating the config
 +- Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
 +  restart the RAPI
 +- Fixed Issue #1100: Filter-evaluation for run-time data filter
 +- Better handling of the "crashed" Xen state
 +- The watcher can be instructed to skip disk verification
 +- Reduce amount of logging on successful requests
 +- Prevent multiple communication NICs being created for instances
 +- The ``htools`` now properly work also on shared-storage clusters
 +- Instance moves now work properly also for the plain disk template
 +- Various improvements to the documentation have been added
 +
 +Known issues:
 +- Issue #1104: gnt-backup: dh key too small
 +
 +
 +Version 2.13.1
 +--------------
 +
 +*(Released Tue, 16 Jun 2015)*
 +
 +Incompatible/important changes
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +- The SSH security changes reduced the number of nodes which can SSH into
 +  other nodes. Unfortunately enough, the Ganeti implementation of migration
 +  for the xl stack of Xen required SSH to be able to migrate the instance,
 +  leading to a situation where full movement of an instance around the cluster
 +  was not possible. This version fixes the issue by using socat to transfer
 +  instance data. While socat is less secure than SSH, it is about as secure as
 +  xm migrations, and occurs over the secondary network if present. As a
 +  consequence of this change, Xen instance migrations using xl cannot occur
 +  between nodes running 2.13.0 and 2.13.1.
 +
 +Other fixes and known issues
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +Inherited from 2.12:
 +
 +- Fixed Issue #1082: RAPI is unresponsive after master-failover
 +- Fixed Issue #1083: Cluster verify reports existing instance disks on
 +  non-default VGs as missing
 +- Fixed Issue #1101: Modifying the storage directory for the shared-file disk
 +  template doesn't work
 +- Fixed a possible file descriptor leak when forking jobs
 +- Fixed missing private parameters in the environment for OS scripts
 +- Fixed a performance regression when handling configuration
 +  (only upgrade it if it changes)
 +- Adapt for compilation with GHC7.8 (compiles with warnings;
 +  cherrypicked from 2.14)
 +
 +Known issues:
 +- Issue #1094: Mismatch in SSL encodings breaks RPC communication
 +- Issue #1104: Export fails: key is too small
 +
 +
 +Version 2.13.0
 +--------------
 +
 +*(Released Tue, 28 Apr 2015)*
 +
 +Incompatible/important changes
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +- Ganeti now internally retries the instance creation opcode if opportunistic
 +  locking did not acquire nodes with enough free resources. The internal retry
 +  will not use opportunistic locking. In particular, instance creation, even
 +  if opportunistic locking is set, will never fail with ECODE_TEMP_NORES.
 +- The handling of SSH security had undergone a significant change. From
 +  this version on, each node has an individual SSH key pair instead of
 +  sharing one with all nodes of the cluster. From now on, we also
 +  restrict SSH access to master candidates. This means that only master
 +  candidates can ssh into other cluster nodes and all
 +  non-master-candidates cannot. Refer to the UPGRADE notes
 +  for further instructions on the creation and distribution of the keys.
 +- Ganeti now checks hypervisor version compatibility before trying an instance
 +  migration. It errors out if the versions are not compatible. Add the option
 +  --ignore-hvversions to restore the old behavior of only warning.
 +- Node tags starting with htools:migration: or htools:allowmigration: now have
 +  a special meaning to htools(1). See hbal(1) for details.
 +- The LXC hypervisor code has been repaired and improved. Instances cannot be
 +  migrated and cannot have more than one disk, but should otherwise work as with
 +  other hypervisors. OS script changes should not be necessary. LXC version
 +  1.0.0 or higher required.
 +
 +New features
 +~~~~~~~~~~~~
 +
 +- A new job filter rules system allows to define iptables-like rules for the
 +  job scheduler, making it easier to (soft-)drain the job queue, perform
 +  maintenance, and rate-limit selected job types. See gnt-filter(8) for
 +  details.
 +- Ganeti jobs can now be ad-hoc rate limited via the reason trail.
 +  For a set of jobs queued with "--reason=rate-limit:n:label", the job
 +  scheduler ensures that not more than n will be scheduled to run at the same
 +  time. See ganeti(7), section "Options", for details.
 +- The monitoring daemon has now variable sleep times for the data
 +  collectors. This currently means that the granularity of cpu-avg-load
 +  can be configured.
 +- The 'gnt-cluster verify' command now has the option
 +  '--verify-ssh-clutter', which verifies whether Ganeti (accidentally)
 +  cluttered up the 'authorized_keys' file.
 +- Instance disks can now be converted from one disk template to another for many
 +  different template combinations. When available, more efficient conversions
 +  will be used, otherwise the disks are simply copied over.
 +
 +New dependencies
 +~~~~~~~~~~~~~~~~
 +
 +- The monitoring daemon uses the PSQueue library. Be sure to install it
 +  if you use Mond.
 +- The formerly optional regex-pcre is now an unconditional dependency because
 +  the new job filter rules have regular expressions as a core feature.
 +
 +Since 2.13.0 rc1
 +~~~~~~~~~~~~~~~~~~
 +
 +The following issues have been fixed:
 +
 +- Bugs related to ssh-key handling of master candidates (issues 1045,
 +  1046, 1047)
 +
 +Fixes inherited from the 2.12 branch:
 +
 +- Upgrade from old versions (2.5 and 2.6) was failing (issues 1070, 1019).
 +- gnt-network info outputs wrong external reservations (issue 1068)
 +- Refuse to demote master from master capability (issue 1023)
 +
 +
+ Version 2.12.5
+ --------------
+ *(Released Mon, 13 Jul 2015)*
+ Incompatible/important changes
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ - This release contains a fix for the problem that different encodings in
+   SSL certificates can break RPC communication (issue 1094). The fix makes
+   it necessary to rerun 'gnt-cluster renew-crypto --new-node-certificates'
+   after the cluster is fully upgraded to 2.12.5.
+ Fixed and improvements
+ ~~~~~~~~~~~~~~~~~~~~~~
+ - Fixed Issue #1030: GlusterFS support breaks at upgrade to 2.12 -
+   switches back to shared-file
+ - Fixed Issue #1094 (see the notice in Incompatible/important changes):
+   Differences in encodings of SSL certificates can render a cluster
+   uncommunicative after a master-failover
+ - Fixed Issue #1098: Support for ECDSA SSH keys
+ - Fixed Issue #1100: Filter-evaluation for run-time data filter
+ - Fixed Issue #1101: Modifying the storage directory for the shared-file
+   disk template doesn't work
+ - Fixed Issue #1108: Spurious "NIC name already used" errors during
+   instance creation
+ - Fixed Issue #1114: Binding RAPI to a specific IP makes the watcher
+   restart the RAPI
+ - Fixed Issue #1115: Race between starting WConfD and updating the config
+ - Better handling of the "crashed" Xen state
+ - The ``htools`` now properly work also on shared-storage clusters
+ - Various improvements to the documentation have been added
+ Inherited from the 2.11 branch:
+ - Fixed Issue #1113: Reduce amount of logging on successful requests
+ Known issues
+ ~~~~~~~~~~~~
+ - Issue #1104: gnt-backup: dh key too small
  Version 2.12.4
  --------------
  
Simple merge
@@@ -685,23 -665,21 +688,19 @@@ checkInstanceMove opts nodes_idx ini_tb
        primary_drained = Node.offline
                          . flip Container.find nl
                          $ Instance.pNode target
-       all_moves =
-         if disk_moves
-           then concatMap (possibleMoves mir_type use_secondary inst_moves
-                           (rest_mig, primary_drained))
-                nodes
-           else []
+       all_moves = concatMap (possibleMoves mir_type use_secondary inst_moves
+                              disk_moves (rest_mig, primary_drained)) nodes
      in
        -- iterate over the possible nodes for this instance
 -      foldl' (checkSingleStep ini_tbl target) aft_failover all_moves
 +      foldl' (checkSingleStep force ini_tbl target) aft_failover all_moves
  
  -- | Compute the best next move.
 -checkMove :: [Ndx]               -- ^ Allowed target node indices
 -          -> Bool                -- ^ Whether disk moves are allowed
 -          -> Bool                -- ^ Whether instance moves are allowed
 -          -> Bool                -- ^ Whether migration is restricted
 -          -> Table               -- ^ The current solution
 -          -> [Instance.Instance] -- ^ List of instances still to move
 -          -> Table               -- ^ The new solution
 -checkMove nodes_idx disk_moves inst_moves rest_mig ini_tbl victims =
 +checkMove :: AlgorithmOptions       -- ^ Algorithmic options for balancing
 +             -> [Ndx]               -- ^ Allowed target node indices
 +             -> Table               -- ^ The current solution
 +             -> [Instance.Instance] -- ^ List of instances still to move
 +             -> Table               -- ^ The new solution
 +checkMove opts nodes_idx ini_tbl victims =
    let Table _ _ _ ini_plc = ini_tbl
        -- we're using rwhnf from the Control.Parallel.Strategies
        -- package; we don't need to use rnf as that would force too