Pages

Friday, February 13, 2009

VMware and crash consistency

People often ask a question about VMware (ESX) and its consistency of data. Many think that if a host crashes the virtual machine data may be corrupted or worse than crash consistent.

The KB article "Storage IO crash consistency with VMware products" @ http://kb.vmware.com/kb/1008542 gives a great summary.
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.
Now you know and you have something to cite.

Rodos

5 comments:

  1. Anonymous2:04 pm

    Nice find Rodos! Was aware of it just good to havge something to back it up when a client asks.

    ReplyDelete
  2. Anonymous3:59 am

    I just read the KB and it seems like that is not ht whole story...or perhaps the KB contradicts itself:

    "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."

    and then:

    "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."

    So isn't this saying that if your VMWare host is Linux, then your SQL Server guest might end up with a corrupted database?

    ReplyDelete
  3. @Anonymous. The text you quote is for the hosted product. For ESX it is as stated.

    ReplyDelete
  4. Anonymous10:56 am

    Ahhh...thanks. I was missing the point that a "Linux host" is not the same thing as the Linux kernel that ESX runs as (if that is even correct ;-)

    ReplyDelete
  5. michael3:07 am

    thanks, great info

    ReplyDelete