场景引入1

我们知道LVS仅仅是做根据调度算法和策略来做负载均衡的,LVS本身只是调度后端服务器,并不管后端服务器的死活,想想这样一个场景:如果由于由于某种原因,后端服务器挂掉,而调度服务器却不知道,还一个劲头的给其发送请求,后端服务器此时不响应数据,而客户端会处于等待的状态(直到超时),客户体验不好!

说明:后续有时间了再模拟这个场景(后端某个服务关闭,观察实验现象)!

引出了我们今天要讲解的心跳检查(heartbeat),通俗点就是前端服务器检查后端服务器的存活,进而采取某种策略!

说明:由于DR模式最常见,所以我们以此种模式进行讲解!

  lvs+directord

(1)directord的简单理解

directord 对lvs策略的动态维护:ldirectord是监视集群节点(真实服务器),并从集群中自动移除节点,我们需要使用ldirectord程序,这个程序在启动时自动建立IPVS表(不用手动建立了),然后监视集群节点的健康情况,在发现失效节点时将其自动从IPVS表中移除

(1)第一次安装出现的问题

yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
Error: Package: ldirectord-3.9.5-3.1.x86_64 (/ldirectord-3.9.5-3.1.x86_64)Requires: resource-agents

说明安装包从官网下载即可

原因:没有使用系统自带的高可用套件,缺乏依赖,yum源进行配置(所需安装软件在光盘上就可以,不需要额外配置yum源!

# 自带附加高可用源
[HighAvailability]
name="HighAvailability"
baseurl=http://172.25.2.250/rhel7.3/addons/HighAvailability
gpgcheck=0

(2)正式安装

yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
rpm -ql ldirectord-3.9.5-3.1.x86_64 # 查询
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/

(3)编写配置文件

# 虚拟VIP-->核心配置文件!
virtual=172.25.2.100:80real=172.25.2.201:80 gatereal=172.25.2.202:80 gatefallback=127.0.0.1:80 gateservice=httpscheduler=rr#persistent=600#netmask=255.255.255.255protocol=tcpchecktype=negotiatecheckport=80request="index.html"# 注意:一定要将其注释!#receive="Test Page"#virtualhost=www.x.y.z

检测:开启ldirectord服务,然后通过ipvsadm -l 来看是否有IPVS表的规则!

注意:还是手动写VIP,只是通过配置文件的形式帮助我们生成ipvs规则表!

补充:还得手动开启服务!

理解:并不管理资源

 ip addr add 172.25.2.100/24 dev eth0 #配置VIP(由于是DR模式,所以三个都需要配置)

(4)后端服务器的配置

VIP(手动配置)和ARP策略

arptables -A INPUT -d 172.25.2.100 -j DROP
arptables -A OUTPUT -s 172.25.2.100 -j mangle --mangle-ip-s 172.25.2.201# 两个后端服务器一样

注意:服务必须自己开启!

(5)测试

测试1:两个后端服务器均开启Apach服务,然后客户端测试看是否轮询!

测试2:其中一个后端服务器关闭服务,观察此服务器是否被IPVS表移出,以及客户端测试的内容!

测试3:其中一个后端服务器有开启服务,观察此服务器是否被IPVS表添加,以及客户端测试的内容!

测试4:前端服务器也安装httpd软件,并开启服务,看后端服务器挂掉的时候,前端服务器会不会顶上去!

说明:在其它后端服务器都挂了的情况下,前端调度器也可以作为临时服务器,但是一般时间很短!

配置文件的详细解释

原理

二:场景引入

假如:lvs调度服务器挂掉了呢,是不是整个就瘫痪了,怎么办?总得防患于未然,添加lvs的备用机,如何监控呢?

引入:我们今天要讲解的keepalived

     注意:做实验之前一定要事先关闭selinux和firewalld !

keepalived百度百科

(1)源码编译安装

#(1)说明:第三方的包-->源码安装
# 最好进入一个目录!
tar -zxf keepalived-2.0.6.tar.gz
cd keepalived-2.0.6
#(2)安装依赖的软件
yum install gcc openssl-devel -y
#(3)编译-->6|7的区别
./configure --prefix=/usr/local/keepalived --with-init=systemd
#核心:Use IPVS Framework是否是Yes
#(4)安装
make && make install
#(5)进入对应的目录-->设置软链接
cd /usr/local/keepalived/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
#(6)安装邮件软件
yum install -y mail #看是否发生报错信息!# 说明:用的也是高可用的包!

说明:备用的安装方式一致

(2)  对配置文件进行配置

安装之前做一些清理工作

1)IPVS规则的清理(-C)

2)VIP的手动删除--->会自动生成此VIP

配置文件参数的说明!

# 全局配置
global_defs {notification_email {#(1)节点宕机了给谁发送邮件!-->本机的root用户(安装mail软件,看是否发送邮件)root@localhost}#(2)发送人的名称notification_email_from keeplived@loclhost#(3)发送的服务器-->本机smtp_server 172.0.0.1#(4)指定smtp连接超时时间smtp_connect_timeout 30router_id LVS_DEVEL#(5)运行keepalived机器的一个标识!vrrp_skip_check_adv_addr#(6)必须注释#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {#(1)主节点的标识state MASTER  #BACKUP(备用的标识)interface eth0#(2)说明:主和备用的必须一致virtual_router_id 51#(3)优先级,越大越优先启动priority 100  #说明:备用的必须小于100advert_int 1 # 检查间隔authentication {auth_type PASS #认证方式(密码认证)auth_pass 1111 #认证的密码}#(4)虚拟VIP-->不用手动创建(可以创建多个,对应不同的服务)virtual_ipaddress {172.25.2.100}
}
# 虚拟服务的相关配置-->理解成IPVS表规则
virtual_server 172.25.2.100 80 {delay_loop 6 # 当rs报错时候,尝试多少次之后才会发送邮件告知!lb_algo rr   # 负载均衡的算法(10种)lb_kind DR   # 默认时NAT模式(这里选择DR)#persistence_timeout 50  #注释(保持连接的时间)protocol TCPreal_server 172.25.2.201 80 {TCP_CHECK {connect_port 80weight 1connect_timeout 3}}real_server 172.25.2.202 80 {TCP_CHECK {connect_port 80weight 1connect_timeout 3}}
}

说明:备用只修改state和proprity

后端服务器的配置

ip addr add 172.25.2.100/24 dev eth0
arptables -A INPUT -d 172.25.2.100 -j DROP
arptables -A OUTPUT -s 172.25.2.100 -j mangle --mangle-ip-s 172.25.2.201

注意:要配置VIP,因为后端服务器和前端控制器是想对独立的

重启之后的现象-->

备用

测试1:后端服务器关闭和开启,看IPVS表的变化

说明:这里省略

测试2:主LB关闭keepalived服务,看IPVS表和VIP的走向

测试3:主LB开启keeplalived服务

说明:keepalived备机在主机宕机的情况会自动接管了资源,但待keepalived主机恢复正常的时候,主机会重新接管资源!

小知识:IP/32表示是一个集群!

补充测试:看mail是否有邮件发送

LVS(三)lvs+keeplive相关推荐

  1. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  2. LVS三种工作方式八种算法

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

  3. LVS三种工作模式(NAT、DR、TUN)原理及配置

    首先声明文章出处:<Lvs之NAT.DR.TUN三种模式的应用配置案例 >是由helloworld发表于速学堂的一篇文章,感谢helloworld的分享,内容非常全面充实,因此转载作为复习 ...

  4. LVS三种工作模式原理

    1. LVS 三种工作模式原理 1.1 LVS-DR: 通过直接路由实现虚拟服务器(VS/DR) 跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请 ...

  5. LVS三种工作模式及原理详解

    什么是 LVS? LVS 是 Linux Virtual Server 的简写,也就是 Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最 ...

  6. 负载均衡集群介绍LVS介绍LVS调度算法LVS NAT模式搭建

    2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 • 主流开源软件LVS.keepalived.haproxy.nginx等 • 其中LVS属于4层 ...

  7. LVS三种请求转发方式和八种调度算法简介

    1. LVS的结构 LVS方式的cluster从结构上可分为两部分:前端的负载均衡器(称之为director)和后端的真实服务器(称之为real server).cluster前端的director将 ...

  8. Linux服务器集群系统(三)——LVS集群中的IP负载均衡技术

     原文地址:http://www.linuxvirtualserver.org/zh/lvs3.html 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载 ...

  9. 应用负载均衡之LVS(三):ipvsadm命令

    转载自:http://www.cnblogs.com/f-ck-need-u/p/8527125.html 作者原 LVS系列文章:http://www.cnblogs.com/f-ck-need-u ...

  10. LVS三种工作模式介绍对比和十种调度算法介绍

    2019独角兽企业重金招聘Python工程师标准>>> 工作模式介绍: 1.Virtual server via NAT(VS-NAT) 优点:集群中的物理服务器可以使用任何支持TC ...

最新文章

  1. 图像分类:13个Kaggle项目的经验总结
  2. ODBC访问EXCEL
  3. 数据结构 — B+ 树
  4. 视频大变革:需要技术,也需要情怀
  5. 《树莓派开发实战(第2版)》——1.7 连接DVI或VGA显示器
  6. SQL Server 文件路径
  7. 设计模式学习----装饰器模式
  8. mysql 开发权限_mysql权限管理
  9. python3、sqlmap下载与安装教程
  10. LRU算法数组实现超简单
  11. abrtd:Executable ‘some execution‘ doesn‘t belong to any package and ProcessUnpackaged is set to ‘no‘
  12. cannot be cast to org.springframework.web.method.HandlerMethod 统一异常处理发生异常。
  13. bzoj3097: Hash Killer I
  14. Nexus 5刷阿里云OS
  15. TIA Protal 精智面板中的动画外观
  16. 2、java的应用领域
  17. 【MATLAB】求解约束条件下的目标函数最值(fmincon用法解析)
  18. 根据文件名批量生成文件夹
  19. 敏捷开发 vs 传统开发
  20. visifire 饼状图加图例

热门文章

  1. Android实现文字和图片混排(文字环绕图片)效果
  2. oracle 函数 if 判断,oracle 判断中文函数
  3. 股票分析软件 php,哪个股票分析软件最好用?
  4. multism中ui和uo应该怎么表示_multisim12中XBP1怎么使用
  5. C语言-----职工信息管理系统
  6. Ubuntu下如何查看GPU版本和使用信息
  7. 拼音获取啊啊的的js
  8. 禁用微信浏览器的下拉_解决微信浏览器禁止下拉查看真实域名网址的问题
  9. MATLAB代码:基于分布式优化的多产消者非合作博弈能量共享
  10. #学习笔记#什么是Servlet?