用双机高可用集群还是使用负载均衡集群
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用双机高可用集群还是使用负载均衡集群
北京麒麟博峰科技有限公司
2010年11月
1
目录
第一章问题描述 (1)
第二章基本的技术知识 (1)
2.1.HA高可用集群 (1)
2.2.Load Balance负载均衡集群 (2)
第三章该使用哪种集群 (3)
I
第一章问题描述
系统工程师通常会对如何使用HA高可用集群,即“双机”,和负载均衡集群,比如KYLIN Netsphere等负载均衡设备,产生疑惑不解,通常在构筑服务器集群的时候,不合理的设计造成系统的整体效率不高、设备浪费或者维护的不便利,本文试图用最简单的方式解惑。
要解决这些问题,不惑者需要正确自我解答以下问题:
1.系统的并发是否是考虑的主要问题之一?
2.以后并发用户会不会急剧增长?
3.运营的软件是否是一个标准的三级架构或者多级架构(N-Tier)?
4.运营的软件的端口是否对应不同的业务?
5.不同的业务软件是否运行在不同的服务器设备上?
6.资金是否成为问题?
第二章基本的技术知识
2.1 HA高可用集群
HA(单字母发音, H A 不是“哈”)高可用集群主要是为了“保护”“特定资源”所开发的一种集群技术,这里所说的“特定资源”包含以下内容:
1)进程;
如果进程被杀死,即从系统角度上看,该进程没有了,那么,HA可以及时发现,并在
另外一个地方将部署好的进程启动;如果该进程僵死,即不工作了,可能由于软件设计
的不好,出现了死循环或者其他原因,但该进程还存在,这时HA是不能发现的,所以,有时候即使进程不响应了,HA并没有切换;
解决这个问题,只能依靠应用软件提供监控接口,并将该接口公布给HA开发商。我们
在市场中发现有些厂商的基于数据库的特别好使,有些公司的产品出现同样状况时却像
傻子一样,这个可能是不同的HA厂商和数据库厂商合作的深浅度有关。
2)网卡;
如果网卡完全挂掉,HA是可以发现并采用行动,但是工作的不正常,这种情况HA可
能不能发现,尤其是抖动的情况发生;
3)存储;
1
方案应用部存储挂掉了,可以监控到,但是某个扇区出现写错误,则不能发现,除非应用软件有对
外有接口和HA能拿到这个接口;
4)主机;
主机挂掉,HA必须能监控,否则,就退货。
HA是一个纯软件的产品,其部署不需要单独的一台服务器,而只需要将其不同平台的软件配对正常安装即可。根据HA宣称的部署模式,可以1+1(双机)、N+i多备、环备等策略。
无论哪种部署模式,备机上的保护的资源永远不会工作,也就是说,HA最基本的部署模式是主备模式(Active/Standby或称Active/Passive),所谓的主主模式,实际上是在另外一套设备上跑“不同的应用”,Mysql、Oracle等数据库,虽然是同一个运营程序,但是其通过不同的服务实例(数据库)实现区分不同的应用。
HA集群要求集群内的服务器硬件的相似度要几乎达到100% 。
2.2 Load Balance负载均衡集群
Balance(KYLIN Netsphere)负载均衡器实现负载均衡集群。
Load
以Web Server为例,如果有10000个对一台Web Server的访问,而该服务器只能支撑4000个,这个支撑的概念是从CPU负荷、网卡吞吐和内存使用等情况综合得到的,如何保证还有6000人的访问?我们可以再增加2台服务器,这样就可以。
不过,这里有个很大的问题,因为每台服务器都有一个IP地址,比如如果是在一个学校了,你可以让大一大二访问A,大三大四访问B,研究生访问C,这样也许可行,但如果面对公众用户,怎么办?这仅仅是一个问题,如果大一大二的服务器坏了,怎么办?
解决这个问题的关键之一就是使用虚拟IP( VIP)技术,该IP统一对外服务,大一、大二、大三、大四、研究生都可以访问这个IP地址,确保管理上的方便。
负载均衡集群就是透过这个VIP,将上述种类的应用服务器统一管理,即做成一个“集群”,或者说成为一个“工作组”,其实这几个概念都是一样的。
但必须强调,集群内的每台应用服务器包含的对外服务要绝对的、完全一样,即完整克隆,否则访问就会出错。
但是,这里只是要求的是特定的服务,并不要求服务器完全的相同,甚至一点都不同都行,比如一台Unix服务器和一台PC服务器,只要上面部署的应用相同。不过,上面部署的应用种2
方案应用部
类,并非说,A机和B机完全一样,如果有多个集群组比如集群X和集群Y,A/B/C可以同时属于集群X,B/C可以属于集群Y,但是,由于两个集群在B/C上有重叠,我们要确保两个集群的应用在这个B和C上的协议和端口不能完全一样,否则将运行不了。
如果集群内一台服务器挂掉,则集群可以自动将这台服务器从集群中移出,而不会将客户的访问转发到已经损坏的设备上,这点处理,和HA有点相似。判断如何挂掉,一般采用以下:
1)对主机的Ping;
2)对协议端口的打开测试;
3)对应用的跟踪;
4)对服务进程的监控;
负载均衡集群作为系统的咽喉,是关键中的关键,所以,KYLIN Netsphere负载均衡器内嵌了一个对自己应用进程管理的小型高效HA软件,其可以及时地发现自己的问题,而将集群服务切换到另外一台KYLIN Netsphere负载均衡器上。
第三章该使用哪种集群
我们把应用服务器的应用种类分成:主动式、被动式。
主动式是指,进程一启动其就开始不停的工作,比如备份软件等,只有管理员对其访问;而被动式是指,进程一启动,就开始等待外界的访问,比如Web Server、Media Server等,其会接受大量的访问。
特别的,我们对数据库服务器也进行了划分:事物处理和只读服务。
事物处理指在访问的SQL语句中,有Insert/update/select等操作,而只读的SQL语句则只有select。
所以,如果是从保护的角度看,则应选择HA高可用集群,但如果是被动式应用服务器或者是只读服务的数据库服务器,那么,就应该选择负载均衡集群了。
当然,不管技术如何把关,总之还要看看老板口袋里有多少钞票,在负荷量不是很大,老板又不能多拿出几万块钱,我想,上HA集群或者上“人工智能”集群,是一个不错的选择。当然,如果当初预算几十万的负载均衡设备,现在削减预算,那么,价格便宜量又足的KYLIN Netsphere将是一个不错的选择。
3