分类: 服务器与存储
2008-07-06 16:40:39
“你必须很小心,因为x86平台上现在对I/O虚拟化的支持是最不成熟的,”Iams解释。“Intel和AMD都一直在努力提高,并且它们都在增加对虚拟化I/O的支持,但是还没有完善,这将在未来的18个月到2年的时间内才会出现。在那之前,你都要非常小心,而且关键是理解你的数据库随着时间而表现出的行为。”
决定虚拟化什么
总的来说,数据库的负载越密集,虚拟化带来的性能代价就会越高,Iams说。因此,他补充,x86平台上的DBA虚拟化那些并没有被频繁使用的数据库效果会更佳,并且的确存在很多这样的数据库。
“你可能有一些负载较轻的数据库服务,这些不是非常紧急的工作负载,那么如果你想要更好的利用你的硬件,没有理由你不使用虚拟化来合并这些数据库。”Iams说。“这仅仅需要你更可能多的理解这些工作负载随着时间而表现的行为细节。这意味着理解它们需要用CPU、内存和I/O表示的资源,并且真正的理解这些应用有多么紧迫。然后你就可以做出明晰的决定是否它适合虚拟化。”
但是如果DBA的目标是使用虚拟化来进行数据库合并,记住数据库合并是另外一件事情,并且使用更加传统的方式来合并可能会更加谨慎——比如将数据库表合并到更大的主机——往往更加便宜和容易。在虚拟化和更传统的合并方法之间做决定就意味着对每一种方法的性能代价和好处之间做权衡,他说。
“如果你想要合并数据库,仅仅合并数据库而不是合并这些数据库运行着的物理服务器将会更加明智,”Iams说。“另一方面,如果你真的想要保证这些数据库之间是完全孤立的并且出于一些原因这些数据库是单独管理的,那么使用虚拟化会更明智。但是,再说一次,你需要了解虚拟化将产生的性能代价。”
但是如果是在Unix的平台上会怎样?
在Unix系统中,Iams解释,今天的虚拟化软件被用于动态的改变分配给数据库分片的资源,这在很多情况下非常类似于虚拟机(virtual machine)。这么做的原因是组织结构需要高度灵活,为了适应发生在一年中一些特殊时期的工作负载的尖峰。他说,比如,一个大的零售商可能预见在圣诞节时期的交易量的峰值。
“在Unix系统中,有一些非常先进的功能来在线调整每个分片能够获得的资源而无需关闭数据库,”Iams说。“因此,数据库管理员将非常熟悉工作负载管理软件或者虚拟化管理软件才能开发出策略来在不断变化的基础上分配资源。这就需要DBA花费一定的成本。”
被虚拟化数据的风险
随着越来越多的组织机构实施了面向服务的架构(SOA)——一个开发方法学,它许诺通过将单个的应用功能作为服务来部署取得更大灵活性——出现了很多关于断开以前被密封的(stovepiped或者是siloed)应用之间的绑定的讨论。
并且这也很好,马塞诸塞州Cambridge的Forrester Research的数据库市场分析师Noel Yuhanna说,但是企业需要再三考虑的是如何将准确和最新数据给这些支持服务的应用。这是个很严重的问题,他说,尤其当人们考虑到大量的数据重复以及在企业内部很容易发生的数据错误。
能够保证这些应用或者服务能够快捷、有效的获得正确信息的一种方法是对数据进行虚拟化,Yuhanna解释说。这是一个被Forrester 说成是“建立信息纤维”或者“创建数据服务”的过程,并且这个分析师的公司还报道越来越多的组织机构开始考虑它了。
“SOA的问题是它仅仅谈到了应用但是它没有谈到数据服务。你怎样获得应用的数据是一个重大的挑战,”Yuhanna 说。“实际情况是你必须虚拟化数据并且中间件将变得更加重要。中间件将像一个虚拟化的数据库,它将集成结构化、非结构化以及半结构化的数据,并且为应用提供单一的接触点。”
数据库虚拟化的成功案例
除了在虚拟化数据库工作负载的时候会对性能造成的潜在负面影响之外,有些人使用数据库虚拟化获得了非凡的成功——像Steve Davidek,他是内华达州Sparks市的系统管理员。
Davidek,同时还是惠普用户组Encompass的拥护者的负责人,从去年一月份开始就领导着这个城市的虚拟化项目。Davidek和他的团队正在使用HP Proliant的硬件和VMWare ESX虚拟化平台来虚拟化这个城市的服务器。作为这个项目的一部分,他说,这个城市的公园和休闲部门的数据库操作已经完全被虚拟化了。
现在,Davidek解释,Sparks城的90,000名市民中的任何人无论何时在线登记游泳课或者艺术课,这些交易都会发生在一台虚拟的数据库服务器上,并且人们还可以打电话给系统并且通过电话来签约。
Davidek,将于下周在拉斯维加斯举行的HP技术论坛暨2007博览会上(HP Technology Forum & Expo 2007)上发表虚拟化方面的演讲,说整个系统看起来比以前运行在孤立(standalone )的数据库服务器上更好。
“人们的确感到他们应用和数据库的速度提速了,” Davidek说,他主要使用Microsoft 的SQL Server产品。“我认为虚拟化服务器的确比拥有大量实例的孤立服务器更好的使用了内存和CPU等资源。”
Davidek说这个项目最重要的目标是达到完全的业务连续性和更有效的使用资源。这个系统的管理员对那些决定使用VMWare ESX平台的人有一些建议。
他说,“在开始的时候确保你使用最新的版本,因为以后它很难升级。”