From: Goswin von Brederlow <goswin-v-b@web.de>
To: Jon@eHardcastle.com
Cc: linux-raid@vger.kernel.org
Subject: Re: Full use of varying drive sizes?
Date: Wed, 23 Sep 2009 12:07:02 +0200 [thread overview]
Message-ID: <87ocp2x9dl.fsf@frosties.localdomain> (raw)
In-Reply-To: <697034.10751.qm@web51302.mail.re2.yahoo.com> (Jon Hardcastle's message of "Tue, 22 Sep 2009 04:24:23 -0700 (PDT)")
Jon Hardcastle <jd_hardcastle@yahoo.com> writes:
> Hey guys,
>
> I have an array made of many drive sizes ranging from 500GB to 1TB and I appreciate that the array can only be a multiple of the smallest - I use the differing sizes as i just buy the best value drive at the time and hope that as i phase out the old drives I can '--grow' the array. That is all fine and dandy.
>
> But could someone tell me, did I dream that there might one day be support to allow you to actually use that unused space in the array? Because that would be awesome! (if a little hairy re: spare drives - have to be the size of the largest drive in the array atleast..?) I have 3x500GB 2x750GB 1x1TB so I have 1TB of completely unused space!
>
> Cheers.
>
> Jon H
I face the same problem as I buy new disks whenever I need more space
and have the money.
I found a rather simple way to organize disks of different sizes into
a set of software raids that gives the maximum size. The reasoning for
this algorithm are as follows:
1) 2 partitions of a disk must never be in the same raid set
2) as many disks as possible in each raid set to minimize the loss for
parity
3) the number of disks in each raid set should be equal to give
uniform amount of redundancy (same saftey for all data). Worst (and
usual) case will be a difference of 1 disk.
So here is the algorithm:
1) Draw a box as wide as the largest disk and open ended towards the
bottom.
2) Draw in each disk in order of size one right to the other.
When you hit the right side of the box continue in the next line.
3) Go through the box left to right and draw a vertical line every
time one disk ends and another starts.
4) Each sub-box creted thus represents one raid using the disks drawn
into it in the respective sizes present in the box.
In your case you have 6 Disks: A (1TB), BC (750G), DEF(500G)
+----------+-----+-----+
|AAAAAAAAAA|AAAAA|AAAAA|
|BBBBBBBBBB|BBBBB|CCCCC|
|CCCCCCCCCC|DDDDD|DDDDD|
|EEEEEEEEEE|FFFFF|FFFFF|
| md0 | md1 | md2 |
For raid5 this would give you:
md0: sda1, sdb1, sdc1, sde1 (500G) -> 1500G
md1: sda2, sdb2, sdd1, sdf1 (250G) -> 750G
md2: sda3, sdc2, sdd2, sdf2 (250G) -> 750G
-----
3000G total
As spare you would probably want to always use the largest disk as
only then it is completly unused and can power down.
Note that in your case the fit is perfect with all raids having 4
disks. This is not always the case. Worst case there is a difference
of 1 between raids though.
As a side node: Resizing when you get new disks might become tricky
and involve shuffeling around a lot of data. You might want to split
md0 into 2 raids with 250G partitiosn each assuming future disks will
continue to be multiples of 250G.
MfG
Goswin
next prev parent reply other threads:[~2009-09-23 10:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-22 11:24 Full use of varying drive sizes? Jon Hardcastle
2009-09-22 11:52 ` Kristleifur Daðason
2009-09-22 12:58 ` John Robinson
2009-09-22 13:07 ` Majed B.
2009-09-22 15:38 ` Jon Hardcastle
2009-09-22 15:47 ` Majed B.
2009-09-22 15:48 ` Ryan Wagoner
2009-09-22 16:04 ` Robin Hill
2009-09-23 8:20 ` John Robinson
2009-09-23 10:15 ` Tapani Tarvainen
2009-09-23 12:42 ` Goswin von Brederlow
2009-09-22 13:05 ` Tapani Tarvainen
2009-09-23 10:07 ` Goswin von Brederlow [this message]
2009-09-23 14:57 ` Jon Hardcastle
2009-09-23 20:28 ` Full use of varying drive sizes?---maybe a new raid mode is the answer? Konstantinos Skarlatos
2009-09-23 21:29 ` Chris Green
2009-09-24 17:23 ` John Robinson
2009-09-25 6:09 ` Neil Brown
2009-09-27 12:26 ` Konstantinos Skarlatos
2009-09-28 10:53 ` Goswin von Brederlow
2009-09-28 14:10 ` Konstantinos Skarlatos
2009-10-05 9:06 ` Goswin von Brederlow
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=87ocp2x9dl.fsf@frosties.localdomain \
--to=goswin-v-b@web.de \
--cc=Jon@eHardcastle.com \
--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).