Linux集群的虚拟化技术面临的挑战如今在IT工业中,虚拟技术的发展已经蓄势待发,但在Linux集群中却难以成功。
Beowulf 工程的创始人之一Donald Becker说,这是一件令人遗憾的事情,因为该系统仅提供一个没有任何意义的虚拟选项。
Becker 说,Linux集群系统应该更加注重虚拟技术以及高可行性的发展,并在他的采访中说明了理由。
同时他对改用Linux集群的对称多处理用户提出了一些建议。
除了他在Beowulf中的角色以外,Becker 还是Scyld软件的创始人以及主要科学家。
他还刚刚加入了本站的专家组,并作为一个特邀专家来回答用户的有关Linux集群以及服务器的问题。
在Linux集群技术中有什么最新的进展吗?Donald Becker:现在,集群技术中的发展热点是虚拟技术。
两个著名的传统虚拟技术系统是VMWare和Xen。
VMWare仿效并模拟个人电脑的硬件设备。
这使得它可以在自己的OS中运行几乎所有的操作系统。
然而,虚拟技术发展的一个缺点是它经常暗含、依赖一些大的上层技术。
结果,VMWare 模仿一些上层技术从而没有什么机会来优化系统。
Xen是一个同时运行多个操作系统的系统管理程序。
它不是全面的模仿,从而减少了对上层技术的依赖。
但是,它仍然需要优化它的核心技术。
Linux集群上的虚拟技术与其他的方法有什么不同?Becker:VMWare 和Xen二者都设想,它们可以运行并全面安装多个内核。
运行集群就提供了不被虚拟技术所限制的机会,创造一个仅仅运行应用程序必需条件的轻松环境。
当系统服务器有一个任务需要主要的网络终端来完成,这时该计算机终端只需要运行该应用程序,这样就可以提高工作效率,这也正式和传统的虚拟系统的不同之处。
◆一些IT实业派说,他们用对称多处理(SMP)系统进行高强度的数据计算。
这些技术在移植Linux集群时会遇到那些挑战呢?Becker:这个问题的答案很大程度的取决于你所运行的应用的应用程序。
最早的进入集群的应用程序的类型是用户参数的执行系统。
在该模型中,多个相互独立的应用程序是运行在不同的数据处理机上。
如果对称多处理(SMP)系统被应用是基于它对单进程工作的高效率,Beowulf的集群将是一个不错的替代品。
然而,如果对称多处理(SMP)系统是基于共用存储器多进程工作,那么可能致使应用程序的结构复杂化。
一个传统的应用SMP的场合是转换型数据库。
这是一个精细通讯及锁定在SMP上运行的特殊情况,但在集群上可以取得同样的结果。
所以需要作细致的分析以决定SMP移植进集群是否是可行的。
大部分的程序不能兼容于这两个极端。
◆Linux集群能够最终取得高可行性(HA),还是只能保持其固有的复杂性?Becker:可量测性并不排除其高实用性,所以Linux集群能够取得高的实用性(HA)。
高实用性(HA)是基于对商务上的应用程序及数据等的稳定的支持上。
计算机程序等的正常运行时间的标准应该在99.999%以上,也就是说一天最多只能有一秒钟的停工。
经典的高效集群配置包括两个服务器,能够分别了解对方的状态并共用一个存储子系统。
如果任何一个服务器出现故障,则另一个将会承担所有的工作。
高效集群取得稳定的可靠性是通过故障排除、负载平衡、赘余处理以及其他的一些方式来将两台或多台服务器连接在一起,从而减少必然的或偶然的储存损耗并且共用存储设备。
由于它们的绝对容量的限制,大的集群很可能频繁的出现问题,所以就需要设计如何处理这些问题的程序。
然而,这种设计不会自动发生,现在市场上的很多工具都没有解决这种问题。
设计周全的子系统,例如一些具有很好的管理能力的商业评定的系统,能够处理增加的可量测性。
这就意味着测量各种各样的参数并避免那些多如牛毛的问题,这些问题经常发生在一个终端占据了大量的存储页面或系统文件数据而导致其他的终端无法工作时。
在Linux集群系统中取得高效性有哪些途径呢?Becker:在集群系统的配置中,多个服务器在同一系统是通过中央控制点来管理的。
这代表高效性状态的一个明显优势,因为有很多服务器可以进入的备份资源,这就允许了24 x 7的可行性,错误维护,对于分散应用程序的中央管理,对大型数据资源的处理能力以及动态网站出版和灾难修复。
选择一种适当的方法来保证停机期以及重新启动期的数据完整性是十分重要的。
不幸的是,不是所有的选择都可以提高可靠性以及保持数据完整性。
所以,在工作时合理的选择你的执行程序是很重要的。
一些非商业性的集群系统创造了一个局部的单一系统设想,通过一下方式完成:请求网络虚拟内存;或全球同一的文件系统;或进行一个明晰的系统移植。
然而,这种设计无法很好的处理错误问题,因为任何一台终端出现问题时,系统必须花费一定的时间去修复或者停止所有和这台及其关联的程序。
一个好的解决方法是保证集群的主要终端持续运行。
对于大的安装系统来说,要保证一个主要终端通过常规的设备备份和灾难恢复;或者同时多个主要终端的方法。
换一种说法,计算机终端可以加入或离开集群,而不影响基础系统即使是在它之上的应用程序已经停止的情况下。
服务器虚拟化集群的优缺点分析服务器虚拟化最显著的功能之一就是可以在主机集群内瞬间迁移虚拟机(VM)、减少服务器或应用系统的停机时间。
虽然每个主要的hypervisor都具有这个功能,但每个厂商实现集群方式却有差异。
在使用微软Hyper-V搭建的测试环境中,通过构建主机集群环境,我节省了无数的服务器停机时间。
但是,这个技术也引起了一些问题。
为此,专家阐述了服务器虚拟化集群环境最重要的三个优缺点。
服务器虚拟化集群优点一:主动的风险回避我相信,服务器集群的最大优点是它可以主动将VM从一个主机迁移到另外一个主机。
这样的话,就可以提高服务器和应用系统的运行时间。
在我的环境中,当内存不足、CPU负载偏高或者虚拟主机遇到较高的I/O压力时,我会收到警报。
如果我不能确定真正的原因或者系统需要重启,我就可以主动将VM迁移到集群内的其他主机。
如果这是一个单机,或者说,在主机重启期间,VM不可以关闭;如果重启之后,问题依然存在,我就不得不延长VM的停机时间直到我找到了问题的起因。
但是,在虚拟主机集群中,VM就可以被迁移到其他的主机直到问题解决。
服务器虚拟化集群优点二:反应性容错因为集群中的主机监控着所有VM的活动,因此,当一个节点失效时,失效节点的负载就会被指派到另外一个替代的主机。
如果需要较长时间解决失效主机的故障,只要替代它的健康主机有足够的资源,VM就会正常工作。
在我的环境中,如果一个主机失效,VM会自动迁移到另外一个节点。
虽然迁移的过程并不平滑,但工作负载自动变化几乎没有停顿。
服务器虚拟化集群优点三:主动的管理我在一个7*24的组织中工作,因此,打补丁和升级工作就必须采取非常严格的管理。
正常情况下,协调1—2台物理主机的停机时间已经比较困难,而要关闭位于同一个物理主机的30多个VM的复杂性就会呈指数增长。
自从切换到单机之后,我妻子就不用担心我要在周日早上1:00-6:00去升级虚拟主机,那个时候,我可以呆在家里休息。
利用虚拟主机集群,当某个主机打补丁和重启的时候,其上的VM迁移到替代的主机。
打完补丁,VM再迁移到原来的主机。
这样,就允许我们在早上极短的时间内,不用停掉整个系统,完成集群的升级。
集群式主机环境的缺点虽然主机集群环境有令人瞩目的优点,但它同样存在一些实施和管理上的缺点。
服务器虚拟化集群缺点一:实施和配置的复杂性配置复杂可能是集群的最大缺点。
建立集群框架、管理主机间的连通性、配置共享存储都不是简单的任务,可能涉及到组织内部多个团队。
你可能不害怕增加的复杂度,然而,很大程度上,都是技术性的工作;但是,随着复杂度的增加,你可能会遗漏某些东西从而影响系统的稳定性。
服务器虚拟化集群缺点二:更新和升级的不利因素升级到更新版本的产品和硬件组件也可能引起困难。
因为,虚拟主机集群连接多个系统,各组件间发生着大量的、复杂的交互。
以更新主机上的多路径I/O(MPIO)驱动为例,该操作会影响整个集群。
首先,它影响节点转移逻辑单元号(LUN)到其他节点的效率。
同时,在更新MPIO驱动之前,集群中所有主机的HBA卡的Firmware都需要升级。
如果FW不用升级,那也必须首先安装HBA卡的驱动。
如果是单机,这可以通过1-2次重启解决。
在集群环境中,协调多个虚拟主机服务器则较为困难。
升级实际的虚拟主机软件一定是一个具有挑战性的任务,因为集群节点的交互以及不同软件版本支持(比如,SCVMM、Protection Manager等)。
一般情况下,厂商会为这些复杂升级提供详细的、一步一步的操作操作指南;同时,大多数情况下,都会比较顺利。
服务器虚拟化集群缺点三:集群成本因素成本是另外一个主要的考虑因素。
要实现一个虚拟主机集群环境,你需要复制部分基础架构并同时保持虚拟机与主机的比例。
此外,大部分厂商的实现需要一个SAN或者独立的磁盘子系统。
开源iSCSI或者廉价的磁盘阵列可能是个精明的选择,但这些选项可能存在性能和稳定性的问题。
以我的经验,在重要的基础架构组件上选择廉价的路线会产生问题,造成绊脚石。
就因为选择了一个特殊的配置能够工作并不意味着就满足了项目目标。
如果管理部门对成本感到担忧,你可以解释给他们虚拟主机集群环境可以提高正常运行时间、提供更好的服务。
依我看,如果正确实施,这种配置就完全对得起付出的成本。
最后,每个组织不得不判断虚拟主机集群环境是否适合自己业务系统模式。
虽然虚拟主机集群环境引入配置的复杂度、升级问题和潜在的额外成本,但是,你的环境可以从加强的服务器或者应用系统可用性和更好的管理上获益。
尽管有潜在的困难或不利因素,但是,我相信实施虚拟主机集群所付出的努力和成本是值得的。
我们可以保持有关利弊的争论,但是,你可以权衡你是否要实施虚拟主机集群。
虚拟化是新型集群随着企业应用服务器越来越多地开始应用虚拟化技术,企业用户发现,除了提高计算资源利用率之外,虚拟化技术还是其他许多优点。
虚拟化应用不仅与纯粹的集群应用一样具备高可用性、近期服务器备援、集群服务器分区等特点,而且成本和复杂性都更低。
更好的资源使用、降低数据中心能耗和冷却以及提供更多可管理的应用等因素使虚拟化成为备受用户青睐的解决方案。
随着IT部门越来越熟练使用虚拟化应用,他们也可以更好地处理负载均衡和可用性等问题,而这些都是集群解决方案无法涉及的领域。
的确,虚拟化技术将继续补充——有时候是成本更低的补充——一那些不需要集群可以提供高达十亿分之一秒级的备援恢复功能的应用。
芝加哥埃森哲公司数据中心咨询师Anurag Chauhan表示:“现在,企业需求日益变化、再加之IT部门长期以来降低成本的压力,所以我们必须基于工作负载对基础架构资源进行扩展。