企业实战(3)-主从实现基于Keepalived高可用集群网站架构 推荐
2017-11-25 10:34
746 查看
企业实战:逐步实现企业各种情景下的需求
企业情景三:
网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?
项目三:主从实现基于Keepalived高可用集群网站架构
实现keepalived企业级高可用基于LVS-DR模式的应用实战:
一、环境准备:
两台centos系统做DR、一主一从,两台实现过基于LNMP的电子商务网站
二、安装步骤:
1、两台服务器都使用yum 方式安装keepalived服务
2、iptables -F && setenforing 清空防火墙策略,关闭selinux
实现前分配各个角色
三、配置基于DR模式的LVS负载均衡集群:
企业应用
(1)实现keeaplived故障通知机制
在企业中,高可用服务,是保证整个系统稳定性的重要前提,确保高可用服务能正常工作和运转,也是非常重要的工作。除了服务上线前的充分测试之外,也需要确保对高可用服务的监控机制,keepalived 自身具备监控和通知机制,可在发生主从切换、故障转移时,通过自定义命令或者脚本,实现通知功能,从而让管理员在第一时间得知系统运行状态,确保整个服务的稳定性和可用性。
可在配置文件中,在instance配置中,通过keepalived 通知功能notify,可实现定制化脚本功能,如下所示:
vim /etc/keepalived/notify.sh[url=mailto:br/>#!/bin/bash
contact='root@localhost'
#!/bin/bash
contact='root@localhost'
mailsubject="$(hostname) to be $1: vip floating"
mailbody="$(date +'%F %H:%M:%S'): vrrp transition, $(hostname) changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
exit 0
;;
backup)
notify backup
exit 0
;;
fault)
notify fault
exit 0
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
vrrp_script chk_sshd {
script "killall -0 sshd" # cheaper than pidof
interval 2 # check every 2 seconds
weight -4 # default prio: -4 if KO
fall 2 # require 2 failures for KO
rise 2 # require 2 successes for OK
}
}
企业情景三:
网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,但对于前端负载均衡器来说,是个比较大的安全隐患,因为当前端负载均衡器出现故障时,整个集群就处于瘫痪状态,因此,负载均衡器的可用性也显得至关重要,那么怎么来解决负载均衡器的可用性问题呢?
项目三:主从实现基于Keepalived高可用集群网站架构
实现keepalived企业级高可用基于LVS-DR模式的应用实战:
一、环境准备:
两台centos系统做DR、一主一从,两台实现过基于LNMP的电子商务网站
二、安装步骤:
1、两台服务器都使用yum 方式安装keepalived服务
2、iptables -F && setenforing 清空防火墙策略,关闭selinux
实现前分配各个角色
机器名称 | IP配置 | 服务角色 | 备注 |
---|---|---|---|
lvs-server-master | VIP:172.17.252.110 DIP:172.17.250.223 | 主负载均衡器 | 开启路由功能 配置keepalived |
lvs-server-backup | VIP:172.17.252.110 DIP:172.17.251.37 | 从负载均衡器 | 开启路由功能 配置keepalived |
rs01 | RIP:172.17.252.87 | 后端服务器 | 网关指向DIP(桥接) |
rs02 | RIP:172.17.250.45 | 后端服务器 | 网关指向DIP(桥接) |
主(master): 1、修改keepalived主(lvs-server-master)配置文件实现virtual_instance vrrp_instance VI_1 { state MASTER #状态情况 interface eth1 #接口 virtual_router_id 51 priority 100 #权重 advert_int 1 authentication { auth_type PASS auth_pass magedu } virtual_ipaddress { 172.17.252.110 #VIP } } 2、修改keepalived主(lvs-server-backup)配置文件实现virtual_server virtual_server VIP 端口 { delay_loop 6 ld_algo rr lb_kind DR protocol TCP real_server 172.17.252.87 80 { #RIP weight 1 TCP_CHECK { connect_timeout 3 } } real_server 172.17.250.45 80 { #RIP weight 1 TCP_CHECK { connect_timeout 3 } } 从(back-up): 1、修改keepalived从(lvs-server-backup)配置文件实现virtual_instance vrrp_instance VI_1 { state BACKUP #状态情况 interface eth1 #接口 virtual_router_id 51 priority 98 #权重,注意从要比主的权重小 advert_int 1 authentication { auth_type PASS auth_pass grr02 } virtual_ipaddress { 172.17.252.110 } } 2、修改keepalived从(lvs-server-backup)配置文件实现virtual_server virtual_server VIP 端口 { delay_loop 6 ld_algo rr lb_kind DR #LVS-DR模式 protocol TCP real_server 172.17.252.87 80 { weight 1 TCP_CHECK { connect_timeout 3 } } real_server 172.17.250.45 80 { weight 1 TCP_CHECK { connect_timeout 3 } }
企业应用
(1)实现keeaplived故障通知机制
在企业中,高可用服务,是保证整个系统稳定性的重要前提,确保高可用服务能正常工作和运转,也是非常重要的工作。除了服务上线前的充分测试之外,也需要确保对高可用服务的监控机制,keepalived 自身具备监控和通知机制,可在发生主从切换、故障转移时,通过自定义命令或者脚本,实现通知功能,从而让管理员在第一时间得知系统运行状态,确保整个服务的稳定性和可用性。
可在配置文件中,在instance配置中,通过keepalived 通知功能notify,可实现定制化脚本功能,如下所示:
notify_backup "/etc/keepalived/notify.sh backup" notify_master "/etc/keepalived/notify.sh master" notify_fault "/etc/keepalived/notify.sh fault" ``` 脚本示范:
vim /etc/keepalived/notify.sh[url=mailto:br/>#!/bin/bash
contact='root@localhost'
#!/bin/bash
contact='root@localhost'
mailsubject="$(hostname) to be $1: vip floating"
mailbody="$(date +'%F %H:%M:%S'): vrrp transition, $(hostname) changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
exit 0
;;
backup)
notify backup
exit 0
;;
fault)
notify fault
exit 0
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
(2)实现keeaplived自定义脚本功能 在配置文件中,可实现以下配置,定义一个脚本,并在对应的实例instance中调用,之后就可通过手动建立down 文件,使得keepalived 实例减少权重,实现主从切换,常用于在线修改keepalived 配置文件时使用 脚本示范: ```vrrp_script chk_down { script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0 " interval 2 # check every 2 seconds weight -5 } ``` 对应实例中调用
track_script { chk_down }
在配置文件中,也可实现以下配置,定义一个脚本,并在对应的实例中调用,也可以用于检测服务是否有异常,异常的话进行切换。 脚本示范:
vrrp_script chk_sshd {
script "killall -0 sshd" # cheaper than pidof
interval 2 # check every 2 seconds
weight -4 # default prio: -4 if KO
fall 2 # require 2 failures for KO
rise 2 # require 2 successes for OK
}
track_script { chk_sshd
}
主从实现完成,若想要实现主主方式,可以理解为互为主从,一个server端配置为主从,另一server端也配置为主从(注意IP的变换以及权重值) 企业实战系列,逐步了解,逐步提升,不足之处烦请各位大佬指出(抱拳)
相关文章推荐
- 项目实战3—实现基于Keepalived+LVS的高可用集群网站架构
- 企业实战(2)-实现基于LVS负载均衡集群的电商网站架构
- 企业实战(4)-实现基于Haproxy负载均衡集群的电子商务网站架构
- 基于keepalived实现多种模式的高可用集群网站架构
- 实现基于Keepalived高可用集群网站架构的多种方法
- 基于云端虚拟机的LVS/DR+Keepalived+nginx的高可用集群架构配置(更新nginx代理功能) 推荐
- 企业实战-实现基于LNMP的电子商务网站
- 基于Keepalived实现LVS双主高可用集群 推荐
- 企业实战(1)-实现基于LNMP的电子商务网站
- 企业集群平台架构实现与应用实战(HAproxy+keepalived篇) 推荐
- 企业实战-KeepAlived+Redis+Haproxy实现主从热备、负载均衡、秒级切换
- 【APP & Web架构】企业web高可用集群实战之apache整合tomcat实现tomcat负载均衡集群+session 推荐
- 【APP & Web架构】企业web高可用集群实战之haproxy篇(一) 推荐
- 基于LVS-DR模型实现keepalived的主从架构
- 分别实现基于LVS-DR模式和LVS-NAT模式的keepalived的主从架构
- 基于amoeba+keepalived+mmm实现mysql读写分离高可用架构 推荐
- 基于Tomcat构建LNMT架构的网站并实现Session保持 推荐
- 项目实战2—实现基于LVS负载均衡集群的电商网站架构
- 【APP & Web架构】企业web高可用集群实战之Nginx+nginx_ajp实现Tomcat负载均衡集群+Session 推荐
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现