2 Replies
Last post:
Oct 3, 2007 8:03 AM by
Benny Hauk
SQL is still running in windows (assuming you setup a windows guest) regardless if it is running on physical hardware or virtual hardware. I'm assuming you're using the SMP features in VMWare which presents multiple virtual CPU's to the guest/Windows instance.. In which case, there is even less difference between running SQL on a physical box or a virtual machine as far as process threading goes.
Depending on how heavy your SAN is being used, that would be the main concern.. of course, if your database are already hosted on the SAN, then I'd probably venture to guess that moving to VMWare would have little to no impact on the load on the SAN. You could even look at just virtualizing the windows instance and connecting the windows guest to the SAN seperatly outside of vmware.
Until someone can address this issue that IBM has raised and our company has observed, we aren't going forward with any database virtualization except for extremely light usage (in fact we aren't doing anything requiring heavy disk I/O):
http://communities.vmware.com/thread/102491
What we've found is that "consolidating" all little SQL Server databases down onto 2 or 3 really stinking haus boxes is a much better solution than having multiple VMs, each running SQL Server with one database on it. Some databases we run on their own instance, and others we just lump together on the same default instance. Either way it's all on the same hardware. Sometimes we have to jump through an extra hoop or two when we deal with vendors' 3rd party databases, but it ultimately works. I/O and CPU Performance is better, we still get the benefits of consolidation of one form or another, cost is MUCH less (referring to the per cpu cost of SQL Server, which when virtualized, technically you are now licensing per core, not per socket - since VMs see a core as full CPU with its own socket).
This issue brings me to my biggest "wish list" for server virtualization:
1) Microsoft to open their eyes and adjust their licensing scheme to accomodate the fact that a "CPU" in virtual-land can actually just be a core which technically comes out to less than 1 real CPU and also change their licensing so it's palettable for 3rd party vendors to deploy their Windows-based solutions as virtual applicances so I don't have to switch to Linux to enjoy the benefits of pre-configured solutions.
2) VMWare to find a way to offload I/O operations from the cpu to the HBA (like what happens in the physical world)
http://communities.vmware.com/thread/102491
What we've found is that "consolidating" all little SQL Server databases down onto 2 or 3 really stinking haus boxes is a much better solution than having multiple VMs, each running SQL Server with one database on it. Some databases we run on their own instance, and others we just lump together on the same default instance. Either way it's all on the same hardware. Sometimes we have to jump through an extra hoop or two when we deal with vendors' 3rd party databases, but it ultimately works. I/O and CPU Performance is better, we still get the benefits of consolidation of one form or another, cost is MUCH less (referring to the per cpu cost of SQL Server, which when virtualized, technically you are now licensing per core, not per socket - since VMs see a core as full CPU with its own socket).
This issue brings me to my biggest "wish list" for server virtualization:
1) Microsoft to open their eyes and adjust their licensing scheme to accomodate the fact that a "CPU" in virtual-land can actually just be a core which technically comes out to less than 1 real CPU and also change their licensing so it's palettable for 3rd party vendors to deploy their Windows-based solutions as virtual applicances so I don't have to switch to Linux to enjoy the benefits of pre-configured solutions.
2) VMWare to find a way to offload I/O operations from the cpu to the HBA (like what happens in the physical world)
