• G
    Use separate bitmaps for each nodes in the cluster · b97e9257
    Goldwyn Rodrigues 提交于
    On-disk format:
    
    0                    4k                     8k                    12k
    -------------------------------------------------------------------
    | idle                | md super            | bm super [0] + bits |
    | bm bits[0, contd]   | bm super[1] + bits  | bm bits[1, contd]   |
    | bm super[2] + bits  | bm bits [2, contd]  | bm super[3] + bits  |
    | bm bits [3, contd]  |                     |                     |
    
    Bitmap super has a field nodes, which defines the maximum number
    of nodes the device can use. While reading the bitmap super, if
    the cluster finds out that the number of nodes is > 0:
    1. Requests the md-cluster module.
    2. Calls md_cluster_ops->join(), which sets up clustering such as
       joining DLM lockspace.
    
    Since the first time, the first bitmap is read. After the call
    to the cluster_setup, the bitmap offset is adjusted and the
    superblock is re-read. This also ensures the bitmap is read
    the bitmap lock (when bitmap lock is introduced in later patches)
    
    Questions:
    1. cluster name is repeated in all bitmap supers. Is that okay?
    Signed-off-by: NGoldwyn Rodrigues <rgoldwyn@suse.com>
    b97e9257
bitmap.c 61.8 KB