一、LVS简介

1、LVS简介

LVS是linux虚拟服务器,是一个虚拟的服务器集群;通过LVS的负载均衡技术和linux操作系统可以实现一个人高性能、高可用的Linux服务器集群,并具有良好的高可靠性、可扩展性和可操作性;LVS架构从逻辑上可分为调度层、Server集群层和共享存储层。

2、LVS相关术语

术语 说明
DS 负载均衡节点服务器
RS 后端真实服务器
DIP 用于与内部主机通信的IP地址
VIP 用于用户请求的目标IP地址
RIP 后端真实服务器IP地址
CIP 访问客户端的IP地址

二、LVS的工作模式

1、网络地址转换模式(NAT)

在网络地址转换工作模式下,调度器(LB)重写请求报文的目标地址或端口,然后根据调度算法将请求分流到不同的后端真实服务器,真实服务器响应响应请求报文后返还给调度器,在经过调度器(LB)重写报文的源地址,从而返回给客户端请求用户。

过程描述:

  1. 客户端发出请求(假设客户端CIP:10.0.0.1:80为数据包源地址,目标地址为VIP:20.0.0.1:80)
  2. 用户请求的数据包经过调度器(LB),目标地址会被调度器改写成后端其中某个真实主机地址(RIPA:192.168.2.2:80)
  3. 后端真实服务器收到请求后,对比发现请求目标是自己,响应并返回信息给调度器,此时源地址为RIPA,目标地址为VIP。
  4. 调度器收到后端真实服务器响应后,将源地址改写成VIP地址(实际地址为RIPA),然后将数据返回个请求客户端。请求完成。

LVS网络地址转换模式的特点:

  1. 后端真是主机使用私有地址,但网关必须指向DIP,且DIP和RIP必须在同一网段为。
  2. 请求和返回都要经过调度器,
  3. 支持端口映射,后端主机可以使用任意的操作系统。

2、直接路由模式(DR)

直接路由模式(DR)通过改写请求报文的目标MAC地址(将报文中的MAC改写成后端某台RS主机的MAC),将请求发到后端真实主机服务器,而真实主机服务器响应后的数据直接返回给请求的客户端。此模式要求调度器与真实主机服务器要有一块网卡是连接在同一网段中的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GhUxqGnS-1660702303224)(https://m.zhimalian.xyz/upload/2022/05/%E6%9C%AA%E5%91%BD%E5%90%8D%20(1)]-7eaade90a239447c871f6ae106f3fcf1.png)

过程描述:

  1. 客户端发出请求的数据包。
  2. 调度器接受请求数据包后,不转换其地址和端口,也不进行地址封装,只将请求数据报文中数据报文中的源MAC地址改写成DIP的MAC地址,将目标的MAC地址改写成RIP的MAC地址,但此时的源IP和目标IP是不改变的,然后将数据包转发出去。
  3. 后端真实服务器接收到数据包,发现目标MAC地址是自己,继续解包发现目标IP是VIP(事先在本机LO端口绑定VIP,开启抑制ARP功能),从而接受数据报文信息进行处理,处理完成后通过LO接口传递给外网口,在向外发送。直接由真实主机服务器对客户端的请求做出的回复。
  4. 客户端接受到数据包,请求完成。

LVS直接路由模式的特点:

  • 此模式可保证客户端访问的目标地址为VIP的数据报文全部由DS服务器接受,而非后端真实服务器。
  • 此模式不支持地址转换和端口映射。
  • RS主机与DS主机必须在同一物理网络中,RS主机可以使用公网或死亡地址,如果使用公网地址,此时可通过公网对RIP进行直接访问。
  • RS主机网关禁止指向DIP,且RS主机LO接口必须配置VIP地址并开启ARP功能。

三、LVS调度算法

  • 轮询(RR)
  • 加权轮询(WRR)
  • 最少连接(LC)
  • 加权最少连接(WLC)
  • 基于局部性的最少连接(LBLC)
  • 复杂的基于局部性的最少连接(LBLCR)
  • 目标地址散射调度(DH)
  • 源地址散列调度(SH)
  • 最短延迟调度(SED)
  • 最少队列调度/永不排队调度(NQ)

四、LVS服务的DR模式部署

1、环境准备

服务器角色 服务器ip地址 备注
LVS 192.168.73.136 提供VIP:192.168.73.130对外提供服务
RS节点A 192.168.73.137 后端真实服务器A
RS节点B 192.168.73.138 后端真实服务器B

2、查看服务器系统环境

cat /etc/redhat-release
uname -r #查看系统内核版本
## 下载ipvsadm时须下载与内核行相对应的版本
## 查看系统是否存在kernel-devel的软件包,如不存在,使用yum安装

3、部署后端服务器

安装nginx或者apache都可以,详细安装见前面文章

4、安装ipvsadm

解压上传的ipvsadm压缩包

tar -zxvf ipvsadm-1.31.tar.gz
cd ipvsadm
##编译安装
make && make install

编译过程中如果报错:
ip_vs.h:15:29: 致命错误:netlink/netlink.h:没有那个文件或目录
#include <netlink/netlink.h>

使用yum安装libnel和popt包

yum install libnl* popt*

编译完成,使用命令ipvsad -v查看是否安装完毕,如果出现版本号,则表示安装完毕。

5、配置LVS DR模式负载均衡

1、 lvs服务器配置VIP地址,对外提供服务

#配置VIP
ifconfig ens33:250 192.168.73.130/24
#查看是否配置成功
ifconfig ens33:250

2、配置LVS服务

ipvsadm -C #清空原配置
#配置VIP与调度算法
ipvsadm -A -t 192.168.73.130:80 -s wrr
#查看配置
ipvsadm -L -n

3、添加后端真实主机服务器

#添加后端真实服务器
ipvsadm -a -t 192.168.73.130:80 -r 192.168.73.137:80 -g -w 1
ipvsadm -a -t 192.168.73.130:80 -r 192.168.73.138:80 -g -w 1
#查看配置
ipvsadm -L -n

6、后端真实服务器配置抑制ARP功能与绑定VIP地址

echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:250 192.168.73.130/32

7、测试访问

  • 修改请求持久化时间为5s,默认情况下为300s
ipvsadm -E -t 192.168.73.150:80 -s rr -p 5
  • 设置tcp、udp连接时间为1s
ipvsadm --set 1 1 1

浏览器输入VIP地址,刷新网页查看是否成功分配调度

查看LVS调度情况

三、ipvsadm命令选项

-A        添加一个虚拟服务,使用ip地址、端口号、协议来唯一定义一个虚拟服务
-E        编辑一个虚拟服务
-D        删除一个虚拟服务
-C        清空虚拟服务列表
-R        从标准输入中还原虚拟服务列表
-S        保存虚拟服务规则至标准输出,输出规则可使用-R选项还原
-L        显示虚拟服务列表
-Z        虚拟服务器列表计数器清零(清空当前连接数)
-a        添加一台真实服务器
-e        编辑一台真实服务器
-d        减少一台真实服务器
-t        使用TCP服务,该参数后需加主机与端口信息
-u        使用UDP服务,该参数后需加主机与端口信息
-s        指定lvs的调度算法
-r        设置真实服务器IP与端口
-g        设置lvs工作模式为DR直连路由
-i        设置lvs工作模式为TUN隧道
-m        设置lvs工作模式为NAT地址转换模式
-w        指定真实服务器权重
-c        连接状态,配和-L使用
-n        数字格式显示
--stats   显示统计信息
--rate    显示速率信息
--sort    对虚拟服务器和真实服务器排序输出
--set tcp tcpfin udp设置ipvs连接超时值,三个参数分别代表tcp会话超时时间、收到FIN包后tcp会话超时时间、udp超时时间
--timeout显示tcp tcpfin udp的timeout值
--start-daemon启动同步守护进程
--stop-daemon停止同步守护进程

LVS+nginx负载均衡(一)-企业实战lvs负载均衡相关推荐

  1. lvs之 lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)

    前提:已经安装好 lvs+nginx+tomcat_1.tomcat_2+redis环境 ,可参考 (略有改动,比如tomcat_1.tomcat_2安装在两台机器上,而不是单机多实例 ,自行稍稍变动 ...

  2. 企业运维实战--lvs之DR模式负载均衡、keepalived、lvs高可用

    LVS 介绍 lvs 负载均衡( linux virtual server),linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求 ...

  3. Keepalived+LVS+Nginx负载均衡之高可用

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致 ...

  4. FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡

    ###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...

  5. LVS Nginx 负载均衡区别

    lvs nginx haproxy 对比 都可以做负载均衡: 工作方式和应用场景各有特点: lvs Linux 虚拟 服务: 1.可以应用支持协议: ftp http dns telnet smtp ...

  6. F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍

    F5/LVS/Nginx/HAProxy硬软件级网络负载均衡介绍 1 硬件级的负载均衡 常见的商用硬件负载均衡器:NetScaler.F5.Radware.Array 优点: 1)专业团队维护,能够直 ...

  7. 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

    一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和 ...

  8. lvs+nginx负载均衡

    1 学习目标 掌握什么是负载均衡及负载均衡的作用和意义. 了解lvs负载均衡的三种模式. 了解lvs-DR负载均衡部署方法. 掌握nginx实现负载均衡的方法. 掌握lvs+nginx负载均衡拓扑结构 ...

  9. 常见的服务器集群负载均衡技术:二三四七层负载均衡,DNS、LVS、F5、nginx负载均衡

    服务器集群负载均衡技术 LB:load balance负载均衡器.有时也叫做director. DNS负载均衡 DNS负载均衡,最基础的是轮询方式,循环返回不同的服务器IP地址.可以同时返回多个服务器 ...

最新文章

  1. 反射、对象拷贝、异常常见问题总结
  2. 每日英语:Why is Ye Shiwen’s Swim “Disturbing”?
  3. 除了中国,原来还有这么多国家采用十二生肖的啊~| 今日最佳
  4. java技术难点_Java核心技术第四章----对象与类重难点总结
  5. JSP中鼠标禁用代码
  6. matlab 雷达工具箱,使用Matlab的工具箱,学习“相控阵雷达技术”
  7. java NIO入门小记
  8. SNIP物体检测算法理解
  9. vue中:key 和react 中key={} 的作用,以及ref的特性?
  10. 01_测试基础知识---功能测试常用方法/正交表的使用
  11. Mellanox IB卡介绍
  12. html设置div大小位置不变,div大小 div固定大小设置
  13. 【渝粤教育】电大中专液压与气动技术_1作业 题库
  14. rsa 生成密匙 ,密匙导出,加密解密封装
  15. Cannot add foreign key constraint 错误解决办法
  16. 前有标兵,后有追兵,自热老兵莫小仙胜算还剩几成?
  17. 如何挖到人生当中第一本CNVD
  18. cakephp视图用php文件,CakePHP-视图
  19. 写一个Singleton模式的例子
  20. spark学习5:spark-shell

热门文章

  1. new MyBlog();
  2. jQuery卷轴效果
  3. android应用内打开apk,【Android】点击应用进而打开base.apk的调用流程再分析
  4. Python爬取wallhaven,设置定时任务每日更换幻灯片壁纸
  5. 将 H264 + PCMA 转为MP4格式(RTSP协议)
  6. 专题测试06·常微分方程【李艳芳全程班】
  7. HDU 2639 Bone Collector II(01背包-第K优决策)
  8. 用Cocos2D开发的iPhone游戏的教程
  9. Mac 系统的 MySQL 如何修改密码(保姆级别教程)
  10. 【GPS卫星位置计算】