This post is more than 5 years old
97 Posts
0
1031
March 16th, 2007 13:00
Element Size Question:
Does anyone know of a good source that details a write operation within the Clariion?
Specifically, If I have a RAID5 (4+1) with the default element size of 64K, the stripe size is 256K...
What happens if I write a file that is smaller than 64K (say 8K?)
Is 8K written to the first drive or is it broken into 4 2K segments and written to all 4 drives?
Also, when exactly is parity written? I would assume it is after each and every write operation, but how does that work in the above example of a 8K write?
Thanks!
Specifically, If I have a RAID5 (4+1) with the default element size of 64K, the stripe size is 256K...
What happens if I write a file that is smaller than 64K (say 8K?)
Is 8K written to the first drive or is it broken into 4 2K segments and written to all 4 drives?
Also, when exactly is parity written? I would assume it is after each and every write operation, but how does that work in the above example of a 8K write?
Thanks!
No Events found!


DGM3
238 Posts
0
March 20th, 2007 22:00
A2: It's not the case that elements are "filled". In the context of block storage devices that present a linear address space (that is, a LUN that spans from block 0 to block n), the placement of data is determined by the host (block storage devices have no concept of files). See for example the RAID 5 diagram here;
http://en.wikipedia.org/wiki/Raid_5#RAID_5
If each element is 128 blocks in size, host visible blocks 0-127 reside in A1, host visible blocks 128-255 reside in A2, etc. If the host issues an 8KB write directed to block 200, those applicable blocks within A2 will be directly written, independent of where other IOs may be directed.
Q2: So I take it that if 8KB is written to only 1 drive and it partially fills the element, the parity data is also cacluated and written to a different drive (partially filling another element?)
A2: For any write operation, corresponding parity locations within the stripe are updated. Thus in the example above; an 8KB write directed to block 200 (which resides in A2), will also result in 8KB worth of parity within Ap being updated. Had the write gone to locations within Dsomething, then parity within Dp would have been updated, etc.
Regards,
DGM
kelleg
6 Operator
•
4.5K Posts
0
March 16th, 2007 15:00
http://powerlink.emc.com/km/live1/en_US/Offering_Technical/White_Paper/H2358_clariion_best_prac_fibre_chnl_wp_ldv.pdf?mtcs=ZXZlbnRUeXBlPUttQ2xpY2tTZWFyY2hSZXN1bHRzRXZlbnQsZG9jdW1lbnRJZD0wOTAxNDA2NjgwMWI1NzZlLGRhdGFTb3VyY2U9RENUTV9lbl9VU18w
This is the Best Practices guide and it has a section about element size.
glenk
Bowling1
97 Posts
0
March 19th, 2007 07:00
I have read that one in the past and agree that it's the best out there, but unfortunately it leaves me with more questions.
I'm really curious how data gets distributed across many disks in an environment that has small file I\O sizes.
Say a RAID 5 (8+1) vs. RAID 5 (4+1). Since the (8+1) stripe set is 512KB and the (4+1) is 256KB, does the smaller RAID set make more sense in this environment (or does it really matter at all?)
(If my element size is 64K but I only have 4KB to write, when\how is the data distributed across the RAID set and when is parity calculated?)
Thanks
DGM3
238 Posts
1
March 19th, 2007 22:00
A: In the context of RAID 5, the 8KB will be written just to the first drive. The RAID level that will write data "across" all drives in parallel is RAID 3. The above are standard RAID behaviors that are not specific to CLARiiON.
Q: Also, when exactly is parity written? I would assume it is after each and every write operation, but how does that work in the above example of a 8K write?
A: Parity is updated (written) essentially at the same time the data is written, however there are multiple disk IO operations involved. Standard RAID 5 writes (again, not specific to CLARiiON) involve 4 steps; read old data, write new data, read old parity, write new parity. The latency of performing these operations is often not visible to hosts, due to Write Caching on the array.
Regards,
DGM
DGM3
238 Posts
0
March 19th, 2007 22:00
A: In the context of a single write operation, it's not going to matter. The question to consider is how many total IO/sec will host(s) be directing at the RAID Group? The more disks that are configured in the RAID Group... the more total IO/sec the RAID Group can sustain. The Best Practices document discusses how to determine how many drives should be configured in a RAID Group, based on various factors such as the expected host IO loading and read/write mixture.
Please note that changing the element size from the default setting is strongly discouraged (adjustments to it typically cause more harm than good).
Regards,
DGM
Bowling1
97 Posts
0
March 20th, 2007 05:00
Very good. Now we are getting somewhere...
A: In the context of RAID 5, the 8KB will be written just to the first drive. The RAID level that will write data "across" all drives in parallel is RAID 3. The above are standard RAID behaviors that are not specific to CLARiiON.
Q2: This is what I suspected... So, does the Clariion wait until the next 64KB element is full before it starts writing to the next drive or is the next 8KB I\O written to the next drive in the RAID set since it's a new I\O request?
_______________________________________________________________
A: Parity is updated (written) essentially at the same time the data is written, however there are multiple disk IO operations involved. Standard RAID 5 writes (again, not specific to CLARiiON) involve 4 steps; read old data, write new data, read old parity, write new parity. The latency of performing these operations is often not visible to hosts, due to Write Caching on the array.
Q2: So I take it that if 8KB is written to only 1 drive and it partially fills the element, the parity data is also cacluated and written to a different drive (partially filling another element?)
Thanks Again!
Bowling1
97 Posts
0
March 21st, 2007 06:00
Unfortunately, I can't get to wikipedia - Blocked - Got to love technology
I'm sending off a request to have the site unBlocked, but the request takes 2 weeks (Silently Sitting Shaking my head)...
I'll review it at home tonight, but it sounds like what I'm looking for.
My understanding was incorrect. I was under the impression that the stripe set was composed of 128 Blocks (64K elements) per disk and the Clariion tried to fill each element before going to the next disk - I couldn't believe that would be an efficient model in a small IO write environment.
Thanks again. This really helps.
kelleg
6 Operator
•
4.5K Posts
0
March 22nd, 2007 14:00
White Paper: EMC CLARiiON Fibre Channel Storage Fundamentals - Technology Concepts and Business Considerations
Has a pretty good explanation of element sizes and how they are used.
glenk