Solved

mke2fs stride and stripe-width

Posted on 2008-11-02
12
1,621 Views
Last Modified: 2012-05-05
I encountered http://wiki.centos.org/HowTos/Disk_Optimization the "Raid math", but it seems incorrect.
According to my understanding of man page for mke2fs, the pointed out webpage is talking about stripe-width calculation, not the stride.

What You think? Are those CentOS guys misleading (unintentionally of course)?
0
Comment
Question by:ravenpl
  • 6
  • 3
  • 2
12 Comments
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22869702
Hi,
there is nothing to calculate for stripe width, because stripe width is the number of parallel stripes that can be written to or read from simultaneously. This is of course equal to the number of disks in the array.
Stride, on the other hand, is the number of filesystem blocks per stripe, i.e. the size of the stripes written to each disk.
So the stride is, roughly, the same as stripe-size.
wmp
0
 
LVL 43

Author Comment

by:ravenpl
ID: 22869876
woolmilkporc: So You confirm the referred webpage is incorrect?
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22869986
No, not at all.
They refer to stripe size in units of Kilobytes, and what they call stride is the stripe size in units of filesystem blocks (in their example 4K).
A bit confusing, but that's all they say, and it's correct.
wmp

 
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 43

Author Comment

by:ravenpl
ID: 22870213
Is it? From the webpage
"For example if you have a 4 drive raid 5 and it is using 64K chunks, your stripe size will be 256K."
chunk size and stipe-size is usually the same, isn't it? So 256K is the strip-width(in bytes).
What's more in the example the stripe-width is in fact 192K(only 3 drives are holding data)

"Given a 4K filesystem block size you would then have a stride of 64 (256/4)."
Now IMHO it's not stride(they claim), but stripe-width (in block of course).

So who's right?
The mke2fs accepts both arguments, stride and stripe-width, so mixing them up is not the best idea.
0
 
LVL 43

Author Comment

by:ravenpl
ID: 22870493
OK, i think the whole confision comes from e2fstools inconsistency
From CentOS mke2fs manpage (very succinct and dully and unclear, IMHO)
       stride=stripe-size
                          Configure the filesystem for a RAID array with stripe-size filesystem  blocks  per
                          stripe.

From Fedora mke2fs manpage
                   stride=stride-size
                          Configure the filesystem for a RAID array with stride-size filesystem blocks. This
                          is  the number of blocks read or written to disk before moving to next disk, which
                          is sometimes referred to as the chunk size.   This  mostly  affects  placement  of
                          filesystem  metadata like bitmaps at mke2fs time to avoid placing them on a single
                          disk, which can hurt the performanace.  It may also be used by block allocator.

                   stripe-width=stripe-width
                          Configure the filesystem for a RAID array with stripe-width filesystem blocks  per
                          stripe.  This is typically be stride-size * N, where N is the number of data-bear-
                          ing disks in the RAID (e.g. for RAID 5 there is one parity disk so N will  be  the
                          number of disks in the array minus 1).  This allows the block allocator to prevent
                          read-modify-write of the parity in a RAID stripe if  possible  when  the  data  is
                          written.

Now the question is whether "stride=" has changed it's meaning or not?
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 22870536
OK,
it seems one must read their text more than once.
There is actually one point where they confuse stripe-size and stripe-width (in K, which is uncommon, as one measures stripe-width usually in # of parallel stripes/chunks), which leads to a very strange sort of reckoning. The stride calculation in their example should result in 16 (right?), given they call a 5-disk RAID-5 a "4 drive raid 5", strange enough, too.
I overlooked this at first sight because of the coincidence of 4 "drives" and 4K blocks.
Now that I agree with you, what should we do with 'em? Tarring and feathering? ;-))
Cheers
Norbert




0
 
LVL 43

Author Comment

by:ravenpl
ID: 22870574
After reading the CentOS shipped mke2fs manual there's even more unknowns. Thanx for Your help, I'll contact CentOS maintainers. After I get feedback from them I'll post here with the results.
Thanx for Your time.
0
 
LVL 43

Accepted Solution

by:
ravenpl earned 0 total points
ID: 23025760
I've made that support req, hopefully I'll get the answer... https://sourceforge.net/tracker/?func=detail&atid=202406&aid=2236511&group_id=2406
I also could look at the diff between those mentioned version, but so far i'm too lazy :)
0
 
LVL 88

Expert Comment

by:rindi
ID: 23245587
Any news, ravenpl?
0
 
LVL 43

Author Comment

by:ravenpl
ID: 23245610
Not really. I tried to read the mentioned e2fsprogs diff, and it looks like the old option is passed same way as previously, and the stripe-width is new value.
So I suppose the wiki/centOs is wrong.
It's pity that nobody from e2fsprogs developers said anything.
0
 
LVL 88

Expert Comment

by:rindi
ID: 23245670
In that case I guess you can close the Q?

Thanx and happy holidays.
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Network Interface Card (NIC) bonding, also known as link aggregation, NIC teaming and trunking, is an important concept to understand and implement in any environment where high availability is of concern. Using this feature, a server administrator …
Little introduction about CP: CP is a command on linux that use to copy files and folder from one location to another location. Example usage of CP as follow: cp /myfoder /pathto/destination/folder/ cp abc.tar.gz /pathto/destination/folder/ab…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

823 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question