集群介绍
1. 这里的集群架构指的是由多台机器组成一台大机器,单台机器完不成的任务可以多台机器一起来完成。
2. linux集群根据功能划分为2大类:高可用和负载均衡。
高可用集群通常为2台服务器(功能和角色是一样的),一台在工作,另一台作为冗余。当提供服务的机器宕机,冗余将接替继续提供服务,这样就可以提供系统可用的效率。
高可用集群的衡量标准
要保证集群服务100%时间永远完全可用,几乎可以说是一件不可能完成的任务。比如,淘宝在这几年双十一刚开始的时候,一下子进来买东西的人很多,访问量大,都出现一些问题,如下单后却支付不了。所以说只能保证服务尽可能的可用,当然有些场景相信还是可能做到100%可用的。
通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均故障维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%。
具体HA衡量标准:
描述
通俗叫法
可用性级别
年度停机时间
基本可用性
2个9
99%
87.6小时
较高可用性
3个9
99.9%
8.8小时
具有故障自动恢复能力的可用性
4个9
99.99%
53分钟
极高可用性
5个9
99.999%
5分钟
实现高可用的开源软件有:heartbeat和keepalived(推荐使用)
负载均衡集群
需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少是2台。
实现负载均衡的开源软件有LVS keepalived haproxy nginx ,商业使用的有F5 和Netscaler等负载均衡器。优势在于更高的应答量和良好的稳定性。
使用开源软件来搭建的负载均衡,其稳定性依赖服务器的稳定性
———-
keepalived介绍
使用keepalived来实现高可用集群,因为heartbeat在centos6上存在一些问题,影响实验效果。
keepalived通过VRRP(虚拟路由冗余协议)来实现高可用。
在这个协议中会将多台功能相同的路由器(机器)组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色
master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,会认为master宕机了,此时就需要根据各个backup的优先级来决定谁成为新的master.
keepliaved要有3个模块,分别是core, check ,vrrp。其中coremo模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。
用keepalived配置高可用集群
需要2台机器,一台作为master,另一台作为backup。并都安装keepalived,都需要有nginx.
keepalived需要包含一个服务,这个服务用来实现高可用,假如集群中角色出现单点故障,这个服务宕机后,就有问题啦。如果想让该服务实现高可用就需要使用keepalived或者heartbeat软件。搭建高可用集群首先需要keepliaved服务、并让哪一个服务实现高可用。这里使用nginx作为高可用的对象,是因为在生产环境中使用nginx作为负载均衡器,假如nginx一旦出现问题,即使后端的web是正常的,那也是不能访问的。不能出现单点故障。
编辑master的keepalived的配置文件/etc/keepalived/keepalived.conf,清空里面的内容,并加入以下内容
global_defs {
notification_email {
aming@aminglinux.com
} //
notification_email_from root@aminglinux.com
smtp_server 127.0.0.1
smtp_connect_timeout