1. lvs 原理
LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。 而用户需要对ipvs进行操作配置则需要使用ipvsadm这个工具。 ipvsadm主要用于设置lvs模型、调度方式以及指定后端主机
2. LVS 调度算法
静态方法:仅根据调度算法本身进行调度
rr: round robin,轮流,轮询,轮叫
wrr: weighted round robin, 加权轮询
sh:source hashing,session绑定
dh: destination hashing, 目标地址hash
动态方法:根据算法及各RS当前的负载状况进行调度
lc: least connection,最少连接 wlc: weighted lc,加权最少连接
sed: shortest expection delay,最少期望延迟
nq: never queue,永不排队
lblc: Locality-Based Least Connection,基于局部性的最少连接
lblcr:Replicated lblc,基于局部性的带复制功能的最少连接
LVS软件的工作模式及模式工作原理?
NET模式:安全性高,但是只通过网关接收和响应请求,负载低。
TUN模式:通过调度器接收用户请求,但是处理节点分布在因特网返回用户请求,这样代价昂贵。
DR模式:这种模式性能和成本相对都比较理想,半开式网络,节点和调度器都在局域网,而节点响应却通过路 由返回给用户。
请描述LVS软件在企业架构中的组件位置及作用?
LVS一般在企业架构中最前面接收用户请求,它可以接收用户请求,然后根据算法把请求分配给比如nginx代 理。充当整个架构的负载均衡的作用。
3. LVS软件的管理工具及模块名称?
ipvsadm
ip_vs
4. lvs和nginx的区别?
lvs的优点:
1.抗负载能力强,工作在第四层仅做分发之用,没有流量的产生,这个特点也决定了他在负责均衡软件里的性 能最强,无流量,同时保证了均衡器IO的性能不会受到大流量的影响。
2.工作稳定,自身有完整的双机热备方案,如lvs+keepalived
3.应用范围比较广,可以对所有应用做负载均衡。
4.配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多的接触,大大减少人为出错的几率
lvs的缺点:
1.软件本身不支持正则处理,不能做动静分离。
2.如果网站应用比较庞大,lvs/DR+keepalived就比较复杂了,特别是后面有windows server应用的机 器,实施及配置还有维护过程就比较麻烦,相对而言,nginx+keepalived就简单一点。
nginx的优点:
跨平台:可以linux系统运行,而且windows的移植版本。
配置简单:非常的简单,容易上手。
非阻塞并发连接:数据复制时,磁盘io的第一阶段是非阻塞,官方测试能支持5万并发连接,实际生产中能跑 2-3万并发连接数。发送报文是,nginx一边介绍web服务器的返回数据,一边把数据发送给客户端浏览器。
自带简单检查:当有服务器宕机后,新的请求就不会发送到这台机器上了,而是发送到其他节点。
节省带宽:支持gzip压缩,开启浏览器缓存。 网络依赖性低,理论上能ping通就可以实现负载均衡,而且可以有效区分内网,外网流量。
内存消耗小,稳定性高:开启10个nginx消耗内存125m,可以很好的处理静态资源,内存消耗少,宕机率很低。
5. 裂脑问题产生的原因
1) 心跳链路故障,导致无法通信
2) 开启防火墙阻挡心跳信息传输
3) 心跳网卡地址配置不正确
4) 其 他: 心跳方式不同,心跳广播冲突,软件bug等防止
6. 防止裂脑的方法
1)采用串行或以太网电缆连接,同时用两条心跳线路
2) 做好裂脑的监控报警,在问题发生时人为第一时间 介入仲裁
3) 启用磁盘锁,即正在服务的一方只在发现心跳线全部断开时,才开启磁盘锁
4) fence设备 (智能电源管理设备)
5) 增加仲裁盘
6) 加冗余线路
7. 请问Keepalived的功能
keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单 点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,Keepalived通过请求一 个vip来达到请求真是IP地址的功能,而VIP能够在一台机器发生故障时候,自动漂移到另外一台机器上,从 来达到了高可用HA功能
请问Keepalived的原理
Keepalived工作在TCP/IP 参考模型的 三层、四层、五层,也就是分别为:网络层,传输层和应用层,根据TCP、IP参数模型隔层所能实现的功能,Keepalived运行机制如下:
在网络层:我们知道运行这4个重要的协议,互联网络IP协议,互联网络可控制报文协议ICMP、地址转换协议 ARP、反向地址转换协议RARP,在网络层Keepalived在网络层采用最常见的工作方式是通过ICMP协议向服务 器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包, 那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。
在传输层:提供了两个主要的协议:传输控制协议TCP和用户数据协议UDP,传输控制协议TCP可以提供可靠的 数据输出服务、IP地址和端口,代表TCP的一个连接端,要获得TCP服务,需要在发送机的一个端口和接收机 的一个端口上建立连接,而Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的 端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到 这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器 集群中剔除掉。
在应用层:可以运行FTP,TELNET,SMTP,DNS等各种不同类型的高层协议,Keepalived的运行方式也更加 全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行 Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果 Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除
8. keeplived 有哪些模块
主要有三个模块,分别是core、check和vrrp
9. 解释一下vrrp 协议
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组, 这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其 他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就 需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
10. keepalived作用
keepalived长和lvs或nginx搭配使用,进行负载均衡
11. Keepalived的工作原理
在一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP通告信息, BACKUP不会抢占MASTER,除非它的优先级更高。当MASTER不可用时(BACKUP收不到通告信息) 多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保证服务的连续性 由于安全性考虑,VRRP包使用了加密协议进行加密。BACKUP不会发送通告信息,只会接收通告信息