questions regarding file-system optimization for sortware-RAID array

Martin T <[email protected]> Thu, 6 Mar 2014 20:46:01 +0000
Newsgroups gmane.comp.file-systems.ext3.user
Message-ID <CAJx5YvGFqquhqtgScy7hYr-+0aYsYgiAQTXnMAdRvLT+cv990Q@mail.gmail.com>
--===============2545364977276956721==
Content-Type: multipart/alternative; boundary=001a11c2b9feadc8ed04f3f6398c

--001a11c2b9feadc8ed04f3f6398c
Content-Type: text/plain; charset=ISO-8859-1

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

--001a11c2b9feadc8ed04f3f6398c
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi,</div><div><br></div><div>I created a RAID1 array =
of two physical HDD&#39;s with chunk size of 64KiB under Debian &quot;wheez=
y&quot; 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-r=
elated tutorials, I should create the file-system like this:</div>
<div><br></div><div># mkfs.ext3 -v -L myarray -m 0.5 -b 4096 -E stride=3D16=
,stripe-width=3D32 /dev/md0<br></div><div><br></div><div style><br></div><d=
iv style>Questions:</div><div><br></div><div>1) According to manual of mke2=
fs, value of the &quot;stride&quot; has to be the RAID chunk size in cluste=
rs. As I use chunk size of 64KiB, then I have to use &quot;stride&quot; val=
ue of 16(16*4096=3D65536). 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, b=
ut why is this so?</div>
<div><br></div><div>2) If the &quot;stride&quot; size in my case is 16, the=
n the &quot;stripe_width=3D&quot; is 32 because there are two drives in the=
 array which contain the actual data. Manual page of the mke2fs explain thi=
s option as &quot;This allows the block allocator to prevent read-modify-wr=
ite of the parity in a RAID stripe if possible when the data is written.&qu=
ot;. How to understand this? What is this &quot;read-modify-write&quot; beh=
avior? Could somebody explain this with an example?</div>
<div><br></div><div><br></div><div>regards,</div><div>Martin</div></div>

--001a11c2b9feadc8ed04f3f6398c--


--===============2545364977276956721==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Ext3-users mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/ext3-users
--===============2545364977276956721==--