SQL Server虚拟化优缺点:权衡性能影响

日期: 2009-09-09 作者:Denny Cherry翻译:曾少宁 来源:TechTarget中国 英文

在最近的几年,特别是最近两年,IT领域的最大流行词就是虚拟化。其中主要的宣传口号是:虚拟化,省钱省电没缺点。作为市场人员,我支持其中的两个观点。SQL Server虚拟化肯定能在服务器和用电上节省开支。

但如果服务器并不适合进行虚拟化,那么虚拟化也会有一些很大的缺点。   对于Microsoft SQL Server,我们可以用VMware或Hyper-V创建虚拟机,然后在每一个虚拟服务器上安装Windows,最后在每一个虚拟机上安装SQL Server。另一个方法是在一个物理服务器——或虚拟服务器安装单独的SQL Server实例。两种方法都有优点和缺点——而且有时系统不应该使用这两种方法,因……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在最近的几年,特别是最近两年,IT领域的最大流行词就是虚拟化。其中主要的宣传口号是:虚拟化,省钱省电没缺点。作为市场人员,我支持其中的两个观点。SQL Server虚拟化肯定能在服务器和用电上节省开支。但如果服务器并不适合进行虚拟化,那么虚拟化也会有一些很大的缺点。

  对于Microsoft SQL Server,我们可以用VMware或Hyper-V创建虚拟机,然后在每一个虚拟服务器上安装Windows,最后在每一个虚拟机上安装SQL Server。另一个方法是在一个物理服务器——或虚拟服务器安装单独的SQL Server实例。两种方法都有优点和缺点——而且有时系统不应该使用这两种方法,因为它们都不太适合进行虚拟化。

  独立的虚拟机

  创建独立的虚拟机可能是虚拟化SQL Server系统最简单的方法。每一台机器,通常指的是一台物理机器,都有自己的虚拟机,我们可以用相同的方式管理所有东西。这种方法的优点是它的内存管理与在物理服务器上一样。我们用一定数量的内存来创建每一个虚拟机,这会很容易。因为每一台机器都分配了属于它自己的RAM,每一个数据库访问的缓存数都是已知的,这使我们可以更好地判断应该分配给服务器多少的RAM。

  这种虚拟化的方法也有一些缺点。其中最大的缺点是硬盘配置。创建虚拟服务器时,大多数情况我们都会使用虚拟服务器软件所带的本地虚拟存储技术。这意味着虚拟机所使用的硬盘实际上是存储在主机硬盘上的一个文件。主机的硬盘可以是一个SAN (Storage Area Network,存储区域网络)、NAS(Network-attached Storage,网络附件存储)或者DAS(Direct-attached Storage,直接附件存储),这取决于方案选项和安装配置。

  因为现在是与主机上的其它虚拟服务器共享存储,因此对于硬盘的使用会受到其它虚拟机的影响——其它虚拟机同样也会受到你的虚拟机的影响。如果另一台虚拟机开始执行一个高I/O操作,如碎片整理操作,那么你的SQL Server也将受到相同的影响。但是,还是有解决的办法的,因为有些虚拟化方案支持一个直接到客户机OS的物理DAS排列的LUN。基本上,它会跳过主机OS而独立完成这个操作,从而允许你控制客户机操作系统硬盘的性能。

  这种方法也有一个优点。当你使用一个VMware或Hyper-V虚拟化服务器来运行SQL Server时,而你又需要增加虚拟机访问的存储数量时,这种方法可以很容易实现。你只需要简单地关闭客户机OS,在主机OS上执行一个命令——或者使用UI来根据方法修改——然后启动客户机OS并使用客户机的diskpart来扩展硬盘。

  使用虚拟化实例

  在SQL Server中,我们能够通过使用SQL Server功能在一个服务器安装多个实例来实现虚拟化。这可以实现各自分离的实例而不要求多个OS,并且它节省了整合多个机器时需要的RAM。如果你在一个机器上安装了8个SQL Server实例,你只需要运行一个Windows 2003或2008操作系统。然而,如果你将每一个实例放到它在服务器虚拟化系统中自己的客户机OS中,你必须安装8个Windows 2003或Windows 2008操作系统。

  在一个服务器安装多个实例相对于安装多个虚拟机来说还有另一个优点,那就是你可以更好地控制磁盘的I/O。因为一般情况都是用一个物理服务器来运行所有的实例,你可以给每一个实例分配服务器所需要的来自SAN或DAS的驱动器个数。

  在一个服务器上使用多个实例的一个大问题是内存会变得很难管理,因为你现在必须在物理服务器的RAM分配中均衡所有实例所需要的内存。你很容易就会因为申请过多的内存而使Windows内存不足,或者运行在服务器上的软件内存不足。这个问题在你开始将服务器备份到一个网络共享或你的备份软件从服务器拷贝文件到备份服务器时会变得更加明显。对大文件进行这两个操作都要求大量的系统缓存——有时根据数据库备份文件大小会达到几个GB。如果Windows没有足够的内存进行这个操作,那么Windows将不得不从SQL Server中收回一些内存,这将影响到数据库的性能。

  结论

  如果你能够克服这些问题,那么你的服务器就可能有利于虚拟化。大多数情况下,这些问题意味着越大型、越繁忙的SQL Server是越不适合进行虚拟化。大多数公司都有一些较小的系统,它们没有很大的CPU负载,也不需要很多的内存,它们可以很容易使用其中的一种方法来虚拟化SQL Server。这都取决于你、DBA和你的同事,你们可以权衡SQL Server虚拟化的利弊,然后决定哪种方法适合于你的具体环境。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐