• Iustin Pop's avatar
    Add an early release lock/storage for disk replace · 7ea7bcf6
    Iustin Pop authored
    
    
    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: default avatarIustin Pop <iustin@google.com>
    Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
    7ea7bcf6
cmdlib.py 312 KB