[DRBD-user] Bitmap for that device got too large.

Roland Kammerer roland.kammerer at linbit.com
Tue May 28 13:44:41 CEST 2019

On Tue, May 28, 2019 at 02:03:29PM +0800, Oleksiy Evin wrote:
> Hi All,
> Can anyone please clarify what's the actual volume size limit for
> DRBD?  The linbit's article dated 2012 says the current maximum is
> 1PiB, but when I'm trying to create a 3 node replication with 527TiB
> each, it gets me to the bitmap size error. 

IMO the check just tries to limit the MD size of a volume to 1PiB. It
is not there to limit the overall/resulting space needed for the MD
itself. So I think we can just modify the check and take the peers into
account. This is most likely a left over from 8.4 where this factor was
always 1. That would be:

diff --git a/user/shared/drbdmeta.c b/user/shared/drbdmeta.c
index f92ced59..69e1a5b1 100644
--- a/user/shared/drbdmeta.c
+++ b/user/shared/drbdmeta.c
@@ -1327,7 +1327,7 @@ void re_initialize_md_offsets(struct format *cfg)
                /* we need (slightly less than) ~ this much bitmap sectors: */
                md_size_sect = bm_bytes(&cfg->md, cfg->bd_size >> 9) >> 9;
                md_size_sect = ALIGN(md_size_sect, 8);    /* align on 4K blocks */
-               if (md_size_sect > (MD_BM_MAX_BYTE_FLEX>>9)) {
+               if (md_size_sect > (MD_BM_MAX_BYTE_FLEX>>9)*cfg->md.max_peers) {
                        fprintf(stderr, "Bitmap for that device got too large.\n");
                        if (BITS_PER_LONG == 32)
                                fprintf(stderr, "Maybe try a 64bit arch?\n");

Can you try if this works for you?

Best, rck

More information about the drbd-user mailing list