如何在微软Hyper-V下发挥SQL Server最大功效?

日期:2016-12-22作者:Brien Posey

【TechTarget中国原创】

要建设稳定运行的虚拟化SQL Server系统,关键是确保虚拟化管理软件配置应能提供给数据库所需的资源。SQL Server是CPU密集型技术,因此支撑它的虚拟机需要能获得充足的处理器资源,同时不能引起与其它虚拟机的资源争用。

SQL Server虚拟化往往比较复杂,因为有很多因素要考虑进来。包括控制CPU分配和资源利用率,还要配置SQL Server虚拟机的内容来保障可扩展性,避免运行处理任务时内存不足带来问题。不过不用担心,微软公司的Hyper-V虚拟化软件提供了帮助满足这些工作需求的工具,至少可以满足组织在使用该技术时需要的配置工作。

首先,Hyper-V包含许多不同的设置项,可以用来控制每个虚拟机CPU资源分配,如图1所示:

在Hyper-V中设置控制虚拟机资源分配

图1:在Hyper-V中设置控制虚拟机资源分配

默认情况下,Hyper-V管理器只给虚拟机分配一个处理器,所以很重要的一件事就是给SQL Server虚拟机提供合适数量的CPU,要考虑该服务器未来规划负载以及SQL Server授权情况。还有,为了确保虚拟SQL Server获得足够的CPU资源,你可以使用“虚拟机保护”设置选项,选择保护特定虚拟机可用资源的百分比。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

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

作者>更多

Brien Posey
Brien Posey

微软最有价值专家(MVP),具有二十多年的IT经验,前后获得七次微软MVP,重点专注SharePoint管理,发表过上千篇文章,并出版十多本IT书籍。

SQL Server安装与升级>更多

相关推荐

技术手册>更多

  • Oracle软件许可证手册

    Oracle软件许可基本上是基于核心数来界定的,有多少核上运行了Oracle软件,就需要支付多少相应的费用,然后再针对不同的处理器平台乘以一个不同的因数,有时是0.25,有时是1.0,得到一个最终的费用。

  • 电子书:如何选择NoSQL数据库

    很多企业关系自己是否应该从传统数据库转到NoSQL数据库,应该选择什么样的数据库?本书详列了相应的技巧和案例,供您参考。

  • 预测分析与数据挖掘集锦

    数据挖掘、预测分析以及相关业务建模技术几乎完全是由高技能高工资的统计学家、数学家和定量分析师所使用。但随着商务智能和分析厂商提供更方便用户使用的预测分析工具,这一情况正在发生变化。

  • 数据库管理系统选型指南

    理解不同类型的DBMS有哪些特点,以及再何时、何处(场景)使用它们是十分必要的。在这本电子书中,我们就将进行一个详细的介绍,希望能够为您的数据库选型起到帮助、指导作用。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • SOA
  • 云计算
  • 商务智能
【TechTarget中国原创】

要建设稳定运行的虚拟化SQL Server系统,关键是确保虚拟化管理软件配置能提供数据库所需的资源。SQL Server是CPU密集型技术,因此支撑它的虚拟机需要能获得充足的处理器资源,同时不能引起与其它虚拟机的资源争用。

SQL Server虚拟化往往比较复杂,因为有很多因素要考虑,包括控制CPU分配和资源利用率,还要配置SQL Server虚拟机的内容来保障可扩展性,避免运行处理任务时内存不足带来问题。微软公司的Hyper-V虚拟化软件提供了帮助满足这些工作需求的工具,至少可以满足组织在使用该技术时需要的配置工作。

首先,Hyper-V包含许多不同的设置项,可以用来控制每个虚拟机CPU资源分配,如图1所示:

在Hyper-V中设置控制虚拟机资源分配

图1:在Hyper-V中设置控制虚拟机资源分配

默认情况下,Hyper-V管理器只给虚拟机分配一个处理器,所以要给SQL Server虚拟机提供合适数量的CPU,要考虑该服务器未来规划负载以及SQL Server授权情况。还有,为了确保虚拟SQL Server获得足够的CPU资源,你可以使用“虚拟机保护”设置选项,选择保护特定虚拟机可用资源的百分比。

有多种方法可以避免虚拟SQL Server产生CPU资源竞争。例如,你可以调整“虚拟机限制”和“相对权重”设置(在资源控制面板中),控制SQL Server虚拟机的CPU资源消耗情况。另一种方案是对相邻虚拟机应用保护,避免其它虚拟机过度消耗资源。不过,这种方案也有点麻烦,因为虚拟机可能会被迁移到其它主机。

此外,Windows Server 2016引入了托管资源保护机制,如果虚拟机占用太多现有硬件资源,该机制会强制停止。它能对CPU消耗进行主机级别的监控,如果虚拟机开始消耗过多CPU资源,该功能会自动调节处理器资源。

想要使用虚拟化SQL Server的IT团队还应该关注虚拟机的内存配置,图2中Hyper-V提供了内存配置选项。

在Hyper-V中设置控制虚拟机资源分配

图2:Hyper-V针对虚拟机的内存配置选项

微软的hypervisor提供了两种方式使用内容:动态内存分配和静态配置。动态内存是Hyper-V的特色,专为提升系统物理内存使用效率而设计,它把内存设计为共享资源,可以在不同的虚拟机之间按需进行再分配。然而,该功能对SQL Server来说很危险,因为SQL Server虚拟机通常会尝试使用尽可能多的内存。因此,最好对虚拟SQL Server静态分配内存。

在使用非统一内存访问架构(NUMA)系统的时候,对SQL Server的设置有点特殊。NUMA设计是为了实现更好的可扩展性,它把不同组的处理器和系统内存片段整合到一起(一般称为NUMA节点)。

在Hyper-V中设置控制虚拟机资源分配

图3:Hyper-V对基于NUMA系统的配置选项

处理器可以访问分配给所有NUMA节点的内存,但是与CPU同一节点下的本地内存肯定比访问不同节点的远程内存更快一些。因此,SQL Server虚拟机的NUMA节点和套接字虚拟拓扑应该与物理硬件拓扑有对应关系。

如图3所示,Hyper-V的NUMA设置在Hyper-V管理器Processor处理器菜单下的子菜单中。你可以使用它们调整拓扑或者手工设置虚拟NUMA节点的处理器数量、内存数量,设置服务器单个套接字支持的节点数量。

在Hyper-V虚拟机中运行SQL Server的另一项最佳实践是使用微软公司的第二代虚拟机,它的启动速度很快,整体功能表现也比第一代产品更好。不过,因为SQL Server的性能与存储I/O关系很大,因此最重要的是确保虚拟硬盘的底层存储提供的IOPS要满足数据库需求。

另一种考虑因素是两种高可用形式之间可能存在冲突。在与Windows Failover集群结合时,Hyper-V虚拟机可以在虚拟机级别实现更好的可用性。但是,SQL Server还支持独立于虚拟机管理程序的高可用性。如果你选择使用SQL Server的高可用功能(它会设置所谓的访客集群),需要设置反关联规则组织不同的SQL Server虚拟机。这些虚拟机是单个访客集群的组成部分,都来自于通用物理主机。否则,主机级别的故障会破坏访客集群的可靠性。

在虚拟机上运行SQL Server可以说是在数据库资源需求和系统其它部分资源需求之间“走钢丝”。实施本文描述的最佳实践可以帮助你保持虚拟SQL Server系统平稳运行。