《Centos系统——LVS负载均衡》
目录
LVS负载均衡
1. LVS介绍
LVS>Haproxy>nginx
LINUX虚拟服务器(Linux Virtual Servers ,LVS),使用负载均衡技术将多台服务器组成一个虚拟服务器。能快速增长访问需求,提供一个负载能力易于扩展,价格低廉。再1998年5月由章文嵩博士成立,是中国国内最早出现的*软件项目之一。
2. LVS组成部分
LVS是由2部分组成,包括ipvs和ipvsadm
Ipvs:工作在内核空间,是真正生效实现调度的代码
Ipvsadm:工作在用户空间,负责为ipvs内核框架编写规则,定义设施集群服务,谁是后端真实服务。
3. LVS的专用名词
DS:Director Server 是前端负载均衡调度器
RS:Real Server 真实服务器
VIP:Virtrual IP 虚拟IP地址,向外部直接面向用户请求,作为用户请求的目标的IP地址
DIP: Director Server IP ,主要用于和内部主机通讯的IP地址
RIP:Real Server IP ,后端服务器的IP地址
CIP:Client IP, 访问用户的IP地址
4. LVS三种负载均衡模型
Nat、Tunnel、Dr
1. LVS之NAT工作模式原理:
1、客户端发送数据包给负载均衡器
2、负载均衡器把客户端发来的数据包的IP头的目的地址换成其中一台RS的IP地址,并让RS处理数据
3、RS处理完数据之后将数据包交给负载均衡器
4、负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址,并数据包返回给客户端
注意:主要负责包转换的就是调度器(DS),那么压力都集中再调度器,就形成了瓶颈。DS需要有两块网卡。VIP(公网IP)一个,DIP一个。
2. LVS之DR(直接路由模式)工作模式
1、负载均衡器和RS都使用同一个IP对外服务,但是只有DR对ARP请求进行响应,所有RS对本身这个IP的arp请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向为DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC并将请求分发给这台RS。
2、这时RS收到这个数据包,处理完之后,由于IP一致,可以直接将数据返回给客户,等于直接从客户端收到这个数据包无异议,处理后直接返回给客户端。
注:由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也就是理解为在同一台交换器上。
3. LVS之TUN模式(ip 隧道模式)工作原理
1、客户端发送数据包给负载均衡啟
2、负载均衡器把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发送给RS
3、RS收到后,先把数据包借考,还原数据包,处理之后直接返回给客户端,不再需要经过负载均衡调度器
注:由于RS需要对负载均衡器发过来的数据包进行还原,所以必须支持IP TUNNEL协议,再RS的内核中,必须编译支持IP TUNNEL这个选项。
4. LVS三种负载均衡模型区别
NAT模型 | DR模型 | TUN模型 | |
---|---|---|---|
集群节点(rip和dip) | 需要再同一个子网当中 | 必须再同一个物理网络当中 | 不需要再一个物理网络当中 |
Rip | 私有地址,仅用于节点之间 | 可以使用公网地址 | 一定不能是私有地址 |
Director处理请求 | 处理入站和出站 | 仅处理入站 | 仅处理入站 |
Rs的网关 | 指向DIP | 不能指向DIP,而是路由器 | 不能指向DIP,而是路由器 |
RS服务器要求 | 任何操作系统 | 支持大多数操作系统 | 必须是支持隧道功能的操作系统 |
RS个数 | Low(10-20) | High(100) | High(100) |
注意:
arp_ignore与arp_announce参数都是和ARP协议相关的,主要用于控制系统返回arp响应和发送arp请求的动作。
arp_ignore:控制系统收到在外部的arp请求的时候,是否返回arp响应。
取值范围为0~8
1代表:只响应目的IP地址为接受网卡上的本地地址的arp请求。
arp_announce:控制系统在对外发送arp请求时候,如何选择arp请求数据包的源IP地址。
取值范围是0~2
2:忽略IP数据包的源IP地址,选择该发送网卡在最合适的本地地址作为arp请求的源IP地址。
Ipvsadm命令详解
语法:
ipvsadm command 【protocol】 service-address(vs) service-address 【工作模式】 【调度算法】
-A 表示添加虚拟服务器
-a 表示添加真实服务器器
-t 用来指定VIP地址以及TCP端口
-r 用来指定RIP地址以及TCP端口
-s 用来指定负载调度算法:
rr(轮询) \wrr(加权轮询)\lc(最少连接) \wlc(加权最少连接)
-g 是DR模式 -m 是NAT模式 -i是TUN模式