Distributed Replicated Block Device (DRBD) development
 help / color / mirror / Atom feed
From: Lars Ellenberg <lars.ellenberg@linbit.com>
To: drbd-dev@lists.linbit.com
Subject: Re: [Drbd-dev] [PATCH] drbd-utils: Fix the default node id initialization when upgrade v8 to v9
Date: Mon, 16 Jan 2017 11:35:02 +0100	[thread overview]
Message-ID: <20170116103502.GF9172@soda.linbit> (raw)
In-Reply-To: <F749D893-B652-4BA8-AA15-AD88344EE2F9@acsalaska.com>

On Fri, Jan 13, 2017 at 10:01:50AM -0900, David M. Syzdek wrote:
> 
> 
> > On Jan 13, 2017, at 2:03 AM, Lars Ellenberg <lars.ellenberg@linbit.com> wrote:
> > 
> > On Fri, Jan 13, 2017 at 02:15:58PM +0800, Nick Wang wrote:
> >> Node id will be initialized as "0" in md_convert_08_to_09() when upgrading to drbd9 
> >> (still using two nodes without changing configuration like expliciting set the node id). 
> > 
> > With DRBD 9, you *have* to set the node id in the configuration.
> > If there is a way around that, we need to fix it.
> 
> If by configuration, you are referring the .res resource file, then
> this may be the intention, however this is not currently the case.  I
> am able to initialize a new resource on two peers using the following
> config without using the ’node-id’ directives:

Yes, I forgot, if we find a two-node-only 8 compat config,
we sort the IP addresses (or something),
and use that to implicitly assign node-id.

works for most "simple" setups,
may break for more interesting ones
(IPs look different depending on node)

> > Also, IMO, in virtually all 8 -> 9 upgrade scenarios, you are better off
> > creating new DRBD 9 meta data instead of trying to "convert”.
> 
> Is there a technical reason

There are two basic scenarios, "rolling" upgrade,
and "stop, replace, and restart the world". 

"stop the world" obviously means downtime.
But for the "rolling" upgrade,
you need more steps and at least a switchover,
which typically also implies a downtime.

My preferred upgrade procedure would be "replace the world"
 * make sure all data is "stable" and in sync
 * stop all services (yes, that means a short down time)
 * upgrade modules
 * recreate meta data, and prepare to skip the initial sync,
   because we know everything is in sync (see first step)
   potentially allocating more bitmap slots in preparation for N > 2.
 * bring it all online.

If that is not acceptable, or you think the rolling upgrade incurs less
service interruption, you go with the "upgrade meta data in place"
procedure, and hope we got that right :-)

-- 
: 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

  parent reply	other threads:[~2017-01-16 10:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-13  6:15 [Drbd-dev] [PATCH] drbd-utils: Fix the default node id initialization when upgrade v8 to v9 Nick Wang
2017-01-13  9:00 ` Roland Kammerer
2017-01-13 11:03 ` Lars Ellenberg
2017-01-16  2:30   ` Nick Wang
     [not found]   ` <F749D893-B652-4BA8-AA15-AD88344EE2F9@acsalaska.com>
2017-01-16 10:35     ` Lars Ellenberg [this message]
2017-01-18  3:14       ` Nick Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170116103502.GF9172@soda.linbit \
    --to=lars.ellenberg@linbit.com \
    --cc=drbd-dev@lists.linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox