I'm trying to understand how reads works for a VM that is mirrored across 2 different ESXi:
On pdf VMware Virtual SAN 6.0 Design and Sizing Guide I read:
when there are multiple replicas Virtual SAN divides up the caching of the data blocks evenly between the replica copies.
In another blog post I read:
VSAN always tries to make sure that it sends a given read to the same replica so that the block gets cached only once in the cluster
I understand that the 2 phrases are very different so...now I do not understand how the placement of data in read cache really. works.
How the read cache really works?
Lets take an example of FTT=1.
In that case, there is two copies of the data.
Based on the offset that we are reading on the VMDK, we will either read from the first copy/VMDK of the data, or the second copy/VMDK of the data.
This block is then cached in the cache layer on the same disk group that we are reading the block from.
So each block is cached only once, in the disk group where the block is read, and not cached in both disk groups.
You can extrapolate this out for FTT=2, and FTT=3.
HTH
Cormac
Lets take an example of FTT=1.
In that case, there is two copies of the data.
Based on the offset that we are reading on the VMDK, we will either read from the first copy/VMDK of the data, or the second copy/VMDK of the data.
This block is then cached in the cache layer on the same disk group that we are reading the block from.
So each block is cached only once, in the disk group where the block is read, and not cached in both disk groups.
You can extrapolate this out for FTT=2, and FTT=3.
HTH
Cormac