云计算 频道

解决SQL Server数据库虚拟化挑战

  【IT168 技术】毫无疑问,虚拟化技术已经成为目前我们关注最多的话题之一。它的出现对于IT运营以及企业业务运转产生了巨大和深远的影响,同时节省了人力与物力。但是对于数据库虚拟化来说,比如SQL Server,分析师告诫我们还有一些潜在的风险。

  O’Kelly Associates的首席分析师Peter O’Kelly告诉我们,在IT行业里总是有这样那样的浪潮或者说是趋势,而现在的主流说法就是虚拟化应该能够做所有的事,它对于各个方面都是有好处的。没有一件事能做到这一点,虚拟化当然也不例外。现如今我们会发现虚拟化也是要具体问题具体分析,它并不一定适合所有的场景。

  让我们回到数据库的话题上,虚拟化技术对于普通数据库来说并不一定就合适,因为它可能会干扰到数据库管理系统的数据访问优化功能,在虚拟化大规模部署之前,这一功能的最初设计是直接与数据存储设备相联系的。

  “添加虚拟存储之后,它可能会导致更多的磁盘访问操作,磁盘访问是以毫秒单位计算的,而内存访问是以纳秒单位计算的,所以虚拟化导致的后果将会非常严重,” Peter O’Kelly说:“启发式逻辑将被打破,优化器将不会如期望的那样工作,这肯定会引起一系列的问题。”

  Gartner公司的分析师Chris Wolf认为,在数据库虚拟化环境中,内存将成为“阿基里斯之踵”,从历史经验来看,在涉及到内存管理的情况下,人们遇到问题的几率将大大提升。例如,几年前hypervisor是利用软件来模拟物理内存的,这势必会导致性能瓶颈,最终的响应时间必然会延长。

  然而在2009年的下半年,AMD开始在硬件上引入了AMD-V Rapid Virtualization Indexing技术,同时Intel在去年也发布了Extended Page Tables。根据Wolf的介绍,这些技术将使得虚拟机能够在内存中管理它们各自的物理页面表。这就取代了软件的形式,从而解决了性能瓶颈问题。因此,几年前当人们说SQL Server虚拟化的时候,总是运行的不够流畅,但是现在这已经不是问题了,因为新的架构已经到来了。

  SQL Server虚拟化的另外一个问题就是内存争用,SQL的运行会占据大量的内存,你分配多少它就占用多少,所以资源共享将出现问题。这也就是为什么在一个物理服务器上,人们必须进行相应的调整,分配需要的内存资源而不是想要的内存资源。

  幸运的是,调优是很直接的。因此Wolf建议基础设施管理人员和SQL Server DBA团队可以经常碰头,进行具体问题的讨论以解决这一难题。

  除内存资源共享之外,同样需要I/O优化。举个例子,Wolf提到vSphere 2.1,在这一产品中VMware引入了Paravirtual SCSI技术:“它是一个全新的存储驱动器,能够为存储访问提供加速的I/O,除此之外他们还推出了一个新功能——存储I/O控制,它能够为特定的应用排定存储访问顺序,所以就不会出现一个应用占据所以I/O的情况。”

  Concentrated Technology公司的IT分析师Greg Shields同样非常关心调优的问题,他表示目前尽管所有的设备都能够实现虚拟化,但是部署仍然是存在着不少的挑战。他说:“在我的经验看来,大多数IT专业人士在容量管理方面都做得不够好,当虚拟化还没有诞生的时候,经验教会人们凭直觉来办事,比如内存的供应。在进行服务器优化时,人们往往认为是网络出现问题,但是其实这可能是进程资源缺乏导致的。”

  根据Shields的说法,针对SQL Server这种高利用率的产品,特别需要的是帮助DBA将数据转化成真正意义上智能的工具。这样的工具能够为DBA提供更好的洞察力,也就意味着你不需要再整合那么多的机器了,甚至某些情况下,一个物理机上只需要一个虚拟服务器。

  Shields强调,虚拟化的力量十分强大以至于现在进行虚拟化部署的成本已经很低,所以这对于SQL Server来说是非常好的。他说:“目前,我们拥有正确的架构,所以没有理由不能在虚拟机环境中运行SQL Server负载。我们的许多客户在他们的大型数据库上都进行了虚拟化的部署,我的理念就是在x86环境下,所有的应用都应该将虚拟化当做默认的平台。”

0
相关文章