Hi,
I am wondering if a lot of people out there are running VMware virtualized Linux MySQL machines on NetApp storage ? Any thoughts on how to configure things to get the best performance ?
What are people generally doing ?
- database on vmdk file in VMware datastore (and from ESX using either NFS, iSCSI or FCP to access the datastore) - NFS mount of a NetApp volume from the Linux MySQL machine - iSCSI LUN mapping from the Linux MySQL machine - FCP LUN mapping (via Raw Device Mapping in VMware)
Any thoughts and recommendations ? Thanks in advance!
Best regards, Filip
What are people generally doing ?
I haven't done any performance testing but I've only used mysql in a VM a few times, one was a RHEL4 box and another was a RHEL5 box. One of the times it was a very low use instance and I just threw the data files up on a nfs volume (that I mounted from the netapp directly to the VM) and this has, and still is working fine. The other instance, I initially set up in the same way (datafiles on nfs mounted volume directly to the VM). This instance has a very high write based usage pattern and I noticed a few things.
1. The cpu utilization on the VM was higher than I would have liked, 20 to 30%, mainly due to the nfs overhead.
2. The nfs volume from netapp's view was very busy. Busier than it should have been. Looking closely at the nfsstats I noticed that the activity on the volume was mainly getattr, setattr and access.
Instead of tracking down the solution to the nfs getattr, setattr and access issue I just tried moving the datafiles to an iscsi lun that was directly connected from the VM to the netapps. The IOPS on the volume dropped dramatically and the cpu load on the VM went down to about 8 to 12%. This is where the setup still sits.
But, In some later work I was doing with an Oracle RAC setup, using NFS as the shared filesystems, I was seeing some similar mis-behavior with one of the shared NFS filesystems. At this point I tracked down a "fix" to the issue, which did indeed fix the issue with the Oracle DB so I'm guessing it would have also fixed the issue with mysql. Here is a blog which talks about the issue and the fix, which is essentially using the "noatime" option to the nfs mount.
http://prodlife.wordpress.com/2008/11/15/unusual-io-activity-on-shared-clust...
If you haven't already you might want to do a search for mysql in now.netapp.com as it turns up quite a few hits that look worthwhile.
Good luck,