All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Trela, Maciej" <Maciej.Trela@intel.com>
To: Neil Brown <neilb@suse.de>, "Williams, Dan J" <dan.j.williams@intel.com>
Cc: "linux-raid@vger.kernel.org" <linux-raid@vger.kernel.org>,
	"Ciechanowski, Ed" <ed.ciechanowski@intel.com>,
	"Kwolek, Adam" <adam.kwolek@intel.com>
Subject: RE: [PATCH 4/4] md: Enable takeover for external metadata
Date: Thu, 11 Feb 2010 12:34:53 +0000	[thread overview]
Message-ID: <BE2BFE91933D1B4089447C64486040800156ECDB@irsmsx503.ger.corp.intel.com> (raw)
In-Reply-To: <e9c3a7c21002100936p279cddbr1a3d478267e5589b@mail.gmail.com>

> I believe one thing that still needs investigation, before turning on
> the mdadm imsm support, is to see if we need superblock specific
> migration strategies in the kernel.  Unless we are incredibly lucky I
> do not think the native migration strategy will line up with what the
> option-rom expects from a checkpoint interpretation standpoint.
> Maciej, any comments on this aspect of the compatibility?
> 

Yes, you are right, the compatibility is a big issue here.
For now I can see three main aspects of the IMSM compatibility:
1. Checkpointing with IMSM Migration Record together with General Migration Copy Area
2. Migration optimization space
3. Checkpointing optimization algorithm

Ad.1.
This is a crucial issue for the compatibility and I'm working on it currently.

The Migration Record is used during a general migration process (reshape).
It is stored on the very last block of the raid device after the IMSM superblock.
If the OROM detects a migration in progress it examines the Migration Record
to get the current migration unit. 
In case when current unit is in the Migration Copy Area the OROM will
copy it to the destination array and update the Migration Record.

For now I have the preliminary version of checkpointing code (based on Adam's IMSM reshape patch)
that stores curr_migr_unit in IMSM Migration Record during the reshape and restarts the reshape using the Migration Record. 

My idea was that Migration Record should be updated directly from the kernel (in reshape_request()) during the reshape. 
However, since Migration Record contains some IMSM specific Fields like FamilyID, 
the mdmon, when starting the reshape, initiates the Migration Record on the disks.

Still I'll have to implement copying data with Migration Copy Area instead of using backup-file for IMSM...


Ad.2.
If source and destination arrays have the same number of data disks, IMSM in order to avoid overwriting source
stripes while copying (additional copy from src to Copying Area would be involved) uses Migration Optimization Space.
This is a 4MB of space, added at the beginning or at the end of destination array depending on free space availability.

Summarizing, the main idea is that src and dst arrays should start at different physical blocks.
The first block of the source array is store in the IMSM superblock and the first block of the dest array is 
both in the superblock and in the Migration Record.


Ad.3.
This is an algorithm optimizing the number of checkpoint writes during the reshape. 
My first impression is that it could be similar to the algorithm in reshape_request() but I'll need to investigate it more...


I would appreciate any feedback on these...
Thanks,
Maciek.


      reply	other threads:[~2010-02-11 12:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-29 14:54 [PATCH 3/3] md: Add support for Raid0->Raid10 takeover Trela, Maciej
2010-02-01  0:08 ` Neil Brown
2010-02-03 12:16   ` Trela, Maciej
2010-02-03 12:29   ` [PATCH 4/4] md: Enable takeover for external metadata Trela, Maciej
2010-02-10  5:57     ` Neil Brown
2010-02-10 17:36       ` Dan Williams
2010-02-11 12:34         ` Trela, Maciej [this message]

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=BE2BFE91933D1B4089447C64486040800156ECDB@irsmsx503.ger.corp.intel.com \
    --to=maciej.trela@intel.com \
    --cc=adam.kwolek@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=ed.ciechanowski@intel.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.