免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2212 | 回复: 4
打印 上一主题 下一主题

[集群与高可用] 集群,高可用性,负载均衡 “引用” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-23 13:06 |只看该作者 |倒序浏览
下面以Turbolinux Cluster Server为例简要介绍一下负载均衡集群的工作机制。在集群中有一个主控节点,称为高级流量管理器(ATM)。假设这一集群仅被用来提供一项HTTP服务,其余各节点均被设定为HTTP的服务节点。用户对于页面的请求全部发送到ATM上,因为ATM上绑定了这项服务对外的IP地址。ATM把接受到的请求再平均发送到各服务节点上,服务节点接收到请求之后,直接把相应的Web页面发送给用户。这样一来,假如在1秒内有1000个HTTP页面请求,而集群中有10个服务节点,则每个节点将处理100个请求。这样,在外界看来,好象有一台10倍速度的高速计算机在处理用户的访问。这也就是真正意义上的负载均衡。

但是ATM要处理所有1000个页面请求,它会不会成为集群处理速度的瓶颈呢?由于对于页面的请求的数据量相对较少,返回页面内容的数据量相对较大,因此这种方式还是很有效率的。ATM发生故障,也不会导致整个系统无法工作。Turbolinux Cluster Server可以设置一台或多台计算机为后备ATM节点,当主ATM节点故障时,在后备ATM中会产生出一个新的主ATM,接替它的工作。可以看出,这种负载均衡集群也具有一定的高可用性。

HTTP页面相对是静态的,但有时也需要改动。Turbolinux Cluster Server提供了数据同步工具,可以很方便的把对页面的改动同步到所有提供该项服务的节点上。

下面介绍一下对于高可用性集群与负载均衡集群的组合使用。如果用户有一个由两个节点组成的最小集群,是否可以同时获得高可用性集群和负载均衡集群的效益呢?答案是肯定的。由于高可用性集群适用于提供动态数据的服务,而负载均衡集群适用于提供静态数据的服务,所以我们不妨假设要同时提供Oracle和HTTP服务。用户要在节点A和B上安装TurbolinuxTurboHA和TurbolinuxClusterServer软件。把节点A作为Oracle正常工作的节点,节点B作为Oracle服务的后备节点,这是对TurboHA软件而言。对于ClusterServer软件而言,要设置节点B为主ATM节点,节点A为后备ATM节点,而节点A和节点B同时又都是HTTP的服务节点。

这样一来,节点A和节点B都是身兼两职,而用户同时得到了一个具有高可用性的Oracle服务和一个具有负载均衡功能的HTTP服务。即使有一个节点发生故障,Oracle服务和HTTP服务都不会因此而中断。

但对于同一种服务,是不能同时获得高可用性与负载均衡能力的。对一种服务,要么是只有一份数据,放在共用存储设备上,一次被一个节点访问,获得高可用性;要么是把数据复制为多份,存储于每个节点的本地硬盘上,用户的请求同时发送到多个节点上,获得负载均衡能力。

对于高可用性集群,由于它在设计时的目的就是为了最大可能地减少服务中断时间,因此服务的切换受到很大的关注。当一个节点上的服务故障时,会被很快地检测到并被切换到其他节点上。但在切换时,不能忽略对数据完整性的保护。
在什么情况下数据完整性会被破坏呢?由于高可用性集群中至少有两个节点,连接在一个共用的存储设备上,对于非裸分区而言,如果被两个节点同时读写,就会造成文件系统被破坏。因此就需要利用I/O屏障来防止这一事件的发生。

I/O屏障的目的是为了保证故障节点不能再继续读写某一服务的共用分区,实现的方式有多种。Kimberlite使用硬件开关来实现,当一个节点发生故障时,另一节点如果能侦测到,就会通过串行口发出命令,控制连接在故障节点电源上的硬件开关,通过暂时断电,而后又上电的方式使得故障节点被重启动。

I/O屏障有多种形式。对于支持SCSI Reserve/Release命令的存储设备,也可以用SG命令实现I/O屏障。正常节点应使用SCSI Reserve命令“锁住”共用存储设备,保证其不被故障节点读写。如果故障节点上的集群软件仍在运行,如发现共用存储设备已被对方锁住,就应把自己重启动,以恢复正常工作状态。

论坛徽章:
0
2 [报告]
发表于 2003-05-23 13:08 |只看该作者

集群,高可用性,负载均衡 “引用”

想请大家讨论高可用性集群和负载均衡的集群

另外,请问veritas的vcs是高可用性还是负载均衡的集群软件?

谢谢指导

论坛徽章:
0
3 [报告]
发表于 2003-05-23 14:31 |只看该作者

集群,高可用性,负载均衡 “引用”

我对linux的集群也很感兴趣,不过没有条件做实验,要是有有实践经验的来谈一谈就好了

论坛徽章:
0
4 [报告]
发表于 2003-05-23 17:15 |只看该作者

集群,高可用性,负载均衡 “引用”

veritas的vcs是高可用性
负载均衡的集群软件?有人听说过吗?

论坛徽章:
0
5 [报告]
发表于 2003-05-24 00:04 |只看该作者

集群,高可用性,负载均衡 “引用”

负载均衡不仅与Cluster有关,还与应用关系密切。般来说,Cluster上的应用分为两种类型,一种是Failover(切换)型,另一种是parallel(并行)型。通常,某些应用,例如sybase,单机版的oracle,只能是failover的,因为两台server不能同时读写同一数据。另一些应用,例如Oracle RAC(以前叫OPS),web应用,某些中间件服务,是可以共享数据的,或数据基本独立的,因此可以parallel。

对于运行failover型应用的cluster,肯定无法负载均衡。对于运行parallel应用的cluster,理论上可以负载均衡,但负载均衡的功能一般也不是cluster软件本身完成,而是由clluster前端的网络连接管理来实现。web和中间件的应用可以当前端访问时,由网络负载均衡设备根据某种规则来连接到cluster中的某一server;而oracle RAC应用,由于数据连接是需要保持连接的,所以负载均衡的实现一般是配置好哪些前端客户连接哪一台server。

因此,我认为,谈cluster server软件本身的负载均衡功能是没有太大意义的。

VERITAS的vcs支持failover和parallel类型的应用,也支持oracle RAC(产品名字叫Database Edition / Advanced Cluster)。网络负载均衡的产品很多,V也有一个产品叫Traffic Director,就是干这个用的。Compaq Tru64的TruCluster本身好像就有这个功能,几台服务器对外只提供一个IP地址,但真这么用的人不多,因为一般应用都是用Oracle RAC,由cluster自动分配连接,可能造成性能的下降。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP