运维工程师面试题总结-LVS+Keepalived企业级集群解决方案09

简介: 个人学习

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不会发送通告信息,只会接收通告信息

如果想上手操作的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下

入口一:新人免费试用

入口二:大学生免费试用

入口三:低价服务器购买

入口四:低价服务器购买2

入口五:建站特惠购买

                   

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
存储 缓存 监控
美团面试:说说OOM三大场景和解决方案? (绝对史上最全)
小伙伴们,有没有遇到过程序突然崩溃,然后抛出一个OutOfMemoryError的异常?这就是我们俗称的OOM,也就是内存溢出 本文来带大家学习Java OOM的三大经典场景以及解决方案,保证让你有所收获!
192 0
美团面试:说说OOM三大场景和解决方案? (绝对史上最全)
|
4月前
|
消息中间件 负载均衡 监控
【面试问题】RabbitMQ 的集群
【1月更文挑战第27天】【面试问题】RabbitMQ 的集群
|
4月前
|
消息中间件 安全 NoSQL
2023春招面试专题:高并发解决方案(三)
2023春招面试专题:高并发解决方案
|
5月前
|
缓存 NoSQL 数据库
2023春招面试专题:高并发解决方案
2023春招面试专题:高并发解决方案
|
3天前
|
运维 负载均衡 监控
keepalived+LVS实现高可用性集群
通过结合keepalived和LVS,你可以创建一个高可用性的负载均衡集群,确保服务器的稳定性和性能。这对于托管Web服务、应用服务器等关键服务的服务器集群非常有用。
10 1
|
7天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
5月前
|
存储 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
114 0
|
3月前
|
消息中间件 运维 应用服务中间件
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
194 0
|
4月前
|
SQL 缓存 NoSQL
2023春招面试专题:高并发解决方案(二)
2023春招面试专题:高并发解决方案
140 0
|
4月前
|
缓存 JavaScript NoSQL
2023春招面试专题:高并发解决方案(一)
2023春招面试专题:高并发解决方案