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's with chunk size of 64KiB under Debian "wheez= y" 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 "stride" has to be the RAID chunk size in cluste= rs. As I use chunk size of 64KiB, then I have to use "stride" 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 "stride" size in my case is 16, the= n the "stripe_width=3D" 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 "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 "read-modify-write" 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==--