LVS架构中 , 不管是NAT模式还是DR模式 , 当后端的RS宕机了 , 调度器还是会把请求转发到宕掉的RS上 , 然而keepalived可以解决该问题 , 它不仅仅有高可用的功能 , 还有负载均衡的功能 

完整的keepalived+LVS构架需要有两台调度器来实现高可用 , 提供调度服务的只需要一台服务器 , 另一台作为备用 

高可用的备用服务器只需对照主服务器稍微修改keepalived.conf的几个配置项就可以实现 ,下面就只演示负载均衡

主keepalived(调度器) : 192.168.94.11

真实web服务器1 : 192.168.94.22

真实web服务器2 : 192.168.94.33

VIP : 192.168.94.111

[root@lb ~]# yum -y install keepalived
[root@lb ~]# cd /etc/keepalived/
[root@lb keepalived]# cp keepalived.conf keepalived.conf.bak
[root@lb keepalived]# vim keepalived.conf
vrrp_instance VI_1 {
#备用服务器上为 BACKUP
state MASTER
#绑定vip的网卡为ens33
interface ens33
virtual_router_id
#备用服务器上为90
priority
advert_int
authentication {
auth_type PASS
auth_pass damowang
}
virtual_ipaddress {
192.168.94.111
}
}
virtual_server 192.168.94.111 {
#(每隔10秒查询realserver状态)
delay_loop
#(lvs 算法)
lb_algo wlc
#(DR模式)
lb_kind DR
#(同一IP的连接60秒内被分配到同一台realserver)
persistence_timeout
#(用TCP协议检查realserver状态)
protocol TCP real_server 192.168.94.22 {
#(权重)
weight
TCP_CHECK {
#(10秒无响应超时)
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.94.33 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

keepalived服务器配置完成

如果之前有ipvsadm的规则 , 先清空 , 再重新加载网卡 , 可以把之前设置的VIP清掉

[root@lb keepalived]# ipvsadm -C
[root@lb keepalived]# systemctl restart network

配置web服务器

因为keepalived的配置文件中定义的LVS模式是DR模式 , 所以再把前面DR模式LVS脚本执行一遍即可

CentOS 7 DR模式LVS搭建

[root@web1 ~]# sh /usr/local/sbin/lvs_dr_rs.sh
[root@web2 ~]# sh /usr/local/sbin/lvs_dr_rs.sh

最后一步

[root@lb keepalived]# systemctl start keepalived  # 开启keepalived服务
[root@lb keepalived]# systemctl status keepalived  # 查看服务是否正常运行

测试 :

用浏览器访问VIP 然后把其中一台web服务器关掉 , 再刷新浏览器(Ctrl+F5) , 这样就不会有缓存了 , 

同时也可以在调度器上查看连接数

[root@lb keepalived]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.94.111: wlc persistent
-> 192.168.94.22: Route
-> 192.168.94.33: Route [root@wab2 ~]# systemctl stop httpd [root@lb keepalived]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.94.111: wlc persistent
-> 192.168.94.22: Route [root@wab2 ~]# systemctl start httpd [root@lb keepalived]# ipvsadm -ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.94.111: wlc persistent
-> 192.168.94.22: Route
-> 192.168.94.33: Route

CentOS 7 keepalived+LVS的更多相关文章

  1. keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

    本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...

  2. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  3. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  4. Keepalived + LVS/DR 安装配置

    Keepalived + LVS/DR 说明 Keepalived:可以踢出掉故障服务 Keepalived:可以实现主从切换,解决单点故障 实验环境 四台主机:Linux Centos 6.4 32 ...

  5. Keepalived+LVS实现LNMP网站的高可用部署

    Keepalived+LVS实现LNMP网站的高可用部署   项目需求   当我们访问某个网站的时候可以在浏览器中输入IP或者域名链接到Web Server进行访问,如果这个Web Server挂了, ...

  6. Net分布式系统之三:Keepalived+LVS+Nginx负载均衡之高可用

    上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx ...

  7. Keepalived+Lvs+Mysql主主复制

    一简单介绍 Keepalived+lvs+mysql主主复制是比較经常使用的一种Mysql高可用方案,当中lvs 提供读负载均衡,Keepalived通过虚拟vip漂移实现故障自己主动转移,而Mysq ...

  8. mysql高可用架构方案之二(keepalived+lvs+读写分离+负载均衡)

    mysql主从复制与lvs+keepalived实现负载高可用 文件夹 1.前言    4 2.原理    4 2.1.概要介绍    4 2.2.工作原理    4 2.3.实际作用    4 3方 ...

  9. Keepalived+LVS+Nginx负载均衡之高可用

    Keepalived+LVS+Nginx负载均衡之高可用 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常 ...

随机推荐

  1. Caffe 分类问题 Check failed: error == cudaSuccess (2 vs. 0) out of memory

    如果图片过大,需要适当缩小batch_size的值,否则使用GPU时可能超出其缓存大小而报错

  2. Windows系统配置.bat启动spring boot项目jar

    背景:项目用spring boot构建,maven管理,本地测试好之后打成jar包,在dos窗口可以通过:java -jar demo.jar来启动demo项目,一旦关闭该dos窗口demo项目也被停 ...

  3. JavaScript学习历程03

    一闪一闪亮晶晶 <script type="text/javascript"> var nn = Number(prompt('请输入一个1-9的正整数!')); va ...

  4. 从一次线上故障思考Java问题定位思路

    问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后,现网机器出现了Full GC告警,同时CPU飙高99%.在优先恢复现网服务正常后,开始着手定位Full GC的问题.在现场只能够 ...

  5. 【Clojure 基本知识】 关于函数参数的各种高级用法

    关于Clojure函数参数用法,学习中一些总结,无废话,直接看代码: 一.接受不定参数 ;;接受不定参数 (defn f0[& pms] (println "params count ...

  6. git rebase 的使用

    rebase 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase. 在本节中我们将学习什么是“rebase”,怎样使用“rebase”,并将展示该操作的惊艳之处,以及指 ...

  7. java的ThreadLocal类的使用方法

    java的ThreadLocal类的使用方法,ThreadLocal是一个支持泛型的类,用在多线程中用于防止并发冲突问题. 比如以下的一个样例,就是用于线程添加1,可是相互不冲突 package co ...

  8. Mock an function to modify partial return value by special arguments on Python

    Mock an function to modify partial return value by special arguments on Python python mock一个带参数的方法,修 ...

  9. C++学习 —— 灵活的继承特性

    0.继承与算法开发 在之前的笔记中,我展示了来自继承的威力.继承这种机制能够大幅度减小编码量,子类可以继承父类所有的变量,方法.利用这种机制,我们可以在其他人工作的基础上,完成有自己特色的部分.比如我 ...

  10. VC++每个版本对应的库

    msvcp.msvcr60.71和80.dll,以及vcomp.dll(不带数字版本号)属于VC++2005版 msvcp.msvcr.vcomp90.dll属于 VC++2008版 msvcp.ms ...