一 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进行服务:以保证服务不中断