Linux RAID subsystem development
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Adam Kwolek <adam.kwolek@intel.com>
Cc: linux-raid@vger.kernel.org, dan.j.williams@intel.com,
	ed.ciechanowski@intel.com, wojciech.neubauer@intel.com
Subject: Re: [PATCH 0/3] Continue expansion after reboot
Date: Wed, 23 Feb 2011 14:37:56 +1100	[thread overview]
Message-ID: <20110223143756.41139e11@notabene.brown> (raw)
In-Reply-To: <20110222135440.7582.87319.stgit@gklab-128-013.igk.intel.com>

On Tue, 22 Feb 2011 15:13:15 +0100 Adam Kwolek <adam.kwolek@intel.com> wrote:

> Currently reshaped/expanded array is assembled but it stays in inactive state.
> This patches allows for array assembly when array is under expansion.
> Array with reshape/expansion information in metadata is assembled
> and reshape process continues automatically.
> 
> Next step:
> Problem is how to address container operation during assembly.
> 1. After first array being reshaped, assebly process looks if mdmon
>    sets migration for other array in container. If yes it continues work
>    for next array.
> 
> 2. Assembly process performs reshape of currently reshaped array only.
>    Mdmon sets next array for reshape and user triggers manually mdadm
>    to finish container operation with just the same parameters set.
> 
> Reshape finish can be executed for container operation by container re-assembly
> also (this works in current code).
> 

Yes, this is an awkward problem.

Just to be sure we are thinking about the same thing:
  When restarting an array in which migration is already underway mdadm simply
  forks and continues monitoring that migration.
  However if it is an array-wide migration, then when the migration of the
  first array completes, mdmon will update the metadata on the second array,
  but it isn't clear how mdadm can be told to start monitoring that array.

How about this:
  the imsm metadata handler should report that an array is 'undergoing
  migration if it is, or if an earlier array in the container is undergoing a
  migration which will cause 'this' array to subsequently be migrated too.

  So if the first array is in the middle of a 4drive->5drive conversion and
  the second array is simply at '4 drives', then imsm reported (to
  container_content) that the second drive is actually undergoing a migration
  from 4 to 5 drives, and is at the very beginning.

  When mdadm assembles that second array it will fork a child to monitor it.
  It will need to somehow wait for mdmon to really update the metadata before
  it starts.  This can probably be handled in the ->manage_reshape function.

Something along those line would be the right way to go I think.  It avoid
any races between arrays being assembled at different times.


> Adam Kwolek (3):
>       FIX: Assemble device in reshape state with new disks number

I don't think this patch is correct.  We need to configure the array with the
'old' number of devices first, then 'reshape_array' will also set the 'new'
number of devices.
What exactly what the problem you were  trying to fix?


>       imsm: FIX: Report correct array size during reshape
>       imsm: FIX: initalize reshape progress as it is stored in metatdata
>
These both look good - I have applied them.  Thanks.

NeilBrown



  parent reply	other threads:[~2011-02-23  3:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-22 14:13 [PATCH 0/3] Continue expansion after reboot Adam Kwolek
2011-02-22 14:13 ` [PATCH 1/3] imsm: FIX: initalize reshape progress as it is stored in metatdata Adam Kwolek
2011-02-22 14:13 ` [PATCH 2/3] imsm: FIX: Report correct array size during reshape Adam Kwolek
2011-02-22 14:13 ` [PATCH 3/3] FIX: Assemble device in reshape state with new disks number Adam Kwolek
2011-02-23  3:37 ` NeilBrown [this message]
2011-02-23  9:02   ` [PATCH 0/3] Continue expansion after reboot Kwolek, Adam
2011-02-25 15:55   ` Kwolek, Adam
2011-02-27  6:51     ` NeilBrown
2011-02-28 13:35       ` Kwolek, Adam

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=20110223143756.41139e11@notabene.brown \
    --to=neilb@suse.de \
    --cc=adam.kwolek@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=ed.ciechanowski@intel.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=wojciech.neubauer@intel.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