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

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



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 gmail com> 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 dilger ca> 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 gmail com> 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 redhat com
>>> https://www.redhat.com/mailman/listinfo/ext3-users


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