Virtualization is a rapidly changing technology that's useful for server consolidation, testing and deployment, training, and disaster recovery. Stay current with this hot technology by reviewing these best practices for running SQL Server in a virtual environment.

7. Say Yes to 64-bit Host Support.
Both VMware's VMware Server and Microsoft Virtual Server 2005 Release 2 (R2) support 64-bit architecture on the host side, which raises host memory capabilities to 1TB, enabling many more active virtual machines (VMs). VMware Server also supports 64-bit guests.

6. Allocate Enough Memory.
Each VM needs enough of the host's physical memory to support the guest server, plus 32MB per VM to cover VM overhead. For example, if you migrate a SQL Server system that requires 1GB (1024MB) of RAM, be sure to allocate 1056MB (1024MB + 32MB) for the VM. Always leave RAM for the host—about 512MB.

5. Use a Virtual SCSI Controller.
Although you can choose between using a virtual IDE controller and using a virtual SCSI controller, usually the virtual IDE controller is the default. However, you can get up to a 20 percent performance boost by using the virtual SCSI controller instead.

4. Use Different Drives or a SAN.
Create the VM's virtual hard drive on a different physical drive from the host's OS to reduce drive-spindle contention and improve the performance of SQL Server running in a VM. Better yet, use a SAN, which can increase I/O capabilities, improving VM performance.

3. Preallocate Storage.
Most virtual hard drives are configured with a default setting to dynamically expand as VM storage needs increase. This default setting saves storage space but slows performance. Instead, choose the preallocate storage setting (aka Fixed VHD) to avoid this performance hit.

2. Add Clustering.
Important for server consolidation, clustering combines with virtualization to increase availability at either host of the VM guest levels. Virtual Server 2005 R2, VMware Server, and ESX Server support VM guest clustering, in which each guest participates as a cluster node with nodes located on other hosts. In addition, Virtual Server 2005 R2 supports host clustering, in which the host can be the cluster node and—in the event of a failure— the host and all of its VMs can fail over to a backup and be automatically restarted.

1. Use Multicore CPUs.
Multicore CPUs from AMD and Intel support virtualization directly in the CPU. (AMD's virtualization support is always enabled; Intel's must be enabled through a BIOS setting.) Virtualization products run one thread per VM in each separate core, and adding cores increases the performance of multiple VMs. Note that at the guest level, SQL Server is licensed by CPU, and virtual CPUs configured in the guest VM must be licensed.

End of Article




Post Your Comments Here

You must be a registered user or online subscriber to comment on this article. Please log on before posting a comment. Are you a new visitor? Register now

Reader Comments

I am very interested in experiences on Virtualization of SQL Server in production environments. How about the difference in memory and i/o performance. It seems to me, you have more than a minimum disadvantage compared to performance on non virtualized SQL Server instances.

c70070540

Article Rating 3 out of 5

I still feel scare about using SQL server on Virtualization platfrom in a production environment. Past SQL server document used to stress on its requirement on maintaining Write-Ahead Log algorithm, that said the log must be stored on disk (persistent storage) before its data buffer get flush. It even said that it use OS API which bypass any caching and issue I/O directly to the device.

In Virtualization scenario, the I/O command from guest OS actually is handled by corr. Virtualization software I/O layer. However, I see no document from either VM ware / MS, which claims their virtualization software can maintain the original I/O sequence. I even see a test report which found some extreme occasions that I/O on VM environment can even faster than its underlining physical barebone machine. I just think it is only possible if it twist the block size, using caching, or reorder the I/O command. Any of these measure may hamper the Database consistency, should abnormal shutdown occurs during system operation.

Can Microsoft SQL team really announce their supported Virtualization software, just like what they would announce for supported OS, which told us that they already prove that SQL server can work reliably (even in production environment) on such platform ?

Thanks for any advice to correct me on any misunderstanding on the issue.

eric.fung

Article Rating 3 out of 5

Great Christmas list! Too bad, I do not live in a perfect VM-world. Maybe I can get lucky in that new TV-show going national. It is called BINGO! Does the tooth fairy have an age restriction? I need to check the going price for a kidney on the auction block! I will be in the perfect world even if it requires my first born (no, I already allocated that for gasoline for 2008). I hear Aluminum cans are now going for around 65-cents. Have to go and volunteer for cleaning up a stretch of highway.

herbnet

Article Rating 4 out of 5

 
 

ADS BY GOOGLE