I have a small VM ESX 3.0 implementation - mostly test web servers, however there is 1 db server that gets terrible io performance.
Will adding additional virtualized disks in a RAID help performance much?
This is typical - VM people often ignore the IO loadout that databases have. Databases often are a bad candidate for shared storage because they need a LOT of IO. Recemmended setup would go inthe direction of running the VM from a shared storage, but the actual database used discs coem from seaprate dedicated LUN.
Not so much that VmWare sucks IO wise, as that the database often has special needs. As an example (Hyper-V, but the same principles apply): * I run a pretty large Hyper-V server with 32gb RAM. * The OS + the virtual images run of 4 disc RAID 10, Velociraptor. performance is OK... EXCEPT: * The SQL Server running there has another 6 (!) discs in a RAID 10 for it's data to meet the dedicated IO load requirements, plus discs for logging.
There is simply no real way to get all under the same RAID properly. Databases typially LOVE IO performance - and a shared setup can not guarnatee those.
So, my advice stands: get some separate discs for the acutal data.
I have no idea what kind of I/O overhead ESX 3.0 has, as it's an outdated product.
Testing against VMware vSphere (4.x) shows that there is just about no overhead at all on I/O intensive applications - as long as you scale your setup correctly.
First of all: RAID performance suffers in VMware on the same basics as every other RAID usage. You can't put several VM's and a heavy I/O VM on the same LUN/Array and expect it to go spiffy.
There are several steps you can do to ensure that your DB gets full performance. Here are the most basic ones:
I also advise you to find out whats causing your I/O bottleneck before you change configuration.
My experience is that regardless of the OS running a database under VMware (or other virtualization) equals to sloooooooooooow I/O. Newer VMware versions improve the situation quite a bit, but it's still not the same than a bare metal OS installation.