LVS(三)lvs+keeplive
一 场景引入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相关推荐
- LVS三种模式的区别及负载均衡算法
转载自 LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...
- LVS三种工作方式八种算法
一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...
- LVS三种工作模式(NAT、DR、TUN)原理及配置
首先声明文章出处:<Lvs之NAT.DR.TUN三种模式的应用配置案例 >是由helloworld发表于速学堂的一篇文章,感谢helloworld的分享,内容非常全面充实,因此转载作为复习 ...
- LVS三种工作模式原理
1. LVS 三种工作模式原理 1.1 LVS-DR: 通过直接路由实现虚拟服务器(VS/DR) 跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请 ...
- LVS三种工作模式及原理详解
什么是 LVS? LVS 是 Linux Virtual Server 的简写,也就是 Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最 ...
- 负载均衡集群介绍LVS介绍LVS调度算法LVS NAT模式搭建
2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 • 主流开源软件LVS.keepalived.haproxy.nginx等 • 其中LVS属于4层 ...
- LVS三种请求转发方式和八种调度算法简介
1. LVS的结构 LVS方式的cluster从结构上可分为两部分:前端的负载均衡器(称之为director)和后端的真实服务器(称之为real server).cluster前端的director将 ...
- Linux服务器集群系统(三)——LVS集群中的IP负载均衡技术
原文地址:http://www.linuxvirtualserver.org/zh/lvs3.html 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载 ...
- 应用负载均衡之LVS(三):ipvsadm命令
转载自:http://www.cnblogs.com/f-ck-need-u/p/8527125.html 作者原 LVS系列文章:http://www.cnblogs.com/f-ck-need-u ...
- LVS三种工作模式介绍对比和十种调度算法介绍
2019独角兽企业重金招聘Python工程师标准>>> 工作模式介绍: 1.Virtual server via NAT(VS-NAT) 优点:集群中的物理服务器可以使用任何支持TC ...
最新文章
- 图像分类:13个Kaggle项目的经验总结
- ODBC访问EXCEL
- 数据结构 — B+ 树
- 视频大变革:需要技术,也需要情怀
- 《树莓派开发实战(第2版)》——1.7 连接DVI或VGA显示器
- SQL Server 文件路径
- 设计模式学习----装饰器模式
- mysql 开发权限_mysql权限管理
- python3、sqlmap下载与安装教程
- LRU算法数组实现超简单
- abrtd:Executable ‘some execution‘ doesn‘t belong to any package and ProcessUnpackaged is set to ‘no‘
- cannot be cast to org.springframework.web.method.HandlerMethod 统一异常处理发生异常。
- bzoj3097: Hash Killer I
- Nexus 5刷阿里云OS
- TIA Protal 精智面板中的动画外观
- 2、java的应用领域
- 【MATLAB】求解约束条件下的目标函数最值(fmincon用法解析)
- 根据文件名批量生成文件夹
- 敏捷开发 vs 传统开发
- visifire 饼状图加图例