[Drbd-dev] Failed to reconnect in different volume's size over the 3 nodes

Lars Ellenberg lars.ellenberg at linbit.com
Thu Aug 11 15:53:11 CEST 2016


On Thu, Aug 11, 2016 at 02:48:38PM +0900, 박경민 wrote:
> Hello
> 
> After 2 commit below
> 585554e drbd: resize: reduce own sanity checks, trust peer
> c09ce4b drbd: resize loop avoidance band-aid
> 
> It can't reconnect  just in case different volume's size.
> That was only occurred over the 3 nodes configuration.
> 
> The scenario is below
> 
> A(100mb) - B(100mb) - C(90mb)
> 1. Success to connect at Inconsistent state
> 2. C node does "Primary --force "
> 3. All nodes agree 90mb size
> 4. C node does down
> 5. A node does down
> 6. A node does up
> 7. A and b agree 100mb size
> 8. C node can't connect because of lower size
> 
> 
> 
> I was looking for the code,and I think it was recalculated forcibly because
> below
> 
> in receive_sizes()
> /* Maybe the peer knows something about peers I cannot currently see. */
> if (is_handshake)
> ddsf |= DDSF_FORCED;
> 

Maybe. Maybe not.
That "force" may not do what you think it does,
or what the name of the flag seems to imply.

Size handshake, and resize, with DRBD 9 and "flaky connections",
is very erratic still. We will have to eventually fix that properly,
maybe by using some extension of the cluster wide transactions we
already have.

 * don't do that, then
 * maybe you want to explicitly set a size limit in the config
 * please send logs of the connection attempts,
   always from all nodes, always time synced.

Thanks,

-- 
: Lars Ellenberg
: LINBIT | Keeping the Digital World Running
: DRBD -- Heartbeat -- Corosync -- Pacemaker
: R&D, Integration, Ops, Consulting, Support

DRBD® and LINBIT® are registered trademarks of LINBIT


More information about the drbd-dev mailing list