Add an early release lock/storage for disk replace
This patch adds an early_release parameter in the OpReplaceDisks and OpEvacuateNode opcodes, allowing earlier release of storage and more importantly of internal Ganeti locks. The behaviour of the early release is that any locks and storage on all secondary nodes are released early. This is valid for change secondary (where we remove the storage on the old secondary, and release the locks on the old and new secondary) and replace on secondary (where we remove the old storage and release the lock on the secondary node. Using this, on a three node setup: - instance1 on nodes A:B - instance2 on nodes C:B It is possible to run in parallel a replace-disks -s (on secondary) for instances 1 and 2. Replace on primary will remove the storage, but not the locks, as we use the primary node later in the LU to check consistency. It is debatable whether to also remove the locks on the primary node, and thus making replace-disks keep zero locks during the sync. While this would allow greatly enhanced parallelism, let's first see how removal of secondary locks works. Signed-off-by:Iustin Pop <iustin@google.com> Reviewed-by:
Guido Trotter <ultrotter@google.com>
Showing
- lib/cli.py 7 additions, 0 deletionslib/cli.py
- lib/cmdlib.py 39 additions, 9 deletionslib/cmdlib.py
- lib/opcodes.py 2 additions, 1 deletionlib/opcodes.py
- man/gnt-instance.sgml 17 additions, 0 deletionsman/gnt-instance.sgml
- man/gnt-node.sgml 14 additions, 0 deletionsman/gnt-node.sgml
- scripts/gnt-instance 3 additions, 2 deletionsscripts/gnt-instance
- tools/burnin 5 additions, 2 deletionstools/burnin
Loading
Please register or sign in to comment