VMware Cloud Community
dccap
Contributor
Contributor

VMFS Block Size & Disk IO & VMFS Addressing

Hi,

Currently using a series of ESX VI3 servers, with a variety of iSCSI SANs.

I am looking at various strategies to optimise iSCSI Traffic - and was wondering how VMFS I/O Works, so I can decide whether to enable things like Jumbo Frames, Read-ahead attributes, etc.

If a VM, located on a VMFS volume, reads or writes 5Kb here and there, at different points on it's 10Gb VMDK, what I/O does this translate into for VMFS to the underlying device?

i.e. VMFS has a block size of at least 1Mb. So if lots of 5Kb reads are made all over the VMDK, does this mean lots of 1Mb blocks are read from the VMFS Volume, and therefore lots of 1Mb block I/O are read from the underlying device?

After writing this, I guess the question is really more about VMFS Addressing - is there some form of sub-addressing below the 1Mb block size?

Thanks!

0 Kudos
1 Reply
BUGCHK
Commander
Commander

I have never watched the traffic, but I don't beleive that the VMkernel will do I/Os by the size of the VMFS 'block size'. The VMware engineers are usually quite smart Smiley Wink

On other operating systems, it is called the 'cluster size', because multiple disk blocks of 512 bytes are clustered together. This mechanism is used to cut down on the size of the block/cluster allocation bitmap. Any OS is free to do I/Os as small as a disk block.

And yes, VMFS3 can do suballocations so that a small file of a few KBs does not allocate a full 1MB or larger VMFS block. The .sbc.sf[/b] file in the VMFS-3 root is used to manage this.

0 Kudos