虚拟化Microsoft SQL数据库服务器

我的公司正在寻求虚拟化我们的Microsoft SQL服务器。 我读到另外一个问题,就是虚拟机的数据库遭受了IO瓶颈,这对我们来说并不是很好。 但是,我想知道是否因为我们使用微软的HyperV,微软服务器和微软的SQL,微软有这些优化,像物理机一样好?

谢谢

微软有这些优化工作如物理机一样好?

是的,MS – 非常接近。

主要的问题是,它只有在小型装置中才有意义。 当你的虚拟SQL Server需要自己的机器和精心布置的磁盘设置的时候 – 除了小容量的小型SQL实例之外的任何东西 – 没有别的东西真的放在那台服务器上。

我在虚拟化平台上运行SQL服务器。 在该机器12中的20个磁盘中专用于SQL服务器(用于日志和数据,包括tempdb-从VHD加载OS)。 下一次升级将达到极限 – 即使是现在它是我的可用64GB的16GB内存最胖的虚拟机。 一旦我需要升级….它有什么意义?

使用当前的技术,您只能使用4个虚拟内核–16个使用Hyper-V 3(明年即将推出)。 这对于数据库分析并不是很重要。 如果您进行OLAPtypes的处理,使用Hyper-V进行可视化可能无法充分扩展。

因此,主要问题不是MS不能接近可比较的硬件,而是SQL Server可以变得如此之大,以至于可比硬件在一个硬件层面上意味着1个SQL Server,而且不能像硬件那样扩展VM ,可悲的是。

现在的虚拟机pipe理程序可以提供与底层物理硬件几乎相同的性能,只要性能在物理硬件上,并且不会在同一硬件上放置太多虚拟机; 所以,如果您拥有足够的CPU / RAM,并且确保此虚拟机的数据磁盘不与其他虚拟机共享,虚拟化本身不会影响性能。

对于中小型工作来说,这几乎总是足够的; 但是对于大型工作负载,您确实希望SQL Server在物理硬件上运行,主要有两个原因:

  1. 虚拟化硬件只能扩展到一定水平,Hyper-V不能超过4个虚拟CPU,使用ESXi的虚拟CPU不能超过8个。
  2. 如果您打算将虚拟化主机的所有物理资源分配给单个虚拟机,则可以直接在物理硬件上运行该虚拟化主机,并删除(less量)虚拟化开销。

简单的回答:无论是什么样的虚拟机,都可以匹配物理服务器的IO性能。

长答案:这真的取决于负载。 如果您是一个由80个用户组成的公司,而您的SQL服务器正在提供一个会计应用程序,一个SharePoint实例以及其他一些随机的业务线应用程序,我怀疑您会看到很多性能问题。

如果这个SQL服务器正在为成千上万的用户服务,或者有一些密集的应用程序运行在数千次的查询和计算/秒之上,你将会看到巨大的性能。

我看不出为什么你不应该虚拟化数据库。 即使一个SQL服务器需要一个整个虚拟机pipe理程序…

是的,虚拟化总是带来一些性能损失。 然而,每一个版本的损失越来越小,我认为今天这一点与您从虚拟化服务器获得的所有其他好处相比几乎没有什么影响。 考虑高可用性和灾难恢复,当需求突然增加时,可以临时将公共云资源添加到您的基础架构中,轻松部署新服务器。

另外,我也看到每个人都提到vCPU的限制。 两点意见:一般的经验法则; 不要将更多vCPU添加到虚拟机,那么某些主机/虚拟机pipe理程序上有可用的核心。 所以,如果你的主机有8个核心,你将需要8个vCPU。 其次,vSphere 5 Enterprise Plus支持每个VM最多32个vCPU。

我曾经体验过的所有虚拟化技术都会带来相当大的性能下降,特别是在IO方面。 我永远不会在虚拟机上运行沉重的数据库。