Lvs+keepalived知识点总结(面试)
LVS工作原理
Lvs是linux虚拟服务器。可以理解为lvs工作在linux内核空间。工作在四层协议上。
防火墙有五链四表
经典的lvs包括三种工作模式:VS/NAT模式 VS/TUN模式 VS/DR模式
NAT模式总结:说白了这种方式是linux内核自带的一种方式。说白了就是在lvs的那台机子上添加上到目标机器的路由条目。负载均衡器不仅需要修改请求报文的目标地址,还需要修改响应报文的源地址这。种NAT模式的lvs一般用的不是很多,因为搭载lvs的那台机子会成为性能的瓶颈,因为请求和响应都要经过lvs这台负载均衡器,尤其是当响应报文比较大的时候,不适用。一般情况下,一台lvs后面也就挂载最多20台目标服务器。
TUN模式总结:也叫做隧穿模式,该模式通过IP隧道将请求转发到后端服务器,后端服务器直接将响应报文发回客户端,适用于地理位置分散的集群。像我们常见的vpn就是这么搞的。这种模式在生产环境用的不多。这种模式负载均衡器和真实目标服务器可以不在同一个内部网络中。IP属于网络协议中的第三层。
DR模式总结:这种模式也叫做直接路由模式。底层是通过修改mac地址来实现的,而不修改IP地址。后端服务器直接将响应报文发回客户端,这种模式要求负载均衡器和真实目标服务器必须在同一个内部网络中。Mac地址是工作在链路层,也就是第二层上面的。
Lvs总体总结:总的来说这三种工作模式在中小企业可能会用到,在大型企业一般不使用。现在企业中一般使用nginx中间件比较多。
Lvs调度算法
静态调度算法:轮询调度、加权轮询调度、目标地址散列、源地址散列
动态调度算法:最少连接、加权最少连接、基于局部性的最少连接、带复制的基于局部性的最少连接。
Keepalived工作原理
Lvs只能搭建单节点的,不能搭建高可用的,容易存在单点故障。
Keepalived是基于vrrp协议来实现IP漂移的。
Keepalived是基于C语言开发的路由软件。也可以说keapalived是一个虚拟ip的管理软件。
keepalived后台会启动三个进程一个是keepalived的主进程,一个是vrrp的进程,一个是监控节点健康状态的进程。
Nginx+Keepalived高可用架构
nginx是单点故障,需要借助keepalived来解决单点故障,进而达到高可用。说白了就是让keepalived对nginx进行监控。
说一下keepalived工作在网络七层协议中的第几层
Keepalived工作在OSI模型中的第7层。Keepalived是一个用于实现高可用性的软件,主要工作在第3层、第4层和第7层12。
Keepalived的工作原理
第3层(网络层):Keepalived会定期向服务器群中的服务器发送一个ICMP数据包(类似于Ping程序),如果发现某台服务器的IP地址没有响应,则报告该服务器失效,并将其从服务器群中剔除。这种方式以服务器的IP地址是否有效作为服务器工作正常与否的标准24。
第4层(传输层):Keepalived通过检测TCP端口的状态来判断服务器是否正常。例如,如果检测到80端口没有启动,则将该服务器从服务器群中剔除24。
第7层(应用层):Keepalived可以根据用户设定的策略(通常是一个自定义的检测脚本)判断服务器上的程序是否正常运行。如果程序运行不正常,则将该服务器从服务器群中剔除12。
Keepalived的应用场景
Keepalived主要用于实现高可用性服务,例如在LVS集群中作为健康检查和负载均衡的组件。