一 LVS 简介
1 介绍
LVS 是Linux virtual server的简写,是linux 虚拟服务器,是一个虚拟服务器集群系统,可以在Unix/Linux平台下实现负载均衡集群功能,该项目在1998年由章文嵩博士组织建立
2 LVS 发展史。
早在2.2内核版本开始,IPVS 就已经以内核补丁的形式出现 从2.4.23版本开始IPVS如那件就是合并到Linux内核的常用版本的内核补丁的集合 从2.4.24 以后IPVS已经成为Linux官方标准内核的一部分。
3 LVS组成
1 IPVS 工作在内核层面 2 管理LVS的工具,ipvsadm 管理LVS的工具,工作在外围。
4 LVS 集群名词介绍
DR LVS 负载调度器 CL 客户端 RS 后端web 服务器
5 LVS 工作的四种模式
1 NAT (network address translation)模式
工作原理概述: 数据包通过VIP找到LVS,其中携带者客户端的CIP和VIP,当到达LVS后,LVS通过DNAT目标的地址转换技术将VIP转换成RIP使其可以找到后端的服务,当数据包到达RS后,其不知道CIP的地址,一般不在统一网段,通过在RS上配置LVS的内部网关来找到LVS,通过LVS的源地址转换技术转换为将RIP转换为VIP发送给客户端
对LVS要求: LVS必须有双网卡,且需要开启内核转发功能 RS 要求,RS 需要指定指向LVS内部网卡的网关,及数据包可以通过网关从RS顺利到达LVS。 优点:支持VIP和RIP不在同一网段 缺点:来去都经过LVS ,转发效率不高
2 TUN 模式:
工作原理概述: 数据包在客户端是CIP:VIP ,当到达LVS之后,通过在其外面封装数据包头来达到其可以到达RS的目的,当到达RS后,RS需要解封装数据包头,提取出VIP和CIP,此时RS上需要有VIP,且开启ARP抑制,如此才能使得客户端的数据包在不经过LVS的情况下顺利返回客户端, 对LVS 要求: 可以支持IPIP隧道技术,实现数据包的封装, RS 要求,实现对数据包的解封装和ARP抑制功能, 优点:适用于LAN/WAN网络,及LVS和RS不再同一个物理范围内的场景 缺点:配置复杂,需要支持一定的技术
3 DR 模式 (重点)
工作原理概述: 客户端通过VIP进行访问LVS,到达LVS的是CIP和VIP 的数据包,LVS通过在该区域内通过ARP广播获取到后端RS的MAC地址,因此LVS必须和RS在同一网段,并通过调度算法将某个RS对应的MAC地址封装到CIP和VIP的数据包上,进而实现将数据包送达RS的目标,当数据包到达RS后,因为RS端配置了VIP 并启用了ARP抑制,因此数据包可以用过VIP和CIP 在数据包出去时直接和客户端进行对话,而不去要经过LVS调度器 对LVS要求: 一般的设备都可以 对RS要求: 需要配置VIP和ARP抑制功能 优点:支持高并发,多大数万 缺点:LVS必须和RS在同一网段,否则不成立
4 FULLNAT 模式
源IP地址和目标IP地址在进和出网络时都进行转换 优点:跨VLAN通信(LIP决定)用于沟通底层VLAN的。 功能多,有抗攻击模块,多VLAN。支持的主机量更大。 缺点:需要需要编译内核,
6 LVS 的调度算法
二 实现验环境
1 设备概述:
设备名称 | 设备功能 | 设备IP |
---|---|---|
server1 | LVS调度器 | 192.168.122.232 |
server2 | web服务器,提供web页面 | 192.168.122.4 |
server3 | web服务器,提供web页面 | 192.168.122.109 |
2 软件包及yum源相关配置: 1 软件包: 链接:https://pan.baidu.com/s/1ITkJkLuuz9YnGd-poQ5R4A 密码:bdr4 2 配置yum 源: 查看yum源:
三 实验(DR模式):
1 LVS 操作
1 安装ipvsadm
2 设置VIP(调度器)用于与客户端之间的通信
3 设置调度策略
1 查看后端RS地址 设置VS 调度策略 -A 表示添加VIP -a 表示添加站点 -t 表示指定为tcp -s 指定调度机制为轮循(RR) -r 指定后端地址 -g 表示模式为DR模式 查看调度策略
2 RS配置
1 安装arptables_jf 软件
1 server2 上安装
用与接收ARP请求但不返回,其作用是将使用VIP地址直接与客户端通信
2 server3 安装
配置VIP
1 server2 端
2 server3 端配置VIP
3 设置配置策略并保存
1 设置server2ARP抑制策略并保存
-A 表示添加 -d 表示 目标地址 -j 为动作 -s 为源地址
2 设置server3ARP抑制策略并保存
4 启动其web服务
3 查看策略
4 进行在实体机端测试
证明轮循机制成立 其缺点是对后端服务不会进行健康检查,当后端服务出现故障时,前端将会出现访问故障,不能很好的解决健康检查问题。
四 实验 (LVS+ldirectord)
1 安装ldirectord 文件
1 作用:
ldirectord来管理lvs,可以定时检查后端realserver,发现故障后自动清除,恢复后自动加入lvs表,
2 安装服务
2 配置
1 拷贝其配置文件
2 查看内容
3 修改配置文件内容
使其可以直接对IPVS控制 参数说明 前四行是全局配置,他们可以应用到多个虚拟主机。 checktimeout: 等待健康检查执行完毕的等待时间,单位是s。 checkinterveal:指定健康检查的时间间隔 autoreload :如果启用,使用ldirectord 按时计算这个配置文件的md5校验和,看其是否改动,如果配置文件发生变动,其将自己通过调用命令,将其添加到池中 也可以向ldirectoed 守护进程发送HUP(使用kill命令)强制重载 quiescent=:一个节点在 checktimeout 设置的时间周期内没有响应是它是“静止的”(它的权重为 0),当你设置了这个选项后,ldirectord将 会从 IPVS 表中移除真实服务器而不是“停 止”它,从 IPVS 表移除节点将中断现有的客户端连接,并使 LVS 丢掉所有的连接跟踪记 录和持续连接模板,如果 你不将这个选项设置为 no,当某个节点崩溃时,对某些客户端 计算机而言可能会显示为集群关闭了,因为在这个节点崩溃前这些客户端计算机被分配 给它了,而连 接跟踪记录和程序连接模板仍然保留在 Director上。
virtual=192.168.122.10 虚拟IP地址 real=172.25.254.122:80 gate 设置 RS IP 地址 real=172.25.254.121:80 gate 设置 RS IP 地址 fallback=127.0.0.1:80 gate # 此处的表示所有的节点down掉后VS上 request="index.html" 后端健康检查检查的东西 \ #receive="Test Page" 此处的含义是其必须其后端的网页内容为"Test Page" #virtualhost=\ww.x.y.z 关闭之前的配置 启动服务:
3 RS 端配置
1 配置VIP
RS端设置VIP RS 端设置VIP
2 配置ARP 策略
ARP 策略必须存在
4 查看LVS情况
当关闭ipvsadm 并重新加载ld 时,其配置情况依然存在
5 测试:
1 关闭服务
其不会报错,会直接切换到正常的服务的中
2 后端服务都停止
:其默认自己将会成为RS进行服务:以保证服务不中断