linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/21] Series short description
@ 2010-11-23 12:39 Adam Kwolek
  2010-11-23 12:39 ` [PATCH 01/21] imsm: Remove unnecessary code Adam Kwolek
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: Adam Kwolek @ 2010-11-23 12:39 UTC (permalink / raw)
  To: neilb; +Cc: linux-raid, dan.j.williams, ed.ciechanowski

This patch series bases on previously sent patch series: array/container freezing by Dan Williams, and my and Maciej Trela's patches for OLCE and check pointing for external metadata.
This patch series implements:
1. Patches 0001 to 0018 : fixes for freezing, OLCE and check pointing
2. Patches 0018 to 0021 : implements new migration features for external metadata:
    - Migration raid0 to raid5
    - Migration raid5 to raid0
    - Chunk size migration

We are planning in the few days add fixes for raid10 <-> raid0 takeover also.

Migration feature reuses code flow introduced for OLCE (Online Capacity Expansion) and uses the same grow/reshape flow in mdadm/mdmon.
Migration is executed in the following way:
1. mdadm: reshape_super() prepares metadata update and sends it to mdmon
2. mdadm: waits for reshape array state
3. monitor: receives metadata update and applies it.
4. monitor: metadata update triggers managemon.
5. managemon: updates array (md) configuration and starts reshape
6. mdadm: finds that reshape is started and continues it using check pointing
7. mdadm: reshape is finished and manage_reshape() finalizes array:
    - Sets array size as is given in metadata
    - Performs takeover to raid0 if necessary

In current patches placement of manage_reshape() function call was changed.
It is moved to end of array processing to use common code form Grow.c for external metadata reshape case
(we do not need to duplicate existing code) as it would do the same things as code for native metadata.
New manage_reshape() placement causes a few things to do in implementation only and simplifees code.

Migrations command line:
1. Execute migration raid0->raid5:
    mdadm  - -grow /dev/md/array_name -level 5 -layout=left-asymmetric

    This converts n-disks raid0 array to (n+1)-disks raid5 array. Additional raid5 array disk is user from spares pool

2. Execute migration raid5->raid0:
    mdadm  - -grow /dev/md/array_name -level 0

    This converts n-disks raid5 array to n-disks raid0 array.
3. Execute chunk size migration
    mdadm  - -grow /dev/md/array_name -chunk N

    where N is ne chunk size value

In current patch series testing of 'experimental' flag was changes according to Neil's suggestion, as I've found it useable for my testing purposes.
The rest of comments to already reviewed patches (OLCE/check pointing) will be implemented in next step.


---

Adam Kwolek (21):
      Migration: Chunk size migration
      Migration raid0->raid5
      Migration: raid5->raid0
      imsm: Use geo structure
      Change manage_reshape() placement
      FIX: Start mdmon after changing level
      FIX: Checkpointing: Enable checkpointing for non-growing migrations
      FIX: Level field can be NULL
      imsm Fix: Core during rebuild on array details read
      WORKAROUND: md reports idle state during reshape start
      FIX: Honor !reshape state on wait_reshape() entry
      FIX: Unfreeze not only container for external metadata
      FIX: Cannot exit monitor after takeover
      imsm: FIX: Continue expansion after -As command
      imsm: FIX: Reshape Cancel message on 2nd array doesn't work correctly
      imsm: FIX: Guard size setting
      FIX: Allow for reshape without backup file
      FIX: Use MDADM_EXPERIMENTAL environment variable
      imsm: FIX: imsm_check_reshape_conditions change ret_val
      imsm: Change some debug output information
      imsm: Remove unnecessary code


 mdadm/mdadm/Detail.c      |    1 
 mdadm/mdadm/Grow.c        |  178 ++++++++----
 mdadm/mdadm/Makefile      |    6 
 mdadm/mdadm/managemon.c   |  113 ++++++-
 mdadm/mdadm/mdadm.h       |    7 
 mdadm/mdadm/mdmon.h       |    4 
 mdadm/mdadm/mdstat.c      |    2 
 mdadm/mdadm/monitor.c     |   11 +
 mdadm/mdadm/msg.c         |    5 
 mdadm/mdadm/restripe.c    |    1 
 mdadm/mdadm/super-intel.c |  693 +++++++++++++++++++++++++++++++++------------
 mdadm/mdadm/util.c        |   88 +++++-
 12 files changed, 830 insertions(+), 279 deletions(-)

-- 
Signature

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2010-11-24  5:04 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-23 12:39 [PATCH 00/21] Series short description Adam Kwolek
2010-11-23 12:39 ` [PATCH 01/21] imsm: Remove unnecessary code Adam Kwolek
2010-11-23 12:39 ` [PATCH 02/21] imsm: Change some debug output information Adam Kwolek
2010-11-23 12:40 ` [PATCH 03/21] imsm: FIX: imsm_check_reshape_conditions change ret_val Adam Kwolek
2010-11-23 12:40 ` [PATCH 04/21] FIX: Use MDADM_EXPERIMENTAL environment variable Adam Kwolek
2010-11-23 12:40 ` [PATCH 05/21] FIX: Allow for reshape without backup file Adam Kwolek
2010-11-23 12:40 ` [PATCH 06/21] imsm: FIX: Guard size setting Adam Kwolek
2010-11-23 12:40 ` [PATCH 07/21] imsm: FIX: Reshape Cancel message on 2nd array doesn't work correctly Adam Kwolek
2010-11-23 12:40 ` [PATCH 08/21] imsm: FIX: Continue expansion after -As command Adam Kwolek
2010-11-23 12:40 ` [PATCH 09/21] FIX: Cannot exit monitor after takeover Adam Kwolek
2010-11-23 12:40 ` [PATCH 10/21] FIX: Unfreeze not only container for external metadata Adam Kwolek
2010-11-23 12:41 ` [PATCH 11/21] FIX: Honor !reshape state on wait_reshape() entry Adam Kwolek
2010-11-23 12:41 ` [PATCH 12/21] WORKAROUND: md reports idle state during reshape start Adam Kwolek
2010-11-23 12:41 ` [PATCH 13/21] imsm Fix: Core during rebuild on array details read Adam Kwolek
2010-11-23 12:41 ` [PATCH 14/21] FIX: Level field can be NULL Adam Kwolek
2010-11-23 12:41 ` [PATCH 15/21] FIX: Checkpointing: Enable checkpointing for non-growing migrations Adam Kwolek
2010-11-23 12:41 ` [PATCH 16/21] FIX: Start mdmon after changing level Adam Kwolek
2010-11-23 12:41 ` [PATCH 17/21] Change manage_reshape() placement Adam Kwolek
2010-11-23 12:42 ` [PATCH 18/21] imsm: Use geo structure Adam Kwolek
2010-11-23 12:42 ` [PATCH 19/21] Migration: raid5->raid0 Adam Kwolek
2010-11-23 12:42 ` [PATCH 20/21] Migration raid0->raid5 Adam Kwolek
2010-11-23 12:42 ` [PATCH 21/21] Migration: Chunk size migration Adam Kwolek
2010-11-24  5:04 ` [PATCH 00/21] Series short description Neil Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).