If ESX requires to read the whole 1MB block to satisfy the 4kB block read from a VM, then 1MB should be read from the Clariion. You are correct, you'd need to read 16 blocks of 64kB.
Are you saying 1 read for each disk, but all disks would still have to be read in order to read the 1MB block. I'm trying to understand what is happening on each disk for a 1 MB read.
My understanding is probably incomplete, but as far as I know, a VMFS formatted with an 8 MB block size does not necessarily mean that a 4 KB read or write from the guest will result in a 8 MB read or write to a LUN. (the horror!) VMFS uses sub-block addressing for smaller IOs and deals with 64 KB blocks even if the VMFS has a 8 MB block size.
You can see what ESX is actually doing to the disks by looking at the read and write IO sizes in Analyzer for a LUN and comparing those to what the guest reports it's doing (as in Perfmon Bytes/Read & Bytes/Write in Windows).
RRR
4 Operator
•
5.7K Posts
0
February 4th, 2010 01:00
RRR
4 Operator
•
5.7K Posts
0
February 3rd, 2010 23:00
Hello AndrewC,
It would be very bad that you'd need that many reads just for 1 read I/O. No, to read 1 block, you only need 1 read I/O on the back end.
AndrewC2
2 Posts
0
February 3rd, 2010 23:00
Hello RRR,
Thanks for the reply.
Are you saying 1 read for each disk, but all disks would still have to be read in order to read the 1MB block. I'm trying to understand what is happening on each disk for a 1 MB read.
Regards,
Andrew
dysolution
11 Posts
0
March 2nd, 2010 12:00
My understanding is probably incomplete, but as far as I know, a VMFS formatted with an 8 MB block size does not necessarily mean that a 4 KB read or write from the guest will result in a 8 MB read or write to a LUN. (the horror!) VMFS uses sub-block addressing for smaller IOs and deals with 64 KB blocks even if the VMFS has a 8 MB block size.
http://www.yellow-bricks.com/2009/05/14/block-sizes-and-growing-your-vmfs/
You can see what ESX is actually doing to the disks by looking at the read and write IO sizes in Analyzer for a LUN and comparing those to what the guest reports it's doing (as in Perfmon Bytes/Read & Bytes/Write in Windows).