Freigeben über


Virtualized SQL Server

 

[Note the information in this post is now way out of date, so please refer to my post here instead..

https://blogs.technet.com/b/andrew/archive/2008/11/08/sql-server-2008-at-teched.aspx

Thanks Andrew]

I get more and more questions about SQL Server running in a Virtual machine so here’s 3 FAQs to start with…

1. Is there Support for SQL Server on non Microsoft Virtualization platforms (e.g.VMWare)? The definitive document on the is here.  In summary Microsoft doesn’t test this or support it, unless you have premier support in which case “Microsoft will use commercially reasonable efforts to investigate potential issues with Microsoft software running together with non-Microsoft hardware virtualization software”.

Of course the supported versions SQL Server (i.e.not 2000) and other Microsoft applications (Exchange, SharePoint etc.) will be fully supported on Hyper-V when Hyper-V is released. 

2. How does licensing work?  The exact terms are in this white paper, and in summary

  • For processor licensing each physical or active virtual machine running SQL Server must have a processor license (the number of chips not the number of cores) for each processor the virtual machine uses.  However if you have licensed enterprise edition for all of the processors on a physical machine you can run any number of SQL Server virtual machines on that box.
  • For CAL licensing each physical or active virtual machine requires the server license.  The exception to this is enterprise edition which just needs to be licensed per physical machine

Note that the licensing applies to SQL Server 2008 as well and to running SQL server on Microsoft’s Hyper-V platform in Windows Server 2008.

3. Performance. This is very easy to answer but not very helpful… Microsoft can’t test and publish how well SQL server performs on VMWare for example so I simply don’t know.  On Hyper-V this can be done as soon as Hyper-V is released.  There is always going to be some loss of performance and this will be the price you pay for improved manageability.

Finally don’t be put off by Virtual PC or VMWare demo’s you may have seen on laptops, you should get a better virtual experience using any virtualisation platform in a production environment, but the performance loss is going to vary depending on the physical infrastructure (SAN, number of Cores RAM etc.) and the workload you are virtualizing.

Technorati Tags: SQL Server,Virtualisation,Hyper -V,VMWare

 

Update:

Since writing this post Microsoft has introduced the Windows Server Virtualization Validation Program (SVVP).  Essentially this means that the currently supported versions of SQL Server are now fully supported on Hyper-V, VMWare and other leading virtualisation platforms as part of this program.

Comments

  • Anonymous
    May 10, 2008
    "SQL Server Performance in a VMware Infrastructure 3 Environment" is located at http://www.vmware.com/files/pdf/SQLServerWorkloads.pdf The benchmark seem un-realistic as only one VM is running at a time, when the expected deployment is multiple VMs running simultaneously.   What is needed for the benchmark: On the hardware, run the benchmarks with Windows 64byte with multiple SQL Server instances, that is, no VMWare. Run the same benchmarks on the same hardware with VMware ESX Server systems and 2, 4 and 8 VMs Comments ?

  • Anonymous
    May 12, 2008
    We run several SQL 2000 and 2005 instances under VMWare Server on a couple of hosts. Using MS SQLIO simulator on the host vs inside a VM on a RAID10 SAS dual-quadcore host, I'd say we are getting about 80% of the potential disk I/O ability of the host. This kind of ratio also held true under older SCSI RAID host servers tested. This 80% is an acceptable trade-off to us for the manageability and ease of portability of the VM to other hosts. Stability has been excellent. In a purely performance-driven environment,of course, I'd not run it virtualized.

  • Anonymous
    November 26, 2008
    The comment has been removed

  • Anonymous
    November 27, 2008
    The comment has been removed

  • Anonymous
    February 13, 2009
    Applications and servers (such as SQL Server) are supported when running within operating systems which pass the SVVP requirements in a third-party virtualization software product.  VMWare’s ESX Server is considered a SVVP qualified virtualization product when running Server 2000 SP4, 2003 SP2, or 2008.  The supporting reference is below: http://www.windowsservercatalog.com/results.aspx?&bCatID=1521&cpID=0&avc=0&ava=0&avq=0&OR=1&PGS=25&ready=0

  • Anonymous
    February 23, 2009
    Brian Thbnaks for this this post is past it's sell by date and I have an updated post .. http://blogs.technet.com/andrew/archive/2008/11/08/sql-server-2008-at-teched.aspx   which echoes your point Andrew

  • Anonymous
    July 05, 2010
    Gents, some info please? In a BI environment, will it be best to use a SQL cluster than VM the envirenment? What if more resources could be thrown to the VM to get same performance? Regards

  • Anonymous
    July 05, 2010
    Gents, in a BI environment, will it be bets to go cluster or VM, even if you can increase resources to the VM so performance doesn't become an issue, as stated above. Microsoft suggested cluster, but no reason up to date supplied?????? Regards

  • Anonymous
    July 08, 2010
    The comment has been removed

  • Anonymous
    November 22, 2010
    We currently have a situation where we have low performance in a virtual environment. Lot's of causes possible and one is SQL Server running virtual. I personaly don't trust this much. I think (my feeling says) that unless the environment is tuned optimal the performance loss must be significant. I am not an expert on this at all, but strange enough I don't find straight answer on internet although many experts seem to be out there. I's a difficult subject and situations can differ much but still this is strange. To find a way out I look at it from the other side. Some parties advise to use a physical server with a RAID 10 configuration (combining the speed of RAID 0 and the reliability of RAID 1), with enough memory and a good processor. Not being an expert on this, it makes a reliable impression. A maximum of performance must be the result. Now, how on earth can this performance be deliverd in a virual environment. As said, maybe it is possible to come close when a solid effort is done in tuning, buying the right hardware with enought memory etc. But in general budgets are limited so the virtual environment will not be optimal. So my opinion for RDBS'es in virutal environments, is that in average situations the performance loss is considerable compared to fysical environments. Any opinion? Anyone followed this kind of considerations and went for fysical without even trying virutal for example?