基于linux实现keepalived高可用的集群网站架构

模拟场景:

随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过集群技术(ldirectord)保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?(当然是用keepalived的arrp实现地址偏移来实现最简单啦~)

技术说明:

群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性

高可用集群技术(理论概念)

高可用(High Availability )

HA(High Available), 高可用性群集是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%

具体HA(可用性)衡量标准:

99% 一年宕机时间不超过4天

99.9% 一年宕机时间不超过10小时(目前这个阶段的就可以了,往下的要求就有点高了)

99.99% 一年宕机时间不超过1小时

99.999% 一年宕机时间不超过6分钟

高可用集群技术实现

高可用工作方式:主从方式 (非对称方式)、双机双工方式(互备互援)、集群工作方式(多服务器互备方式)

高可用的资源分类:网络高可用、服务器高可用、存储高可用、服务高可用等

开源高可用解决方案:keepalived:通过实现vrrp协议来实现地址漂移;heartbeat(开源社区项目),cman+rgmanager (RHCS:redhat cluster suite),corosync+pacemaker(大型解决方案,一个用于心跳检测,一个用于资源转移。两个结合起来使用,可以实现对高可用架构的自动管理。)

Keepalived是什么:

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服

务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

Keepalived的特性:

配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能

稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。

成本低廉:开源软件,可直接下载配置使用,没有额外费用。

应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等

支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择

Keepalived工作流程图详解:

如上图,keepalived主要是模块是VRRP Stack和Cheackers,实现HA集群中失败切换(Failover)功能。Keepalived通过VRRP功能能再结合LVS负载均衡软件即可部署一个高性能的负载均衡集群系统。,Cheackers主要实现可实现对服务器运行状态检测和故障隔离。其中ipvs和realserver健康状态检查通过配置文件配置就可以实现,而其他服务高可用则需要通过自己编写脚本,然后配置keepalived调用来实现。

Keepalived运行有3个守护进程。父进程主要负责读取配置文件初始化、监控2个子进程等;然后两个子进程,一个负责VRRP,另一个负责Cheackers健康检查。其中父进程监控模块为WacthDog,工作实现:每个子进程打开一个接受unix域套接字,父进程连接到那些unix域套接字并向子进程发送周期性(5s)hello包。

上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空间(kernel space)。

内核空间:主要包括IPVS(IP虚拟服务器,用于实现网络服务的负载均衡)和NETLINK(提供高级路由及其他相关的网络功能)两个部份。

什么是VRRP协议

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)可以认为是实现路由器高可用的协议,简单的说,当一个路由器故障时可以由另一个备份路由器继续提供相同的服务。

VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。优先级越高,则越有可能成为Master路由器。当两台优先级相同的路由器同时竞争Master时,比较接口IP地址大小。接口地址大者当选为Master。

实现基于keepalived高可用集群:

一、环境准备:centos系统主从两台、yum源、防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信

二、安装步骤:

1、iptables -F && setenforing 清空防火墙策略,关闭selinux

2、两台服务器都使用yum方式安装keepalived服务 yum install keepalived

三、修改配置文件:

1.修改/etc/keepalived/keepalived.conf配置文件内容

2、对glob段进行定义,添加管理员邮箱等

3、对vrrp_instance 进行配置,配置一主一从,定义一个基于虚拟IP的实例

Keepalived配置文件讲解

global_defs { #全局配置

notification_email { #realserver故障时通知邮件的收件人地址,可以多个

[email protected]

}

notification_email_from root_keepalived #发件人信息(可以随意伪装,因为邮件系统不会验证处理发件人信息)

smtp_server 127.0.0.1 #发邮件的服务器(一定不可为外部地址)

smtp_connect_timeout 30 #连接超时时间

router_id KEEPALIVED #路由器的标识(可以随便改动)

}

vrrp_instance VI_1 { #配置虚拟路由器的实例,VI_1是自定义的实例名称

state MASTER #初始状态,MASTER|BACKUP,当state指定的instance的初始化状态,在两台服务器都启动以后,马上发生竞选,优先级高的成为MASTER,所以这里的MASTER并不是表示此台服务器一直是MASTER

interface eth0 #通告选举所用端口

virtual_router_id 51 #虚拟路由的ID号(一般不可大于255)

priority 101 #优先级信息 #备节点必须更低

advert_int 1 #VRRP通告间隔,秒

authentication {

auth_type PASS #认证机制

auth_pass 5344 #密码(尽量使用随机)

}

nopreempt #非抢占模式

virtual_ipaddress {

172.17.10.100(设置的虚拟VIP)

}

}

(backup从)配置文件设置

这样就实现了地址漂移了(意思就是master主机器不行了,设置的虚拟VIP会飘到backup从机器上,这样的话在主从机器上提供同样的服务,这样主机器坏了也不影响服务,实现了高可用。

时间: 2024-11-09 01:18:21

基于linux实现keepalived高可用的集群网站架构的相关文章

debian下完成 haproxy +keepalived 高可用web集群架构

参考文章:http://ox0spy.github.io/debian/2014/07/01/setup-haproxy-and-keepalived-on-debian-wheezy/ 亲测,没问题,可用

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

Linux基于heartbeat配置httpd高可用服务

Heartbeat是一个基于Linux开源的,被广泛使用的高可用集群系统.我们可以基于Heartbeat构建web高可用服务环境.本文在CentOS 6.5下做了一个简单示例,并对其日志进行了初步分析,供大家参考. 有关Heartbeat的相关知识,可以参考: Heartbeat 集群组件概述 Heartbeat 安装及配置 一.配置host解析及网络 ###主机名配置,与/etc/hosts中的解析两者配置保持一致 [[email protected] ~]# more /etc/syscon

linux企业常用服务---lvs+Keepalived高可用集群

部署前准备: iptables和selinux没配置,关掉 挂载系统镜像作为本地yum源,修改yum文件 源码包准备keepalived-1.2.13.tar.gz 环境介绍: 主服务器ip:192.168.100.157(keeplived+lvs) 从服务器ip:192.168.100.156(keeplived+lvs) 节点服务器ip:192.168.100.153-192.168.100.155(httpd) 集群vip:192.168.100.95 1.安装keepalived(在两

Linux的shell脚本LvsDR模式启动脚本和模拟keepalived高可用脚本

一.脚本运行前模拟环境 DR:server1:172.25.29.1 ipvsadm  keepalived RS:server2:172.25.29.2 arptables_jf   httpd RS:server3:172.25.29.3 arptables_jf   httpd DR:server4:172.25.29.4 ipvsadm  keepalived 使用脚本前先安装好server1.server2.server3的软件,做好httpd的后端访问页面 二.LVS_DR模式脚本介

Linux中使用keepalived高可用工具解决宕机问题

1. 安装keepalived高可用工具 1.1 切换目录到/usr/loca中 1.2 解压该压缩包tar -zxvf keepalived--1.2.18.tar.gz 1.3 切换目录到解压后的文件keepalived--1.2.18 1.4  yum install -y openssl openssl-devel 1.5 ./configure --prefix=/usr/local/keepalived 编译,将编译文件放到/usr/local/keepalived 1.6 make

keepalived高可用调度器配置详解

一.VRRP概述 1.VRRP协议 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准.VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性. 2.vrrp术语 参考:H3C VRRP技术白皮书 虚拟路由

Haproxy+keepalived高可用、负载均衡安装部署方案

1     环境说明 前端两台haproxy+keepalived互为主从,提供高可用:另外基于不同域名访问不同的虚拟ip实现负载均衡 1.1     环境描述 服务器A(主.从):eth0:10.241.51.245   eth1:192.168.1.9 服务器B(从.主):eth2:10.241.51.246   eth1:192.168.1.10 服务器C(web01):eth0:10.241.51.247 服务器D(web02):eth0:10.241.51.248 VIP1:10.24

keepalived 高可用调度器配置

一.vrrp 概述 1.VRRP协议 虚拟路由冗余协议,是IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议. VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混 乱,准许主机使用单路由器,及时在在实际第一跳路由器使用失败的情形下仍能够维护路由器 间的连通性. 2.VRRP基本术语 3.VRRP工作原理  4.VRRP的主要功能 1.master 路由器的选择功能 2.master 路由器的状态通告 3.VRRP 认证功能 5.VRRP高可用工