[DRBD-user] drbd-utils-8.9.1-3: drbdadm up failed (al-extents out of range)

Lars Ellenberg lars.ellenberg at linbit.com
Mon Aug 11 13:24:42 CEST 2014

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


On Mon, Aug 11, 2014 at 12:51:35PM +0200, Lars Ellenberg wrote:
> On Mon, Aug 11, 2014 at 12:14:13PM +0200, Roland Friedwagner wrote:
> > Hi,
> > 
> > after upgrade to drbd-utils 8.9.1-3 I was unable to
> > setup drbd resource after upgrade:
> > 
> > $ service drbd start
> > Starting DRBD resources: 
> > drbd.d/global_common.conf:18: al-extents 8k => 8192 out of range [7..6433].
> > .
> 
> yet an other fallout from the userland split? really?
> One could get the impression they don't have any QA at linbit ;-(


commit e8e5281336406aea6de676e1581b4a041855e5d9
Author: Lars Ellenberg <lars.ellenberg at linbit.com>
Date:   Mon Aug 11 13:20:00 2014 +0200

    drbd-8.4: adjust upper limit for activity log extents (again)
    
    This change was merged before (into the "common" header),
    but not properly propagated to the now "legacy-84" header.
    
    Original commit in 8.4:
      commit 383d3c0601bd301d0e889b66fbcbb2b5fcf902d1
      Author: Lars Ellenberg <lars.ellenberg at linbit.com>
      Date:   Tue Jan 29 09:58:25 2013 +0100
    
        drbd: adjust upper limit for activity log extents
    
        Now that the on-disk activity-log ring buffer size is adjustable,
        the maximum active set can become larger, and is now limited by
        the use of 16bit "labels".
    
        This increases the maximum working set from 6433 to 65534 extents,
        each of which covers an area of 4MiB.
        Which means that if you use the maximum, you'd have to resync
        more than 250 GiB after an unclean Primary shutdown.
        With capable backend storage and replication links,
        this is entirely feasible.

diff --git a/user/legacy-84/linux/drbd_limits.h b/user/legacy-84/linux/drbd_limits.h
index 1aa6858..8ac8c5d 100644
--- a/user/legacy-84/linux/drbd_limits.h
+++ b/user/legacy-84/linux/drbd_limits.h
@@ -126,13 +126,12 @@
 #define DRBD_RESYNC_RATE_DEF 250
 #define DRBD_RESYNC_RATE_SCALE 'k'  /* kilobytes */
 
-  /* less than 7 would hit performance unnecessarily.
-   * 919 slots context information per transaction,
-   * 32k activity log, 4k transaction size,
-   * one transaction in flight:
-   * 919 * 7 = 6433 */
+  /* less than 7 would hit performance unnecessarily. */
 #define DRBD_AL_EXTENTS_MIN  7
-#define DRBD_AL_EXTENTS_MAX  6433
+  /* we use u16 as "slot number", (u16)~0 is "FREE".
+   * If you use >= 292 kB on-disk ring buffer,
+   * this is the maximum you can use: */
+#define DRBD_AL_EXTENTS_MAX  0xfffe
 #define DRBD_AL_EXTENTS_DEF  1237
 #define DRBD_AL_EXTENTS_SCALE '1'
 



More information about the drbd-user mailing list