一、LVS 概述
LVS是Linux Virtual Server的缩写,是一种基于Linux内核实现的高可用性、高性能的负载均衡技术。它可以将来自客户端的请求分发到多台服务器上,实现多台服务器的负载均衡,提高整个系统的性能和可用性。
LVS技术主要包括以下几个组件:
LVS调度器:负责接收客户端请求并将其分发到后端的真实服务器上,根据不同的负载均衡算法进行分发。
真实服务器:处理来自调度器的请求并返回响应,提供实际的服务。
Keepalived:LVS的高可用组件,用于监控LVS调度器的状态并在发生故障时自动切换到备用调度器,以保证服务的高可用性。
IPVS:内核中实现LVS技术的模块,实现负载均衡算法和请求分发等功能。
LVS技术广泛应用于互联网服务、网络游戏、数据中心等领域,能够提高系统的性能和可用性,降低系统的维护成本。
二、LVS 基本操作
1)基本命令操作
1、添加规则
2、删除规则
3、清空定义的所有内容
4、重载
6、保存
7、增、改RS规则
8、删除RS规则
9、查看规则列表
10、清空计数器
11、ipvs规则
12、ipvs连接
2)保存及重载规则
1、保存
建议保存至
2、重载
三、LVS 四种模式实战操作讲解
1)NAT 模式
1、设计要点
RIP与DIP在同一IP网络,RIP的网关要指向DIP
支持端口映射
Director要打开核心转发功能
2、配置
1、管理集群服务:增,改,删
增、改
删除:
service-address:
2、管理集群上的RS:增、改、删
增、改:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
server-address:
rip[:port] 如省略port,不作端口映射
选项:lvs类型:
3、ipvs scheduler
ipvs scheduler:根据其调度是否考虑各RS当前的负载状态
两种:静态方法和动态方法
静态方法:仅根据算法本身进行调度
4、实验:实现NAT模式的LVS(必须原路返回)
2)DR 模式
1、DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种:
在前端网关做静态绑定
在各RS使用arptables
在各RS修改内核参数,来限制arp响应和通告的级别
2、限制响应级别:arp_ignore
:默认值,表示可使用本地任意接口上配置在任意地址响应
:仅在请求目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
3、限制通告级别:arp_announce
:默认值,把本机所有接口的所有信息向每个接口的网络进行通知
:尽量避免将接口信息向非直接连接网络进行通知
:必须避免将接口信息向非网络进行通告
4、实验:实现DR模式的LVS(不原路返回)
步骤一:准备3台虚拟机
步骤二:先配置3台虚拟机的网络
步骤三:配置lvs的VIP
步骤四(RS):调整RS的响应,通告级别(每一台RS都配)
步骤五:在RS上配置VIP
步骤六:启动RS上的httpd服务
步骤七:安装 LVS---ipvsadm
3)TUN模式
4)FULL-NAT模式
四、Keepalived + LVS 实战操作
Keepalived 是一个用于 Linux 平台的高可用性软件。它实现了虚拟路由器冗余协议 (VRRP) 和健康检查功能,可以用于确保在多台服务器之间提供服务的高可用性。Keepalived 可以检测服务器的故障,并在主服务器宕机时,自动将备份服务器提升为主服务器,确保服务的持续性和可用性。
Keepalived 可以在主备服务器之间动态分配虚拟 IP 地址,使客户端能够在主备服务器之间无缝切换,提高服务的可用性。此外,Keepalived 还支持基于文本文件的配置和基于 SNMP 的监控。它可以与常用的负载均衡器配合使用,如 HAProxy、Nginx 等。
总的来说,Keepalived 是一个功能强大的工具,可用于提供高可用性服务。它是一个免费的开源软件,广泛应用于企业和个人服务器环境中。
架构图如下:
1) keepalived 安装以及基本操作
2)具体配置步骤
【步骤一】至少准备四台虚拟机
【步骤二】调整RS的响应,通告级别(每一台RS都配)
步骤三:在RS上配置VIP,切记(DR模式)不要忘了在RS配置VIP,要不然数据包会被丢弃
步骤四:在RS安装启动httpd服务
步骤五:给两台keepalived机子安装keepalived(一主一备)
步骤六:配置keepalived配置文件
主节点配置:
从节点配置:
缺点:脑裂问题
【分析原因】:keepalived自身不是高可用,主进程可能会被杀死,但是进程杀死后,没有回收VIP,导致主keepalived无法广播,备keepalived得不到主的广播信号,导致备也会配上VIP,使得主备都有VIP,最后CIP访问VIP的三次握手可能会被打散到主备keepalived上,无法建立连接,导致无法访问。
【解决方案】:
写一个自动脚本,定时巡检主keepalived进程是否还存活,如果被杀死,则重启主keepalived服务
换用更高级的高可用技术(zookeeper),后续会有zookeeper相应的文章
最后附上keepalived配置文件说明:
领取专属 10元无门槛券
私享最新 技术干货