linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Is a raid0 512 byte chunk size possible? Or is it just too small?
@ 2013-08-30 19:32 Veedar Hokstadt
  2013-08-30 21:33 ` Stan Hoeppner
  0 siblings, 1 reply; 7+ messages in thread
From: Veedar Hokstadt @ 2013-08-30 19:32 UTC (permalink / raw)
  To: linux-raid

Hello,
I would like to use mdadm to set up a raid0 with a 512B chunk size.

I ask as my purpose is to mimic a raid0 config from a Lacie NAS box
that uses a 512B chunk size.

The lowest chunk value mdadm will accpet is 4. Anything less and mdadm
gives an error "invalid chunk/rounding value"

Is there any way to create a raid0 with a 512B chunk?

Thanks,
Veedar

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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-30 19:32 Is a raid0 512 byte chunk size possible? Or is it just too small? Veedar Hokstadt
@ 2013-08-30 21:33 ` Stan Hoeppner
  2013-08-31  0:58   ` Marcus Sorensen
  0 siblings, 1 reply; 7+ messages in thread
From: Stan Hoeppner @ 2013-08-30 21:33 UTC (permalink / raw)
  To: Veedar Hokstadt; +Cc: linux-raid

On 8/30/2013 2:32 PM, Veedar Hokstadt wrote:
> Hello,
> I would like to use mdadm to set up a raid0 with a 512B chunk size.
> 
> I ask as my purpose is to mimic a raid0 config from a Lacie NAS box
> that uses a 512B chunk size.

Your reasoning is flawed.  Why would you want to imitate a configuration
that is inherently flawed?

> The lowest chunk value mdadm will accpet is 4. Anything less and mdadm
> gives an error "invalid chunk/rounding value"

For good reason.

> Is there any way to create a raid0 with a 512B chunk?

First, if you're using RAID0 it absolutely must be assumed that you
desire maximum speed, care nothing for redundancy, and you don't care if
you lose your data when a disk fails because you have a full backup of
the RAID0 filesystem.

If you want speed, using RAID0 with a 512 byte chunk isn't going to
achieve it.  On the contrary, using such a small chunk will drop a
hammer on your throughput because you're processing a much larger number
of IOs per quantity of data transferred.  This is extremely inefficient,
and throughput drops.  With RAID0 you typically want a very large chunk,
the largest your drives can ingest efficiently in a single IO.  I'll
make an educated assumption that you plan to store media files on this
array, probably DVDs/CDs, and/or use it as a DVR.  In this case you want
a large chunk, 512KB-1MB.

However, you've stated you want to duplicate a NAS device.  Consider
that GbE using Rtl 81xx devices tops out at ~70-90 MBs application level
throughput.  Two modern drives in RAID0 with a proper chunk size can
read/write at double that rate.  Given this fact, why are you bothering
with RAID0?  You won't see any of the increased performance RAID0 can
give you.  In fact a single modern drive can saturate GbE.

I assume you are using RAID0 simply as an inexpensive way to maximize
your storage capacity.  That's fine with backups or if you have the
original media.  If you don't, or don't want to go through the hassle of
recreating your RAID0 after a disk failure and replacement, and copying
all your files back to it, I suggest you use RAID1/5/6/10 instead.

-- 
Stan




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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-30 21:33 ` Stan Hoeppner
@ 2013-08-31  0:58   ` Marcus Sorensen
  2013-08-31  5:05     ` Veedar Hokstadt
  0 siblings, 1 reply; 7+ messages in thread
From: Marcus Sorensen @ 2013-08-31  0:58 UTC (permalink / raw)
  To: stan; +Cc: Veedar Hokstadt, linux-raid

Maybe he has raw drives that were in this NAS and is trying to match
the layout to recover something? I know that's probably not going to
work, certainly without a lot of other things going right, but its the
first thing that came to mind, given his reasoning and how he stated
it.

On Aug 30, 2013 3:36 PM, "Stan Hoeppner" <stan@hardwarefreak.com> wrote:
>
> On 8/30/2013 2:32 PM, Veedar Hokstadt wrote:
> > Hello,
> > I would like to use mdadm to set up a raid0 with a 512B chunk size.
> >
> > I ask as my purpose is to mimic a raid0 config from a Lacie NAS box
> > that uses a 512B chunk size.
>
> Your reasoning is flawed.  Why would you want to imitate a configuration
> that is inherently flawed?
>
> > The lowest chunk value mdadm will accpet is 4. Anything less and mdadm
> > gives an error "invalid chunk/rounding value"
>
> For good reason.
>
> > Is there any way to create a raid0 with a 512B chunk?
>
> First, if you're using RAID0 it absolutely must be assumed that you
> desire maximum speed, care nothing for redundancy, and you don't care if
> you lose your data when a disk fails because you have a full backup of
> the RAID0 filesystem.
>
> If you want speed, using RAID0 with a 512 byte chunk isn't going to
> achieve it.  On the contrary, using such a small chunk will drop a
> hammer on your throughput because you're processing a much larger number
> of IOs per quantity of data transferred.  This is extremely inefficient,
> and throughput drops.  With RAID0 you typically want a very large chunk,
> the largest your drives can ingest efficiently in a single IO.  I'll
> make an educated assumption that you plan to store media files on this
> array, probably DVDs/CDs, and/or use it as a DVR.  In this case you want
> a large chunk, 512KB-1MB.
>
> However, you've stated you want to duplicate a NAS device.  Consider
> that GbE using Rtl 81xx devices tops out at ~70-90 MBs application level
> throughput.  Two modern drives in RAID0 with a proper chunk size can
> read/write at double that rate.  Given this fact, why are you bothering
> with RAID0?  You won't see any of the increased performance RAID0 can
> give you.  In fact a single modern drive can saturate GbE.
>
> I assume you are using RAID0 simply as an inexpensive way to maximize
> your storage capacity.  That's fine with backups or if you have the
> original media.  If you don't, or don't want to go through the hassle of
> recreating your RAID0 after a disk failure and replacement, and copying
> all your files back to it, I suggest you use RAID1/5/6/10 instead.
>
> --
> Stan
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-31  0:58   ` Marcus Sorensen
@ 2013-08-31  5:05     ` Veedar Hokstadt
  2013-08-31  6:40       ` Stan Hoeppner
  2013-08-31  7:10       ` Roman Mamedov
  0 siblings, 2 replies; 7+ messages in thread
From: Veedar Hokstadt @ 2013-08-31  5:05 UTC (permalink / raw)
  To: Marcus Sorensen; +Cc: stan, linux-raid

Thank you Stan. I agree with what you say. Sorry I was not more clear
about my situation.

Marcus is correct I'm trying to perform a data recovery operation from
a failed Lacie box with two drives in a raid0 / chunk 512B
configuration.

I am totally aware of the complications involved but if I can somehow
build a raid0 / chunk 512B array with mdadm using the raw Lacie dives
then I can take it from there to recover the data.

I have used another proprietary app and I am able to see the data
using a custom chunk size of 1. So it should be doable I think.

In looking at this more I tried to make a 512B stripe with dmsetup but
it fails. It seems that "getconf PAGE_SIZE"  which is set to 4096 is
the lowest allowed  stripe/chunk value. Maybe mdadm has the same size
limitation.

Thank you for your help.  -V

On 8/30/13, Marcus Sorensen <shadowsor@gmail.com> wrote:
> Maybe he has raw drives that were in this NAS and is trying to match
> the layout to recover something? I know that's probably not going to
> work, certainly without a lot of other things going right, but its the
> first thing that came to mind, given his reasoning and how he stated
> it.
>
> On Aug 30, 2013 3:36 PM, "Stan Hoeppner" <stan@hardwarefreak.com> wrote:
>>
>> On 8/30/2013 2:32 PM, Veedar Hokstadt wrote:
>> > Hello,
>> > I would like to use mdadm to set up a raid0 with a 512B chunk size.
>> >
>> > I ask as my purpose is to mimic a raid0 config from a Lacie NAS box
>> > that uses a 512B chunk size.
>>
>> Your reasoning is flawed.  Why would you want to imitate a configuration
>> that is inherently flawed?
>>
>> > The lowest chunk value mdadm will accpet is 4. Anything less and mdadm
>> > gives an error "invalid chunk/rounding value"
>>
>> For good reason.
>>
>> > Is there any way to create a raid0 with a 512B chunk?
>>
>> First, if you're using RAID0 it absolutely must be assumed that you
>> desire maximum speed, care nothing for redundancy, and you don't care if
>> you lose your data when a disk fails because you have a full backup of
>> the RAID0 filesystem.
>>
>> If you want speed, using RAID0 with a 512 byte chunk isn't going to
>> achieve it.  On the contrary, using such a small chunk will drop a
>> hammer on your throughput because you're processing a much larger number
>> of IOs per quantity of data transferred.  This is extremely inefficient,
>> and throughput drops.  With RAID0 you typically want a very large chunk,
>> the largest your drives can ingest efficiently in a single IO.  I'll
>> make an educated assumption that you plan to store media files on this
>> array, probably DVDs/CDs, and/or use it as a DVR.  In this case you want
>> a large chunk, 512KB-1MB.
>>
>> However, you've stated you want to duplicate a NAS device.  Consider
>> that GbE using Rtl 81xx devices tops out at ~70-90 MBs application level
>> throughput.  Two modern drives in RAID0 with a proper chunk size can
>> read/write at double that rate.  Given this fact, why are you bothering
>> with RAID0?  You won't see any of the increased performance RAID0 can
>> give you.  In fact a single modern drive can saturate GbE.
>>
>> I assume you are using RAID0 simply as an inexpensive way to maximize
>> your storage capacity.  That's fine with backups or if you have the
>> original media.  If you don't, or don't want to go through the hassle of
>> recreating your RAID0 after a disk failure and replacement, and copying
>> all your files back to it, I suggest you use RAID1/5/6/10 instead.
>>
>> --
>> Stan
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-31  5:05     ` Veedar Hokstadt
@ 2013-08-31  6:40       ` Stan Hoeppner
  2013-08-31  7:10       ` Roman Mamedov
  1 sibling, 0 replies; 7+ messages in thread
From: Stan Hoeppner @ 2013-08-31  6:40 UTC (permalink / raw)
  To: Veedar Hokstadt; +Cc: Marcus Sorensen, linux-raid

On 8/31/2013 12:05 AM, Veedar Hokstadt wrote:
> Thank you Stan. I agree with what you say. Sorry I was not more clear
> about my situation.

No apology necessary.  Upon reflection I should have realized what you
were attempting, given the oddball chunk size, and the fact there are
only 3 types of email on this list--PATCH, help with creation, help with
recovery.  As we discussed, nobody in his/her right mind would want to
create a new array with a 512B chunk, which leaves recovery.  I should
have caught that...

> Marcus is correct I'm trying to perform a data recovery operation from
> a failed Lacie box with two drives in a raid0 / chunk 512B
> configuration.
> 
> I am totally aware of the complications involved but if I can somehow
> build a raid0 / chunk 512B array with mdadm using the raw Lacie dives
> then I can take it from there to recover the data.
> 
> I have used another proprietary app and I am able to see the data
> using a custom chunk size of 1. So it should be doable I think.
> 
> In looking at this more I tried to make a 512B stripe with dmsetup but
> it fails. It seems that "getconf PAGE_SIZE"  which is set to 4096 is
> the lowest allowed  stripe/chunk value. Maybe mdadm has the same size
> limitation.

The Linux kernel is designed around page size accesses.  This includes
IO.  The Linux page size is 4KB.  This is why all the Linux filesystems
have a 4KB block size, and why md has a minimum 4KB chunk size.  Most
processor ISAs support other page sizes, but these are all greater than
4KB.  To do what you desire with Linux md you'd have to find a Linux
supported processor architecture with a 512B page size and hack a large
amount of the kernel code.  I don't believe anyone makes such a CPU and
I doubt you want to tackle such a kernel programming job.

My advice to you is to call Lacie and get a replacement board, or
whatever part it is that failed, or buy a used unit identical to yours
on Ebay.  Or maybe they have some custom MS Windows software they'll
sell you that will get the data off the drives.  Given their customer
base I doubt they'd have Linux software, only Windows.  I think the Ebay
route is the most appealing and has the highest probability of success.
 When you're done with it, throw it back on Ebay and get most of your
money back.

Good luck with this.  Let us know if/when you succeed, and how you did it.

P.S.  It's surprising that the electronics died but the disks are fine.
 The vast majority of the time it's the other way round.

-- 
Stan




> Thank you for your help.  -V
> 
> On 8/30/13, Marcus Sorensen <shadowsor@gmail.com> wrote:
>> Maybe he has raw drives that were in this NAS and is trying to match
>> the layout to recover something? I know that's probably not going to
>> work, certainly without a lot of other things going right, but its the
>> first thing that came to mind, given his reasoning and how he stated
>> it.
>>
>> On Aug 30, 2013 3:36 PM, "Stan Hoeppner" <stan@hardwarefreak.com> wrote:
>>>
>>> On 8/30/2013 2:32 PM, Veedar Hokstadt wrote:
>>>> Hello,
>>>> I would like to use mdadm to set up a raid0 with a 512B chunk size.
>>>>
>>>> I ask as my purpose is to mimic a raid0 config from a Lacie NAS box
>>>> that uses a 512B chunk size.
>>>
>>> Your reasoning is flawed.  Why would you want to imitate a configuration
>>> that is inherently flawed?
>>>
>>>> The lowest chunk value mdadm will accpet is 4. Anything less and mdadm
>>>> gives an error "invalid chunk/rounding value"
>>>
>>> For good reason.
>>>
>>>> Is there any way to create a raid0 with a 512B chunk?
>>>
>>> First, if you're using RAID0 it absolutely must be assumed that you
>>> desire maximum speed, care nothing for redundancy, and you don't care if
>>> you lose your data when a disk fails because you have a full backup of
>>> the RAID0 filesystem.
>>>
>>> If you want speed, using RAID0 with a 512 byte chunk isn't going to
>>> achieve it.  On the contrary, using such a small chunk will drop a
>>> hammer on your throughput because you're processing a much larger number
>>> of IOs per quantity of data transferred.  This is extremely inefficient,
>>> and throughput drops.  With RAID0 you typically want a very large chunk,
>>> the largest your drives can ingest efficiently in a single IO.  I'll
>>> make an educated assumption that you plan to store media files on this
>>> array, probably DVDs/CDs, and/or use it as a DVR.  In this case you want
>>> a large chunk, 512KB-1MB.
>>>
>>> However, you've stated you want to duplicate a NAS device.  Consider
>>> that GbE using Rtl 81xx devices tops out at ~70-90 MBs application level
>>> throughput.  Two modern drives in RAID0 with a proper chunk size can
>>> read/write at double that rate.  Given this fact, why are you bothering
>>> with RAID0?  You won't see any of the increased performance RAID0 can
>>> give you.  In fact a single modern drive can saturate GbE.
>>>
>>> I assume you are using RAID0 simply as an inexpensive way to maximize
>>> your storage capacity.  That's fine with backups or if you have the
>>> original media.  If you don't, or don't want to go through the hassle of
>>> recreating your RAID0 after a disk failure and replacement, and copying
>>> all your files back to it, I suggest you use RAID1/5/6/10 instead.
>>>
>>> --
>>> Stan
>>>
>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-31  5:05     ` Veedar Hokstadt
  2013-08-31  6:40       ` Stan Hoeppner
@ 2013-08-31  7:10       ` Roman Mamedov
  2013-09-07 19:57         ` Veedar Hokstadt
  1 sibling, 1 reply; 7+ messages in thread
From: Roman Mamedov @ 2013-08-31  7:10 UTC (permalink / raw)
  To: Veedar Hokstadt; +Cc: Marcus Sorensen, stan, linux-raid

[-- Attachment #1: Type: text/plain, Size: 1297 bytes --]

On Sat, 31 Aug 2013 01:05:44 -0400
Veedar Hokstadt <veedar@gmail.com> wrote:

> I am totally aware of the complications involved but if I can somehow
> build a raid0 / chunk 512B array with mdadm using the raw Lacie dives
> then I can take it from there to recover the data.

You can write a simple program to read in chunks of 512 bytes from one drive,
then from the other, piece this together and write to some third file. Here is
something quick that I modified from a tool I already had. Even though it's
doing the tight loop in PHP, it seems to do about 100 MB/sec reading from two
SATA drives and writing to a file on a RAID6 in my system.

--- merge.php ---

#!/usr/bin/php
<?php
  $f = array();
  array_shift($argv);
  foreach($argv as $arg) {
    if(($f[] = @fopen($arg, "rb"))===false) die("Unable to open file $arg.\n");
  }
  while(@$feof_cnt<2) {
    $feof_cnt=0;
    foreach($f as $file) {
      print(fread($file, 512));
      if(feof($file))$feof_cnt++;
    }
  }  
?>

---

Usage: ./merge.php /dev/sda /dev/sdb > image.img

And you will need somewhere to store this image.img that's has the free space
to fit the size of sda+sdb. Also check that you specify the drives in the
proper order (only 2 tries, really).

-- 
With respect,
Roman

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: Is a raid0 512 byte chunk size possible? Or is it just too small?
  2013-08-31  7:10       ` Roman Mamedov
@ 2013-09-07 19:57         ` Veedar Hokstadt
  0 siblings, 0 replies; 7+ messages in thread
From: Veedar Hokstadt @ 2013-09-07 19:57 UTC (permalink / raw)
  To: Roman Mamedov; +Cc: Marcus Sorensen, stan, linux-raid

Just to close this out. The making a 4TB image file of the raid0 was
not feasible for me so I ended up using a commercial raid recovery app
that could handle the 512 byte chunk.

Thanks for your help.  -V

On 8/31/13, Roman Mamedov <rm@romanrm.net> wrote:
> On Sat, 31 Aug 2013 01:05:44 -0400
> Veedar Hokstadt <veedar@gmail.com> wrote:
>
>> I am totally aware of the complications involved but if I can somehow
>> build a raid0 / chunk 512B array with mdadm using the raw Lacie dives
>> then I can take it from there to recover the data.
>
> You can write a simple program to read in chunks of 512 bytes from one
> drive,
> then from the other, piece this together and write to some third file. Here
> is
> something quick that I modified from a tool I already had. Even though it's
> doing the tight loop in PHP, it seems to do about 100 MB/sec reading from
> two
> SATA drives and writing to a file on a RAID6 in my system.
>
> --- merge.php ---
>
> #!/usr/bin/php
> <?php
>   $f = array();
>   array_shift($argv);
>   foreach($argv as $arg) {
>     if(($f[] = @fopen($arg, "rb"))===false) die("Unable to open file
> $arg.\n");
>   }
>   while(@$feof_cnt<2) {
>     $feof_cnt=0;
>     foreach($f as $file) {
>       print(fread($file, 512));
>       if(feof($file))$feof_cnt++;
>     }
>   }
> ?>
>
> ---
>
> Usage: ./merge.php /dev/sda /dev/sdb > image.img
>
> And you will need somewhere to store this image.img that's has the free
> space
> to fit the size of sda+sdb. Also check that you specify the drives in the
> proper order (only 2 tries, really).
>
> --
> With respect,
> Roman
>

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

end of thread, other threads:[~2013-09-07 19:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-30 19:32 Is a raid0 512 byte chunk size possible? Or is it just too small? Veedar Hokstadt
2013-08-30 21:33 ` Stan Hoeppner
2013-08-31  0:58   ` Marcus Sorensen
2013-08-31  5:05     ` Veedar Hokstadt
2013-08-31  6:40       ` Stan Hoeppner
2013-08-31  7:10       ` Roman Mamedov
2013-09-07 19:57         ` Veedar Hokstadt

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