linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Simon Valiquette <v.simon@ieee.org>
To: LinuxRaid <linux-raid@vger.kernel.org>
Subject: growing a RAID-5 array live
Date: Fri, 28 Jan 2005 18:15:02 -0500	[thread overview]
Message-ID: <41FAC776.6010202@ieee.org> (raw)


Hello,

   I would like to add code to be able to grow a RAID-5 array while 
keeping the filesystem in read/write mode.  Also, I want the data to be 
able to survive over a power failure and a disk failure.  Actually, as far 
as I know, there is no tools for doing that with Linux.  The closest tools 
I know for that is raidreconf, but I want more than what it can give me 
and I certainly want something safer.  And doing it while the FS is mounted.

   I am willing to do the work, but I still don't have a deep enought 
understanding of the software raid internal implementation.  Do there is 
any documentation about that?  I did'nt find much except what is in the 
./Documentation directory, so I might have to write it myself.


   My intent would be to play at the bio and biovec level, so that the 
filesystem can be kept online while we do the restriping.  The basic trick 
is to be able to use 2 superblocks for the same array at the same time. 
When we access data that have not yet been converted to the new format, we 
use the old superblock because the data are still there (obviously).  When 
we use data that have already been converted, we use the new superblock 
(because we now have them on the new location).  And between is the fun if 
we want to minimise the risk of data lost in case of power failure or crash.

   It would makes me save a lot of time if people comments on which parts 
of the kernel software RAID code I should put my modifications.  Note that 
I will require the stripe size not to change, as it would otherwise be 
very innefficient, and a real nightmare to maintain (use raidreconf instead).


   Eventually, I hope this code could also be used to convert between 
differents kinds of RAID (ie. conversion from RAID-5 to RAID-6, or RAID-0 
to RAID-5).  As long the stripe size does'nt change, that should be 
possible since I already need the RAID array to support two different 
superblocks.


   So, I need documentation about the internal implementation of the 
software RAID array and the interactions between the different parts in 
the kernel, or at least a mentor to guide me.  I already have an 
algorithm, I just need help to know how and where to makes the changes to 
have a working prototype.

   Thank you,

Simon Valiquette
http://gulus.USherbrooke.ca




                 reply	other threads:[~2005-01-28 23:15 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=41FAC776.6010202@ieee.org \
    --to=v.simon@ieee.org \
    --cc=linux-raid@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).