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语言开发的路由软件。
keepalived后台会启动三个进程一个是keepalived的主进程,一个是vrrp的进程,一个是监控节点健康状态的进程。
Nginx+Keepalived高可用架构
nginx是单点故障,需要借助keepalived来解决单点故障,进而达到高可用。说白了就是让keepalived对nginx进行监控。