Tuesday, March 26, 2013

Why Virtualizing Production SQL Server?

I asked this question to lot of DBA and most of their answer is that performance will be hindered as VMs are sharing resources. They like virtualizing lower environment (dev, test) SQL Server but definitely not on production environment. Then my question is why there is no performance issue when you have multiple SQL instances on one physical server or have multiple databases on one SQL instance? Aren't this case also sharing resources? To me, this is an issue on design, management and configuration on server but not on the technology itself. As long as you do it right, there should not be any major issue regardless of whether you virtualize the SQL Server or create multiple instances or multiple databases on single instance.

But why virtualization? Below are some reasons why I virtualized SQL Server in my environment.

Provisioning
A new server can be built in couple of minutes with the correct template. How fast can you build a physical server?

Flexibility
Server can be migrated from one host to other host transparent to user if there is resource constraint. Extra host can be added to provide more resources if needed. What do you need to do to scale up or scale out a physical environment?

Disaster Recovery
It gives you extra simpler option on DR. VMs can be continuously replicated to DR site. Failover and failback is easier and simpler compared to traditional log shipping method.

High Availability
You can use live migration to move VMs if there is hardware failure to minimize downtime.

Rollback
What happened if you patch your physical server on one nice day, reboot the server, it crashed and never able to boot again? What is the different if it is a VM and you have the snapshot created before you patch it? I think it will safe your life, time and your day will be still a nice day.

Consolidation
It is just a waste of resource if you are using 5% of CPU resource on your physical server. Why do you want to drive 10 mph with your Ferarri? Other than effective use of resources, you can also reduce hardware maintenance cost, power and cooling, create a greener environment by consolidating physical servers.

I think there is challenge in virtualizing SQL Server, the main one is to do it right to meet performance requirement of the applications and databases. However by looking at the benefit of virtualization, I think it is worth to do it. There is always challenge no matter what you do, so why not just face the challenge and do it? I will talk about how I successfully virtualized my most critical production SQL Server with minimum hiccup in my next post .


No comments:

Post a Comment