什么情况下我们应该放弃SQL Server虚拟化

日期: 2013-06-26 作者:Robert Sheldon翻译:冯昀辉 来源:TechTarget中国

虚拟化技术在最近几年已经获得了显著进步。虚拟机性能比以往更强大,它们可以处理更大的容量,管理更容易,也能对资源分配提供更出色的控制。因此,那些顽固反对虚拟化的DBA们也在重新考虑他们自己的角色,这并不令人感到奇怪。采用虚拟化不但可以快速配置数据库环境,还可以很容易地把该环境复制多次,这对把虚拟化看作成本节约和便利操作的大神们也是一种安慰。

  尽管虚拟机(VM)越来越流行,但并非所有的SQL Server环境都应该进行虚拟化。关于授权许可、性能、可用性和支持方面的问题必须在把SQL Server部署到虚拟化环境之前考虑清楚。如果不这么做,可能会导致不符合标准的生产环境。虽然名义上实现了虚拟机环……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

虚拟化技术在最近几年已经获得了显著进步。虚拟机性能比以往更强大,它们可以处理更大的容量,管理更容易,也能对资源分配提供更出色的控制。因此,那些顽固反对虚拟化的DBA们也在重新考虑他们自己的角色,这并不令人感到奇怪。采用虚拟化不但可以快速配置数据库环境,还可以很容易地把该环境复制多次,这对把虚拟化看作成本节约和便利操作的大神们也是一种安慰。

  尽管虚拟机(VM)越来越流行,但并非所有的SQL Server环境都应该进行虚拟化。关于授权许可、性能、可用性和支持方面的问题必须在把SQL Server部署到虚拟化环境之前考虑清楚。如果不这么做,可能会导致不符合标准的生产环境。虽然名义上实现了虚拟机环境,但实际上没有达到虚拟机应有的效果。

  SQL Server虚拟化授权

  让我们先来了解一下SQL Server授权,因为它本身就是一个麻烦的过程,在SQL Server 2012发布之后更甚。如何授权SQL Server取决于产品版本以及运行环境版本,还有处理器的数量,以及是真实物理环境还是虚拟环境。

  例如,SQL Server 2012提供了三个版本:企业版商业智能版标准版。所有这些版本都必须授权才可使用。你可以给每个版本按每处理器或者每服务器进行授权。如果是后者,你必须为每台设备和连接SQL Server的每个用户购买客户端访问授权。如果你给SQL Server企业版做了虚拟化,你可以按虚拟机级别或者主机级别为该产品购买授权。SQL Server标准版和商业智能版只能按虚拟机级别授权。在这些版本中你能做什么取决于你授权的是哪个版本以及你是否参与了微软的软件保证(SA)计划。例如,你可以在虚拟机环境中基于每个内核为标准版和企业版做授权,但是商业智能版本不可以。此外,按照每内核授权的方式最少要四个内核起售,尽管你可能只把它运行在两个虚拟CPU上。如果你想迁移虚拟机,你必须要等三个月之久,除非你参与了SA计划。

  这就意味着,组织可能为了虚拟机授权花了很多额外的资金,结果却可能是通过迁移出虚拟环境来实现成本的节约。至少在某种程度上,按照SQL Server授权结构是这样。尽管最关键的是要为SQL Server精心策划和配置你的虚拟环境,但这种配置并不总是在控制之下。例如,如果你在许多虚拟机之间部署你的SQL Server实例,最终可能会在授权上花很多钱,甚至比把那些实例部署在一台独立物理计算机上花费的都要多。SQL Server授权对于操作系统环境是一个整体,不管操作系统环境(OSE)下有多少个实例。一台物理服务器就是一个OSE,而如果是虚拟机环境,就要累加了。

  因此要记住,在完全理解授权的不同情况以及影响之前,不要对SQL Server做虚拟化

  SQL Server虚拟化性能

  虚拟化技术已经取得了长足的进步,并在广泛的组织中得到了接受。但尽管有了处理SQL Server负载的虚拟化能力,但在进入虚拟化之前也必须仔细评估。例如,关键问题是虚拟化中SQL Server数据存储的方式。即使在最佳条件下,可能发生的资源争用也必须纳入考虑。是否有其它虚拟机共享相同的存储区域网络呢?数据是否被存储在相同的地方呢?如果存在这些问题的话,你的SQL Server环境可能会受到其它那些机器的影响。

  对于小型数据库部署,资源争用可能不会有大问题,尤其是现在的资源管理已经有很大进步了。然而,对于处理大负荷的大型系统可能就会使主机的IO能力受到压力。例如,如果必须重建较大的压缩索引,那会很快把CPU耗尽,重组和其它维护操作也一样。许多DBA建议完全避免1GB iSCSI存储,而关注每秒稳定传输数据超过一百兆的存储,如果情况需要更给力也可以选择更快些的。

  如果存储能力不能完全满足需求,你必须至少确保有足够的内存以弥补这部分不足,同时要满足巅峰值需求。CPU也必须能处理那些峰值负载。尽管虚拟化产品比以往能支持更多要求苛刻的应用程序,但它们仍然在虚拟CPU和支持的内存数量上有一定局限。

  如果你运行的SQL Server系统容易消耗CPU和内存,那就不要对它们做虚拟化,除非你有条件先执行足够的测试以确保你能得到需要的性能。如果你的系统要求很高,你就不能在该主机上运行其他VM或者SQL Server实例,这样你做虚拟化的意义就不大了。虚拟机需要额外的存储和内存,以及运行第二个操作系统所必要的资源。如果多个虚拟机运行在同一个主机上(这是做虚拟化的主要意义所在),你必须把可能引起的资源争用纳入考虑范围。当几个应用同时达到峰值时怎么办?在虚拟环境中,并发问题的影响很深远,而不只是单个数据库配置的事。

相关推荐