数据中心使用虚拟化已经司空见惯,如今许多公司也开始使用虚拟化技术了,其中大部分使用虚拟化技术测试新应用,但越来越多的公司开始在生产环境中使用虚拟化技术,虽然虚拟化应用到文件服务器和Web服务器很普遍,但一直以来SQL Server服务器却很少使用虚拟化,似乎人们已经认为虚拟化不能为SQL Server和其它数据库负载提供足够的性能保证,数据库往往是I/O密集型应用,但这种想法应该改变了,因为现在的虚拟化技术发展的步伐实在是太快了。
Vmware性能增强
在最近的VMworld 2009大会上,Vmware CEO Paul Maritz概述了Vmware新平台vSphere的好处,从DBA的角度来看最重要的增强是性能,ESX Server 4.0平台每虚拟机可支持多达8颗虚拟CPU,255GB内存,比ESX Server 3.5每虚拟机支持的4 CPU和64GB内存要大得多。即使ESX Server 3.5支持的CPU数量和内存大小也比一般的SQL Server安装环境要强大得多。
也许对SQL Server DBA更重要的是网络和I/O性能的增强,ESX Server 4可以管理多达30GB/秒的流量和350,000 IOPS,但这需要大量的硬件资源,它清楚地证明虚拟机可以扩展,以满足与大型机工作量相当的需求。
经过这几年的发展,虚拟化技术逐渐成熟,令人惊讶的是,从Vmware第一次引入VMotion以来才六年时间。
微软Hyper-V可扩展性改进
虽然VMworld 2009大会的重点放在推广Vmware的解决方案上,但微软的Hyper-V在可扩展性方面也表现得引人注目,Hyper-V —特别是Windows Server 2008 R2 —提供了许多与Vmware ESX Server相同的扩展性。Hyper-V R2每虚拟机最大支持4颗虚拟CPU,255GB虚拟内存。虽然我还没有看到有关IOPS微软官方的数字,但QLogic发表在http://www.qlogic.com/promos/products/hyper-v.aspx的结果显示Hyper-V达到了200,000 IOPS。虽然这个基准不能代表所有的生产环境,但它表明Hyper-V一样可以支持很高要求的I/O。关于在虚拟环境中运行SQL Server的最佳实践和技巧,微软已经发布了一份详细的白皮书《在Hyper-V环境中运行SQL Server 2008》,可从http://sqlcat.com/whitepapers/archive/2008/10/03/running-sql-server-2008-in-a-hyper-v-environmenv-best-practices-and-performance-recommendations.aspx下载。
虚拟化数据库
虽然长久以来很多人都不愿对数据库实施虚拟化,但实际上SQL Server是虚拟化的理想对象。许多SQL Server服务器并没有得到充分利用,往往只有几十个用户,象这样的系统就应该被虚拟化,因此,如果虚拟化能够满足生产数据库的性能要求,那就应该立即实施数据库虚拟化。
虚拟化数据库最明显的两个好处是提高了服务器的利用率和更易于管理,虚拟化允许用户合并负载较重和较轻服务器上的工作量,服务器数量越少,你的管理任务就越轻松。此外,虚拟化可以动态调整虚拟机属性,如在一个正在运行的虚拟机上增加内存或磁盘,在保证虚拟机不停机的情况下,新增的资源可立即生效。使用虚拟化技术,你可以利用如Windows Server 2008 R2的实时迁移或ESX VMotion功能,提高迁移过程中数据库服务的可用性。
不是所有数据库环境都可以虚拟化,但它可以处理最苛刻的工作负载,虚拟化的好处将驱动所有IT服务都转向虚拟化,当然也包括SQL Server了。