当前位置:  开发笔记 > 编程语言 > 正文

虚拟化SQL Server:为什么不呢?

如何解决《虚拟化SQLServer:为什么不呢?》经验,为你挑选了3个好方法。

我工作的IT部门正在尝试迁移到100%虚拟化服务器,所有数据都存储在SAN上.他们尚未完成,但该计划最终还要求将现有的物理SQL Server计算机移动到虚拟服务器.

几个月前,我参加了Heroes Happen Here发布活动,在一个SQL Server会话中,发言者顺便提到,这对于生产系统来说不是一个好主意.

所以我正在寻找一些东西:

    为什么这个或不是个好主意的具体原因是什么?我需要参考,或者不需要回应.我可以通过谷歌自己提出一个模糊的"I/O界限"回复.

    仅HHH演讲者的回忆可能无法说服我们的IT部门改变主意.任何人都可以直接指出一些更具权威性的东西吗?而且,通过"直接",我的意思是更具体的东西,而不仅仅是模糊的在线书籍评论.请把它缩小一点.

ConcernedOfT.. 36

我可以从个人经验中说出这一点,因为我正在处理这个问题.我目前作为承包商工作的地方为他们的SQL Server开发系统提供了这种类型的环境.我正在尝试在这种环境下开发一个相当适度的BI系统,并且确实在努力解决性能问题.

在天真的虚拟机上,TLB未命中和模拟I/O非常慢.如果您的操作系统具有半虚拟化支持(在Windows上仍然不是一项成熟的技术),则使用半虚拟化I/O(本质上是挂接到VM中的API的设备驱动程序).最新版本的Opteron支持嵌套页表,无需在软件中模拟MMU(这非常慢).

因此,运行在大型数据集上并执行大量I/O(例如)ETL过程的应用程序会超越虚拟化的致命弱点.如果您有类似数据仓库系统的内存或磁盘I/O,您应该考虑其他因素.对于简单的事务性应用程序,它们可能没问题

从视角来看,我正在使用的系统运行在具有4x 2gbit F/C链路的SAN上的刀片(IBM服务器)上.这是一个中档SAN.VM有4GB的RAM IIRC,现在有两个虚拟CPU.在最好的情况下(当SAN安静时),这仍然只是我的XW9300速度的一半,XW9300在1个U320总线和4GB RAM上有5个SCSI磁盘(系统,tempdb,日志,数据,数据).

您的里程可能会有所不同,但我建议您使用我所描述的工作站系统来开发任何I/O,而不是SAN上的虚拟服务器.除非您的资源使用要求超出此类工具包(在这种情况下,它们远远超出虚拟服务器),这是一个更好的解决方案.硬件并不昂贵 - 当然比SAN,刀片机箱和VMWare许可便宜得多.SQL Server开发人员版附带VS Pro及更高版本.

这样做的好处还在于您的开发团队不得不从单词go开始处理部署 - 您必须提出一种易于"一键式"部署的架构.这并不像听起来那么难. Redgate SQL Compare Pro是你的朋友.您的开发人员还可以获得数据库管理的基本工作知识.

快速访问惠普的网站,我得到的XW8600(他们目前基于至强的型号)的定价约为4,600美元,配备四核至强芯片,4GB内存和1x146和4x73GB 15k SAS硬盘.街头价格可能会略低一些.将其与SAN,刀片服务器机箱和VMware许可的价格以及该设置的备份成本进行比较.对于备份,您可以提供具有备份的网络共享,人们可以根据需要删除压缩的数据库备份文件.

编辑:AMD网站上的这份白皮书讨论了VM的一些基准测试.从后面的基准测试来看,繁重的I/O和MMU工作负载确实破坏了VM的性能.他们的基准(由于供应商提供的统计数据而被视为一粒盐)表明OLTP基准测试的速度降低了3.5倍.虽然这是供应商提供的,但应该记住:

它对天真的虚拟化进行了基准测试,并将其与半虚拟化解决方案进行了比较,而不是裸机性能.

OLTP基准测试将具有更多随机访问I/O工作负载,并将花费更多时间等待磁盘搜索.更顺序的磁盘访问模式(数据仓库查询的特征)将受到更高的惩罚,并且具有大量TLB未命中的内存繁重操作(例如,SSAS,例如,是圣经内存生猪)也将导致额外的惩罚.这意味着此类处理的减速可能比白皮书中引用的OLTP基准惩罚更为明显.

我们在这里看到的是TLB未命中和I/O在VM上非常昂贵.MMU中具有半虚拟化驱动程序和硬件支持的良好体系结构将减轻部分或全部这些问题.但是,我认为Windows Server 2003根本不支持半虚拟化,我不确定Windows 2008服务器提供的支持级别.我的经验当然是,与相对适度规范的裸机硬件相比,VM在处理ETL过程和SSAS多维数据集构建时会大大减慢服务器的速度.



1> ConcernedOfT..:

我可以从个人经验中说出这一点,因为我正在处理这个问题.我目前作为承包商工作的地方为他们的SQL Server开发系统提供了这种类型的环境.我正在尝试在这种环境下开发一个相当适度的BI系统,并且确实在努力解决性能问题.

在天真的虚拟机上,TLB未命中和模拟I/O非常慢.如果您的操作系统具有半虚拟化支持(在Windows上仍然不是一项成熟的技术),则使用半虚拟化I/O(本质上是挂接到VM中的API的设备驱动程序).最新版本的Opteron支持嵌套页表,无需在软件中模拟MMU(这非常慢).

因此,运行在大型数据集上并执行大量I/O(例如)ETL过程的应用程序会超越虚拟化的致命弱点.如果您有类似数据仓库系统的内存或磁盘I/O,您应该考虑其他因素.对于简单的事务性应用程序,它们可能没问题

从视角来看,我正在使用的系统运行在具有4x 2gbit F/C链路的SAN上的刀片(IBM服务器)上.这是一个中档SAN.VM有4GB的RAM IIRC,现在有两个虚拟CPU.在最好的情况下(当SAN安静时),这仍然只是我的XW9300速度的一半,XW9300在1个U320总线和4GB RAM上有5个SCSI磁盘(系统,tempdb,日志,数据,数据).

您的里程可能会有所不同,但我建议您使用我所描述的工作站系统来开发任何I/O,而不是SAN上的虚拟服务器.除非您的资源使用要求超出此类工具包(在这种情况下,它们远远超出虚拟服务器),这是一个更好的解决方案.硬件并不昂贵 - 当然比SAN,刀片机箱和VMWare许可便宜得多.SQL Server开发人员版附带VS Pro及更高版本.

这样做的好处还在于您的开发团队不得不从单词go开始处理部署 - 您必须提出一种易于"一键式"部署的架构.这并不像听起来那么难. Redgate SQL Compare Pro是你的朋友.您的开发人员还可以获得数据库管理的基本工作知识.

快速访问惠普的网站,我得到的XW8600(他们目前基于至强的型号)的定价约为4,600美元,配备四核至强芯片,4GB内存和1x146和4x73GB 15k SAS硬盘.街头价格可能会略低一些.将其与SAN,刀片服务器机箱和VMware许可的价格以及该设置的备份成本进行比较.对于备份,您可以提供具有备份的网络共享,人们可以根据需要删除压缩的数据库备份文件.

编辑:AMD网站上的这份白皮书讨论了VM的一些基准测试.从后面的基准测试来看,繁重的I/O和MMU工作负载确实破坏了VM的性能.他们的基准(由于供应商提供的统计数据而被视为一粒盐)表明OLTP基准测试的速度降低了3.5倍.虽然这是供应商提供的,但应该记住:

它对天真的虚拟化进行了基准测试,并将其与半虚拟化解决方案进行了比较,而不是裸机性能.

OLTP基准测试将具有更多随机访问I/O工作负载,并将花费更多时间等待磁盘搜索.更顺序的磁盘访问模式(数据仓库查询的特征)将受到更高的惩罚,并且具有大量TLB未命中的内存繁重操作(例如,SSAS,例如,是圣经内存生猪)也将导致额外的惩罚.这意味着此类处理的减速可能比白皮书中引用的OLTP基准惩罚更为明显.

我们在这里看到的是TLB未命中和I/O在VM上非常昂贵.MMU中具有半虚拟化驱动程序和硬件支持的良好体系结构将减轻部分或全部这些问题.但是,我认为Windows Server 2003根本不支持半虚拟化,我不确定Windows 2008服务器提供的支持级别.我的经验当然是,与相对适度规范的裸机硬件相比,VM在处理ETL过程和SSAS多维数据集构建时会大大减慢服务器的速度.



2> Cade Roux..:

SAN - 当然还有集群,但是关于虚拟化 - 您将获得性能影响(可能或可能不值得):

http://blogs.technet.com/andrew/archive/2008/05/07/virtualized-sql-server.aspx

http://sswug.org最近在他们的每日时事通讯中有一些关于它的说明



3> Joel Coehoor..:

我想添加Brent Ozar的这一系列文章:

为什么您的系统管理员希望虚拟化您的服务器

为什么要虚拟化SQL Server?

不应该虚拟化SQL Server的原因

它在我希望的意义上并不具有权威性(来自构建服务器的团队,或某种官方手册),但Brent Ozar非常受尊重,我认为他在这里涵盖所有问题做得很好.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有