VMware Cloud Community
vreiner
Contributor
Contributor

partition alignment: array segment/stripe/chunk size and using VI Client to create partitions vs. fdisk

OK, I've been reading all through the forums etc. and I'm confused on this point. I have read the esx3_partition_align.pdf document. My issue is with a specific line within that document that has been endlessly copied and pasted by others without explanation. On page 3 it states within the fdisk instructions

12. Type 128 to set it to 128 (the array’s stripe element size).

First of all, this doesn't indicate if the "128" represents bytes, kilobytes or some other measure. Second, later in the document they use the terms "Chunk" at the SAN level,

"Block" at the VMFS level and "Cluster" at the guest level. Can

someone confirm that "chunk" and "segment" and "array stripe element"

all refer to the same thing? Or not?

Next: the phrase "the array's stripe element size" seems to indicate that this number should be adjusted to match the storage system's stripe size, but this is not explicit. In fact, people have gone so far as to say that you can script this entire fdisk procedure, indicating that the number is NOT meant to be adjusted to the particular array.

For my particular case: I use the IBM DS4700, which has a selectable "segment" size. Other storage systems have a similar feature. The default is 128K, but can be changed as low as 8k to a maximum of 512K. Since larger segments mean less I/O operations and is suitable for very large file sizes (such as VMDK files) it seems like the right thing is to create LUNs with a 512k segment size.

OK, so let's say I've created my LUN. Now when I create a VMFS3 partition, I can select the "block" size, from 1Mb up to 8Mb. The document indicates on page 6 that to optimize performance I want the "block" size to match the "chunk" size - however this can't be done, at least with my DS4700. The maximum "chunk" size (or segment in IBM parlance) is 512k, the minimum VMFS block size is 1Mb. Is this a problem?

Let's assume for a moment that this isn't a problem, since at worst case the VMFS read/write is 1Mb, which reads 2 chunks/segments off the disk assuming the partition is aligned. What exactly does that "128" setting being referred to in step 12 control? Is that setting telling fdisk to set the VMFS3 block size to 128K? So, in my case where I create a LUN with a 512k segment size (or chunk, or stripe element) do I need to manually create my VMFS3 volumes with fdisk and substitute "512" in that spot? (once again assuming that we are talking about kbytes).

The next question is: What happens if I use VI Client to create my VMFS volumes? I know if I use VI Client it will automatically create aligned partitions, but does it automatically match the VMFS3 block size to the LUN segment (chunk) size? Or do I have to forgo using VI Client and use fdisk to get the block size to match?

Can you understand my confusion? Can someone clarify this for me please?

0 Kudos
2 Replies
natd
Contributor
Contributor

You've asked the exact questions I came here to ask - this is a topic I've tried to look at several times and end up in your position. I've got an HDS controller but it also has max size of 512k.

So I've replied just to bump your question up Smiley Wink

0 Kudos
FINSVE
Contributor
Contributor

Understanding VMFS block size

The default block size for a VMFS, set when you create the VMFS on a new LUN, determines the maximum possible size of a VMDK (1MB = max 256GB vmdk) and is the unit used when allocating/deallocating files such as when extending VMDKs like REDO logs.

The VMFS block size is not used for guest read/writes.

read this

http://viops.vmware.com/home/docs/DOC-1407;jsessionid=2AEED02F3857CCD504C98DAABDCD11A0

and this

http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101347

Svein Tore

0 Kudos