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).