Write cache policy for VM's with running RDMBS'

Frank77

New Member
Jul 23, 2013
5
0
1
Hello.

I have got several questions about cache levels.
What are the best practices about VM's cache policy knowing that I prefer security ?
Here is my configuration.

- There are 2 Proxmox servers and 2 NAS'.
- Proxmox servers have a Gluster volume configured.

I would like your help to find all cache levels to determine the risks for RDBMS' (SQLServer / MySQL / Oracle).

I succeed in finding 7 to 8 different cache levels between the RDBMS user process and my hard drive. (Bold ones are disabled but I don't know how to effectively test my configuration).

- Guest page cache.
- Virtual disk drive write cache. (Disabled with cache=directsync parameter passed to KVM process)
- Host page cache.
(Disabled with cache=directsync parameter passed to KVM process)
- GlusterFS cache. (Disabled with performance.write-behind and performance.flush-behind both turned off)
- NAS page cache (is this level used by gluster ?).
- XFS cache (filesystem). (I used wsync flag but I got poor performance so I removed it)
- RAID controller write cache. (This is turned off because I don't have any bacup battery)
- Physical hard drive write cache (This is also turned off).

I just wondered if I am right about identified cache levels. Now I don't know if with those cache levels disabled risks are reduced enough.
Indeed, I got 3 databases corrupted during the last few month during my tests (once because of a faulty UPS and later because of freezed I/O) but I had guest virtual disk drive write cache enabled (cache=none configured in VM configuration).

I have got mainly Windows VM's and few Linux VM's.
Do you know how are handled fsync() calls from guests ? Are FS barriers enabled from guests to physical hard drive ?

Any help would be much appreciated.
Thank you.