• Adeodato Simo's avatar
    Cluster verify: fix LV checks for split instances · fe870648
    Adeodato Simo authored
    
    
    When sharding by group, if a mirrored instance is split (primary and
    secondary) between two groups, its volumes will not be properly checked:
    the group of the primary will warn about a missing volume in the secondary,
    and the group of the secondary about an unknown volume (in the secondary as
    well).
    
    To solve the "missing volumes" bit, we will detect this case and perform an
    extra RPC verify call to these split secondaries (querying only for
    NV_LVLIST), and introduce the results in the node images appropriately. We
    do this detection early in ExpandNames/CheckPrereq, as to properly lock the
    extra nodes.
    
    As for the "unknown volumes" warning in the secondary, we update the volume
    mapping with split instances before checking for orphaned volumes.
    
    Finally, we mark nodes as "ghost" only if they really don't exist in the
    cluster configuration, which avoid spurious "instance lives in ghost node"
    warnings.
    Signed-off-by: default avatarAdeodato Simo <dato@google.com>
    Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
    Reviewed-by: default avatarIustin Pop <iustin@google.com>
    fe870648
cmdlib.py 441 KB