Chinaunix首页 | 论坛 | 博客
  • 博客访问: 784795
  • 博文数量: 201
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-06 22:16
文章分类

全部博文(201)

文章存档

2011年(1)

2010年(2)

2009年(57)

2008年(141)

我的朋友

分类: WINDOWS

2009-06-04 10:08:28

什么是群集?简单的说,群集(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是群集的节点(node)。一个理想的群集是,用户从来不会意识到群集系统底层的节点,在用户看来,群集是一个完整系统,而非多个计算机系统。并且群集系统的管理员可以随意增加和删改群集系统的节点。

NLB HA
群集

  如上图,由2台服务器(Server1,Server2)组成的群集方式,其中每台服务器的地位是平等的。 都可以为客户端提供服务并且不用其它服务器的辅助。上图中Server3是服务器群集虚拟出来的主机,客户端所能看到的群集只是一台Server3主机。群集中的主机将均衡处理客户端发来的应用请求,以此来实现负载均衡(NLB);如果某一台服务器出现宕机,客户端发来的应用请求将被分配给另外一台服务器,通过这种方式来保障业务应用的高可用性(HA)。

  虽然,根据群集系统的不同特征可以有多种分类方法,但是一般把群集系统分为两类:高可用(High Availability)群集,简称HA群集;性能计算(High Perfermance Computing)群集,简称HPC群集,也称为科学计算群集。在本文中我们只介绍前者。

  HA群集,不难理解,这类群集致力于提供高度可靠的服务。就是利用群集系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。HA群集和负载均衡(NLB)群集之间的界限有时非常模糊,负载均衡群集使任务可以在群集中尽可能平均地分摊到不同的计算机中进行处理,充分利用群集的处理能力,提高对任务的处理效率。在实际应用中,这几种群集类型可能会混合使用,以提供更加高效稳定的服务。如在一个使用的网络流量负载均衡群集中,就会包含高可用的网络文件系统、高可用的网络服务。

  服务器群集技术常见的有Linux中的LVS和Windows中的NLB。NLB即Network Load Balancing,也就是网络负载平衡。Microsoft在所有的Windows Server操作系统上提供这一负载平衡技术。NLB的用途很广,将多台应用服务器通过 NLB的方式捆绑在一起,这样以来 NLB可以根据实际的访问流量均分开来减少各服务器的网络占用及资源占用,所以 NLB 被广泛用于终端服务、Web服务、FTP服务等,用来解决大量并发访问服务问题,帮助用户使用较少的投资获得接近于大型主机的性能。同时,由于实际处理应用请求的服务器变为多台,高可用性也得到了有效的保证。

  大致概括一下群集技术的主要优点,主要包括以下4个方面:

  (1)高可扩展性:群集系统的管理员可以随意增加和删改群集系统的节点。

  (2)高可用性HA:群集中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。

  (3)高性能:负载平衡群集允许系统同时接入更多的用户。

  (4)高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。

  简单说了一下传统的群集技术,我们大致了解了NLB和HA的实现机制。然而,随着服务器虚拟化大潮的到来,也随着虚拟化技术的日趋完善,NLB和HA作为群集技术也得到了发展。

  我们都知道,服务器虚拟化对企业中的IT部门产生了重大影响,借助Hyper-V 与 Windows Server 2008,我们可以将服务器合并到更少的物理机器上,这在资源和成本节省方面无疑有着巨大的优势。在以前,一台物理主机上只能同时运行一套操作系统,引入虚拟化技术之后,我们可以在一台主机上可同时运行多个操作系统,并且它们互不干扰。通过在物理主机上运行一个个虚机,我们对服务器硬件的利用率得到了最大可能的提升,同时,效率的提升也意味着成本的降低。

一台物理主机上运行多个虚机,在成本,效率等方面所具有的优势显而意见,但这种方式也存在着风险管理上的一个大忌,那就是把所有的鸡蛋都放在了一个篮子中。虽然运行在物理主机上的各个虚机相互不受影响,一个虚机宕机不会影响到其它虚机,但如果物理主机发生故障会如何?那其上运行着的所有虚机都将失去响应。为了保证高可用性(HA)我们可不可以实现对虚拟机进行动态迁移?物理机中运行着的一个虚机,或几个虚机,甚至当前物理机中的所有虚机,当它们出现故障时,将虚拟机迁移至别处,以此保障业务应用的连续性。

NLB HA
主机发生故障后,虚拟机迁移。

  在Windows Server 2008中,虚拟机可以通过故障转移群集进行管理,并且可以在虚拟机内部使用故障转移群集以监控并转移VM中托管的工作负载。因为Hyper-V系统上运行着多个操作系统,为了便于说明,我使用术语“来宾”指代Hyper-V VM内部运行在子分区中的OS和环境。而术语“主机”则表示物理机器,它由Hyper-V父分区上的OS负责管理。

  主机可用性解决了服务器合并可能导致的“将所有鸡蛋放入同一个篮子里”的问题。Windows Server 2008故障转移群集可以在Hyper-V父分区(主机)上配置,以便能够监控Hyper-V子分区(虚拟机或来宾)的运行状况并在群集节点间移动。这种配置具备以下主要优点:

  如果正在运行Hyper-V和VM的物理机器需要进行更新、更改或重新启动,则可以将VM移动到群集中的其他节点上。当物理机器恢复服务后再将VM移回原来的机器。

  如果运行Hyper-V和VM的物理机器发生故障(比如故障)或性能严重下降,则Windows故障转移群集中的其他成员将接收该VM的所有权并自动将其恢复到在线状态。

  如果VM出现故障,可以在同一台Hyper-V服务器重新启动,或者移动到另一台 Hyper-V 服务器。由于Windows Server故障转移群集可以检测到这些故障,所以它将根据 VM 资源属性中的设置自动采取恢复措施。凭借检测和恢复自动化,停机时间得以降至最低。

  下图表示在这种情况下可能发生的事件。最初,VM2位于主机A上,然后将VM2移动到主机B。请注意在此移动过程中,配备SAN存储的LUN 2从主机A更改到主机B。为确保高可用性解决方案能够满足您的可用性需求,需要仔细斟酌安放VM的位置。同时考虑容量和性能。

NLB HA
VM2由主机A移动至主机B

Hyper-V基本架构决定了虚拟层作用于服务器硬件上。它的裸金属架构直接用系统处理器执行CPU指令,也就是说,Hyper-V其实是在硬件上直接运行的虚拟系统。由于裸金属架构的虚拟服务器直接支持对称多处理器技术、热插拔内存技术、冗余磁盘RAID等硬件特性,所以对系统的稳定性有很大的帮助。

NLB HA
Hyper-V的基本架构

  2008年随同Windows Server 2008一起发布的的Hyper-V虽然支持高可用性群集功能,不管是有计划的主机维护、还是突发的硬件故障,虚拟机都可以在另外一台主机上快速重启,这个过程中服务会有中断,虽然只是几分钟甚至几秒,但仍会造成服务中断,这对需要连续工作的服务是致命打击。

    而在Windows Server 2008 R2中,Hyper-V 2.0本身支持的动态迁移,使得用Cluster Shared Volumes(CSV)虚拟机可进行实时迁移,据微软宣称,实时的动态迁移(Live migration)过程以毫秒级计算,这远远小于一个TCP响应的时间,系统不会察觉到链接的中断,所以可以忽略不计。Hyper-V管理程序与Windows Server 2008操作系统的Failover Clustering相结合,即使用户拔掉电源插头,所有虚拟机在策略指令下无需用户操作就能在其他节点上自动重启。

  实时迁移的基本步骤:

  1、启动源群集节点和目标群集节点之间的一次实时迁移;(虚拟机只能在群集节点之间迁移)

  2、在目标群集节点上创建一个虚拟机副本,复制源虚拟机上所有内存到目标虚拟机中去;

  3、创建镜像内存页,并从源虚拟机向目标虚拟机反复复制镜像内存;

  4、完成实时迁移之后的最终架构;

  编辑这篇文章时,对于笔者来讲,其实也是一次学习了解Hyper-V的过程。传统的服务器群集大家可能都比较熟悉了,在虚拟化技术逐渐成熟的今天,以前一台台可见的物理服务器,现在都被虚拟成了一条条的“程序进程”。如何保障这一个个虚拟服务器的高可用性,业内的两家大厂VMWare和微软都有着自己的解决方案。在今年年底,微软的Windows Server 2008应该就会正式面世,这将对服务器操作系统领域和虚拟化领域产生怎样的深刻影响,还是让我们拭目以待吧。

阅读(1163) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~