Some of the most exciting developments in IT technology today are in processors and virtualization. Processor technology has been advancing faster than ever before. The advent of 64-bit x64 technology has been followed quickly by dual-core CPUs, quadcore CPUs, and integrated virtualization capabilities at the CPU level. Virtualization has also been rapidly evolving. Not so long ago, all of the major virtualization products were high-priced offerings from Microsoft and VMware. Now, both of Microsoft's virtualization products, Virtual PC 2007 and Virtual Server 2005 R2, are free.
With the rapidly growing adoption of advanced processor and virtualization technologies, chances are that your business is either already using or is preparing to use one or both of these technologies. As you prepare to use either multicore CPUs or virtualization, you must be aware of the licensing ramifications for the OSs that support them and applications such as SQL Server 2005.
Licensing can be confusing for SQL Server users because SQL Server is licensed per CPU. Both multicore processors and virtualization affect the number of processors, albeit in different ways. With multicore technology, Microsoft's position is that you need to license according to socket, not according to the number of processing cores. In other words, if you've just purchased a new quad-core server that has a single quad-core CPU, then you'd buy one license for one CPU, not four. (The CPU might have four processing cores, but there's just one socket on the motherboard. So for SQL Server, you'd license a single CPU.) Similarly, if you purchase a dual-processor quad-core server that has two quad-core processors, you'd need a two-processor license.
Virtualization raises similar questions. What are the licensing requirements if you buy a powerful 8-way server that's intended for server consolidation, then you install four guest virtual machines (VMs), each running a different SQL Server instance? Do you need to license the SQL Server instances as having eight CPUs? The answer is no. The SQL Server instances that run in the guest VMs are licensed according to the number of virtual processors that are configured in the VM, not the number of CPUs that are available in the host. Therefore, if you configure each of your four guest VMs with a single virtual CPU, they'd each use a single CPU license. If one of the VMs needed additional processing power and you configured it to use two virtual CPUs, the SQL Server instance running on that VM would need to be licensed for two CPUs. The important thing to remember is that when running on a VM, SQL Server is licensed according to the CPUs in the VM. It doesn't matter how many CPUs are in the physical host.
With SP2, SQL Server 2005 Enterprise Edition now offers unlimited licensing of virtual SQL Server 2005 instances. And Microsoft's recent virtualization licensing changes enable Windows Server 2003 R2 Enterprise Edition to run four active virtual Windows Instances and Windows Server 2003 R2 Datacenter, which allows an unlimited number of active Windows instances. These changes could be beneficial and cost-effective for customers who are considering virtualization technology. If you have any questions about SQL Server or virtualization, be sure to visit our forums at http://forums.windowsitpro.com/web/forum/default.aspx