3

I am trying to find out if guest can see successful disk flush operation, but the host doesn't actually flush it to disk?

How does ESXi work with guest I/O? Are they cached by ESXi before being written to the host's disk?

0

2 Answers 2

5

No, it doesn't..

VMware ESX acknowledges a write or read to a guest operating system only after that write or read is acknowledged by the hardware controller to ESX. Applications running inside virtual machines on ESX are afforded the same crash consistency guarantees as applications running on physical machines or physical disk controllers.

That's from VMware itself. If you're worried about crash consistency, that's your answer.

1
  • That's not entirely true, see my answer...
    – Mathieu
    May 28, 2018 at 14:01
0

Sadly it's not that easy so the previous answer is correct for Windows but not on Linux... The KB says:

For hosted products, write handling depends on the host operating system.

On Linux hosts, VMware does not use unbuffered IO, because it is not safe or supported across all the Linux versions that VMware supports. So currently, VMware hosted products on Linux hosts always use buffered IO.

On Windows hosts, VMware hosted products use unbuffered IO by default.

And the final sentence is important:

Consequently, if the IO is buffered within the host operating system, an application running inside a guest operating system on VMware hosted products might lose crash consistency.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .