Re: questions regarding file-system optimization for sortware-RAID array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stephen,

thank you for the reply! I made a drawing based on your answer:
http://s21.postimg.org/kcn4q92rr/fs_and_chunk_size.png

As you can see, there are two scenario described- first one where I
modify f1, f2, f3 and f4 files on a file-system which does not take
the RAID chunk-size into account and second scenario where ext3/ext4
file-system is aware of the RAID chunk-size. Please confirm, that I
understand you correctly.


Andreas,

what does this "read-modify-write" behavior mean?



regards,
Martin


On 3/8/14, Andreas Dilger <adilger@xxxxxxxxx> wrote:
> The stripe and stride options do two things:
> - shift block and inode bitmaps in each group to be on different disks
> - align the block allocation to the stripe and stride boundaries to
>   avoid read-modify-write in RAID
>
> The first one is irrelevant if the flex_bg option is used, since it already
> packs
> the bitmaps together and achieves the same effect.
>
> The second is meaningless for RAID-1 since writes go to every disk and
> there is no parity or read-modify-write for small or unaligned writes.
>
> Cheers, Andreas
>
>> On Mar 7, 2014, at 19:23, Martin T <m4rtntns@xxxxxxxxx> wrote:
>>
>> Andreas,
>>
>> why is it relevant only in case of RAID5 or RAID6?
>>
>>
>> regards,
>> Martin
>>
>>> On Fri, Mar 7, 2014 at 5:57 PM, Andreas Dilger <adilger@xxxxxxxxx>
>>> wrote:
>>> Note that stride and stripe width only make sense for RAID-5/6 arrays.
>>> For RAID-1 it doesn't really matter.
>>>
>>> Cheers, Andreas
>>>
>>>> On Mar 6, 2014, at 13:46, Martin T <m4rtntns@xxxxxxxxx> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I created a RAID1 array of two physical HDD's with chunk size of 64KiB
>>>> under Debian "wheezy" using mdadm. As a next step, I would like to
>>>> create an ext3(or ext4) file-system to this RAID1 array using mke2fs
>>>> utility. According to RAID-related tutorials, I should create the
>>>> file-system like this:
>>>>
>>>> # mkfs.ext3 -v -L myarray -m 0.5 -b 4096 -E stride=16,stripe-width=32
>>>> /dev/md0
>>>>
>>>>
>>>> Questions:
>>>>
>>>> 1) According to manual of mke2fs, value of the "stride" has to be the
>>>> RAID chunk size in clusters. As I use chunk size of 64KiB, then I have
>>>> to use "stride" value of 16(16*4096=65536). Why is it important for
>>>> file-system to know the size of chunk used in RAID array? I know it
>>>> improves the I/O performance, but why is this so?
>>>>
>>>> 2) If the "stride" size in my case is 16, then the "stripe_width=" is 32
>>>> because there are two drives in the array which contain the actual data.
>>>> Manual page of the mke2fs explain this option as "This allows the block
>>>> allocator to prevent read-modify-write of the parity in a RAID stripe if
>>>> possible when the data is written.". How to understand this? What is
>>>> this "read-modify-write" behavior? Could somebody explain this with an
>>>> example?
>>>>
>>>>
>>>> regards,
>>>> Martin
>>>> _______________________________________________
>>>> Ext3-users mailing list
>>>> Ext3-users@xxxxxxxxxx
>>>> https://www.redhat.com/mailman/listinfo/ext3-users
>

_______________________________________________
Ext3-users mailing list
Ext3-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ext3-users




[Index of Archives]         [Linux RAID]     [Kernel Development]     [Red Hat Install]     [Video 4 Linux]     [Postgresql]     [Fedora]     [Gimp]     [Yosemite News]

  Powered by Linux