VMware Cloud Community
Gabrie1
Commander
Commander
Jump to solution

VMFS and blocksize SAN performance?

Hi

For a particular VM I need 2x 1,6Tb disk. So I thought of creating two LUNs of 2Tb each with a 4Mb blocksize and put the VMDKs on them. Now I'm having a discussion with the SAN admin about the blocksize. We both agree that ESX can do sub-blocks, so if you have a 32kb file on you VMFS volume, it will not occupie a whole block of 4Mb, which is very nice.

But when a VM, acting as a file server, with VMDK on a 4Mb block VMFS volume, has to read files, what size is the block that will be read from SAN? Will this VM cause 4Mb block reads from the SAN even for very small files? This would cause quite a stress on our SAN, wouldn't it?

Gabrie

http://www.GabesVirtualWorld.com
Reply
0 Kudos
1 Solution

Accepted Solutions
BUGCHK
Commander
Commander
Jump to solution

> what size is the block that will be read from SAN?

I've just done a copy of a folder tree between two VMDKs and checked the I/O sizes with the EVA's performance utility (EVAperf).

Sometimes I saw a few I/Os with transfer sizes larger than 512KB - most sizes are between 4KB and 128KB. I even saw sizes smaller than 4KB.

Honestly, that did not surprise me Smiley Wink

View solution in original post

Reply
0 Kudos
5 Replies
Dave_Mishchenko
Immortal
Immortal
Jump to solution

Depending on your allignment, it will read 1 or more VMFS blocks. See page 5/6 here - http://www.vmware.com/pdf/esx3_partition_align.pdf.

Gabrie1
Commander
Commander
Jump to solution

Hmm, so reading a 5kb file from the VMDK, would mean a 4Mb block from the SAN (if properly alligned). Doesn't this cause a big performance penalty???

http://www.GabesVirtualWorld.com
Reply
0 Kudos
kjb007
Immortal
Immortal
Jump to solution

Your scenario will be slightly worse. To create a 2 TB volume, you have to use an 8 MB block size, 4 MB will only allow 1 TB. And yes, you will have to read bigger chunks of data to get what you want, so there is a bit of a performance hit, but the penalty is usually offset by the cache to have on your array. You will hit more of a penalty if you have multiple servers that need access to the same block, and so will wait until the first read is done before having access to it.

-KjB

vExpert/VCP/VCAP vmwise.com / @vmwise -KjB
Reply
0 Kudos
BUGCHK
Commander
Commander
Jump to solution

> what size is the block that will be read from SAN?

I've just done a copy of a folder tree between two VMDKs and checked the I/O sizes with the EVA's performance utility (EVAperf).

Sometimes I saw a few I/Os with transfer sizes larger than 512KB - most sizes are between 4KB and 128KB. I even saw sizes smaller than 4KB.

Honestly, that did not surprise me Smiley Wink

Reply
0 Kudos
Gabrie1
Commander
Commander
Jump to solution

Hi

Great answer bugcheck!! Last friday I called VMware Support to get some info on this. And they explained that the blocksize of the guest filesystem is the blocksize that will be read. The VMFS blocksize is not the blocksize that will be read from the SAN !!!!

The blocksize does has some impact when seeking begin and end of a block / chunk. That is what the partition alliging document refers to. Its about positioning the heads, NOT reading the blocks. So, if you have a NTFS file system in your guest, with only 32kb blocks, then 32kb blocks will be read from the SAN.

Gabrie

http://www.GabesVirtualWorld.com

http://www.GabesVirtualWorld.com
Reply
0 Kudos