Xiao Ni wrote: > On Thu, Sep 21, 2023 at 11:22 AM Stan Liao <StanL@xxxxxxxxxxxxxx> wrote: > > > > Hi, > > A md-raid (level 1) is created with 5 nvme drives and the metadata version > is specified as 1.2. The following command is used. > > sudo mdadm --create /dev/md0 --level=1 --raid-devices=5 > > /dev/nvme{1,2,3,4}n1 /dev/nvme4n2 --metadata=1.2 The capacities of > nvme{1,2,3,4}n1 and nvme4n2 are 3.2TB, 1.92TB, 3.2TB, 512GB, and 512GB. > > OS: 20.04.1-Ubuntu > > mdadm version: v4.1 - 2018-10-01 > > After creation, we found that the size of the bitmap_super_t and internal > bitmap is 16KB (this is concluded by observing FF value is filled from around > byte offset 0x100 of LBA 0x10 to byte offset 0x1FF of LBA 0x1F), but the > mdp_superblock_1.bblog_offset value is 0x10. As a result, the > mdp_superblock_1 occupies LBA 0x08 ~ 0x0F; bitmap_super_t and internal > bitmap occupy LBA 0x10 ~ 0x20; bblog occupies LBA 0x18 ~ 0x20. > > If bblog and bitmap do overlap, I would like to know the size value used to > calculate bitmap size and bblog_offset. The size value used to calculate > bitmap size and bblog_offset is mdp_superblock_1.size or > mdp_superblock_1.data_size? Thanks a lot. > > > > Hi > > For super1.2 the layout should be: > | 4KB | 4KB | bitmap space | head room | > data | > > The first 4KB is empty from the beginning of the disk. The second 4KB is for > md superblock. Then is bitmap suerblock. So if you want to see the content > of bitmap_super_t, the offset should be 0x2000? > > Regards > Xiao Right. The bitmap_super_t is at offset 0x2000 (absolute LBA address 0x10). And mdadm write bitmap_super_t and bitmap from LBA 0x10 to LBA 0x1F. Including bblog, super1.2 layout would be: | 4KB | 4KB | bitmap space | bblog | head room | data | We observe the bblog_offset value, which resides in mdp_superblock_1, is 0x10. So we think there is an overlap between bitmap and bblog.