Linux学习:四层负载均衡详解
目录
一、集群概念
1、集群(cluster)
二、负载均衡集群
1、实现效果图
2、负载均衡分类
3、四层负载均衡
4、七层负载均衡
5、4层负载均衡和7层负载均衡的区别
三、LVS四层负载均衡
1、LVS介绍
2、LVS的优势和不足
3、LVS核心组件和专业术语
4、LVS工作内核模型及工作模式
一、集群概念
1、集群(cluster)
(1)集群技术是一种新技术,可以在付出较低成本的情况下获得性能、可靠性、灵活性方面相对高的收益。
(2)集群是一组相互独立的、通过高速网络互联的计算机,他们构成一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。
(3)集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可用多个计算机做备份(高可用),使得一个机器坏了整个系统还是可以正常运行。集群可以极大提高互联网业务的可用性和可缩放性。
二、负载均衡集群
负载均衡集群为企业需求提供了可解决容量问题的有效方案,使负载可以在计算机集群中尽可能的分摊处理。
负载通常包括应用程序处理负载和网络流量负载。这样的系统适合向使用同一组应用程序的大量用户提供服务。每个节点都可以承担一定的处理负载,并且可以实现负载在节点间的动态分配,以实现负载均衡。网络流量负载,当网络服务程序接受了高入网流量,以致于无法迅速处理,网络流量就会发送给其他节点上运行的网络服务程序,也可以根据服务器的承载能力,进行服务请求的分发,从而使用户的请求得到更快速的发展。
负载均衡技术类型:基于4层负载均衡技术和基于7层负载均衡技术
负载均衡实现方式:硬件负载均衡设备和软件负载均衡
硬件负载均衡产品:F5 BIG-IP 、Citrix Netscaler、深信服、Array、Radware
软件负载均衡产品:LVS(Linux virtual Server)、Haproxy、Nginx、Ats(apache traffic server)
1、实现效果图
2、负载均衡分类
负载均衡根据所采用的设备对象(软/硬件负载均衡),应用的OSI网络层次(网络层次上的负载均衡),以及应用的地理结构(本地/全局负载均衡)等来分类。
根据负载均衡作用在OSI模型的位置不同,负载均衡可以大概分为几类:
二层负载均衡(mac):根据OSI模型分的二层负载,一般是用虚拟mac地址方式,外部对虚拟mac地址请求,负载均衡接收后分配后端实际的mac地址响应。
三层负载均衡(ip):一般采用虚拟IP地址的方式,外部对虚拟的ip地址请求,负载均衡接受后分配后端实际的ip地址响应。
四层负载均衡(tcp):在三层负载均衡的基础上,用IP+port接受请求,再转发到对应的机器。
七层负载均衡(http):根据虚拟的URL或IP,主机名接收请求,再转向相应的处理服务器。
3、四层负载均衡
基于IP+端口的负载均衡,主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
layer4
(1)在三层负载均衡的基础上,通过发布三层的IP地址(VIP),然后加上四层的端口号,来决定哪些流量需要负载均衡,对需要处理的流量进行NAT(路由转发)处理,转发至后台服务器,并记录TCP或者UDP的流量是哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。
(2)详细情况:以TCP为例,负载均衡设备在接收到第一个来自客户端的SYN请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,及三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发作用。
(3)对应的负载均衡器称为四层交换机(L4 switch),主要分析IP层及TCP/UDP层,实现四层负载均衡。此负载均衡器并不理解应用协议(如HTTP/FTP/MYSQL等)
(4)实现四层负载均衡的软件有:
F5:硬件负载均衡器,功能很好,但成本很高
LVS:重量级的四层负载均衡软件
Nginx:轻量级的四层负载均衡软件,带缓存功能,正则表达式较灵活
Haproxy:模拟四层转发,较灵活
4、七层负载均衡
基于虚拟的URL或主机IP的负载均衡。也成为“内容交换”。也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的服务器。
layer 7
(1)在四层负载均衡的基础上,在考虑应用层的特征。eg:同一个web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
(2)以常见TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接收到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
(3)七层对应的负载均衡器称为七层交换机(L7 Switch),除了支持四层负载均衡以外,还有分析应用层信息,如HTTP协议、URL或Cookie信息,实现七层负载均衡。
(4)实现七层负载均衡的软件
haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
apache:功能较差
MYsql proxy:功能尚可
5、4层负载均衡和7层负载均衡的区别
四层负载均衡 | 七层负载均衡 | |
---|---|---|
基于 | 基于IP Port | URL |
类似于 | 路由器 | 代理服务器 |
握手次数 | 1 | 2 |
复杂度 | 低 | 高 |
性能 | 高:无需解析内容 | 中:需要算法识别URL、Cookie和HTTP head等信息 |
安全性 | 低,无法识别DDoS等攻击 | 高,可以防御SYN cookie以及SYN flood等 |
额外功能 | 无 | 会话保持,图片压缩,防盗链等 |
最大的区别:效率和功能的区别。四层负载架构设计比较简单,无需解析具体信息,想要性能较高的负载均衡选择四层负载均衡,想要服务功能更全安全性更好,可以选七层负载均衡:nginx或haproxy。
三、LVS四层负载均衡
1、LVS介绍
(1)简称:Linux Virtual Server,也就是Linux虚拟服务器。由章文嵩博士发起的自由软件项目。
官网:www.linuxvirtualserver.org
(2)可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如www服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播放等。
(3)LVS软件作用:通过LVS提供的负载均衡技术和Linux操作系统实现一个高新能,高可用的服务器集群,具有良好的可靠性、可扩展性和操作性,从而以低廉的成本实现最优的服务性能。
2、LVS的优势和不足
(1)优势
高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。
稳定性强:是工作在网络4层之上仅作分发作用,在负载均衡软件里性能最强,稳定性最好,对内存和CPU资源消耗极低。
成本低廉:Lvs仅需一台服务器就能免费部署使用,性价比比较高。
配置简单:LVs的配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
支持多种算法:支持多种论调算法,可根据业务场景灵活调配使用。
支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
应用范围广:lvs工作在四层,几乎可以对所有应用做负载均衡。
(2)不足
工作在四层,不支持7层规则修改,机制过于庞大,不适合小规模使用。
3、LVS核心组件和专业术语
(1)核心组件
LVS的管理工具和内核模块ipvsadm/ipvs
Ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;
ipvs:工作于内核上的netfilter INPUT钩子之上的程序,可根据用户定义的集群实现请求转发。
(2)专业术语
VS:Virtual Server 虚拟服务
Director ,Balancer 负载均衡器、分发器
RS: Real Server 后端请求处理服务器
CIP:client IP 用户IP
VIP:Diector Virtual IP 负载均衡器虚拟IP
DIP:Director IP 负载均衡器IP
RIP:Real Server IP 后端请求处理服务器
4、LVS工作内核模型及工作模式
(1)当客户端请求到达负载均衡器的内核空间时,首先会到达PREROUTING链;
(2)当内核发现请求数据包的目的地址是本机时,将数据包发送往INPUT链;
(3)LVS用户空间的ipvsadm和内核空间的ipvs组成,ipvsadm用来定义规格规则,ipvs利用ipvsadm定义的规则工作,ipvs工作在INPUT链上,当时数据包达到INPUT链上时,首先会被ipvs检查,如果数据包里面的目的地址及端口没有在规则里面,将本条数据包放行至用户空间。
(4)如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链;
(5)最后经由POSTROUTING链发送往后端服务器。
LVS内核模型:
Linux学习:四层负载均衡详解相关推荐
- Nginx四层负载均衡详解
Nginx四层负载均衡 什么是四层负载均衡 四层负载均衡基于传输层协议包来封装的(如:TCP/IP),那我们前面使用的七层指的是应用层,它的组装在四层基础之上,无论是四层还是七层都是这是OSI网络模型 ...
- RHCE学习12LVS负载均衡详解
一.LVS集群概念性介绍 1.什么是集群? 服务器集群就是指将很多服务器集中起来一起进行同一种服务,只提供一个访问入口(域名或IP地址)在客户端看来就象是只有一个服务器 集群可以利用多个计算机进行并行 ...
- 大型网站架构系列:负载均衡详解(4)
原文:大型网站架构系列:负载均衡详解(4) 本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法.具体参考文章,详见最后的链接. 三 ...
- Tomcat安装、配置、优化及负载均衡详解
博客园 首页 新随笔 联系 管理 订阅 随笔- 31 文章- 0 评论- 25 Tomcat安装.配置.优化及负载均衡详解 一.常见JavaWeb服务器 1.WebLogic:是BEA ...
- Kubernetes上的负载均衡详解
如果您的应用程序是面向大量用户.会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时.不让用户感知到任何类似于"服务器繁忙!"的情况.这一诉求的典型解决方案是横向扩展部 ...
- 大型网站架构系列:负载均衡详解(3)
本次分享大纲 软件负载均衡概述 Ngnix负载均衡 Lvs负载均衡 Haproxy负载均衡 本次分享总结 一.软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司 ...
- Nginx代理功能与负载均衡详解
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...
- Spring Cloud:使用Ribbon实现负载均衡详解(下)
在上一篇文章(Spring Cloud:使用Ribbon实现负载均衡详解(上))中,我对 Ribbon 做了一个介绍,Ribbon 可以实现直接通过服务名称对服务进行访问.这一篇文章我详细分析一下如何 ...
- 大型网站系统架构系列:负载均衡详解(一)
大型网站系统架构系列:负载均衡详解(一) 2016-03-20 架构说 面对大量用户访问.高并发请求,海量数据,可以使用高性能的服务器.大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比 ...
- dubbo的负载均衡详解
本文来详细说下dubbo的负载均衡,常见的概念,性质,原理等. 文章目录 负载均衡概述 dubbo中的负载均衡 对多注册中心负载均衡 对多服务负载均衡 dubbo中的负载均衡算法详解 整体结构 Ran ...
最新文章
- 「图像分类」从数据集和经典网络开始
- JAVA中LinkedLockingQueue的简单使用
- 「AI激荡三十年」中的哈工大与王海峰:中国AI如何从贫瘠的孤岛,走向世界?...
- 冰豹lua驱动设置_通过编写“猜数字”游戏学习 Lua | Linux 中国
- 数据分析与挖掘实战-家用电器用户行为分析与事件识别
- 数学--数论--HDU 12151七夕节
- tushare pro接口_Python与交易策略分析amp;tushare/baostock库介绍(附代码)
- 算法提高 拿糖果【埃氏筛 动态规划】
- android:layout_margintop=3dip,南昌航空大学android期末复习资料之 编程题.pdf
- ocv特性_SOC-OCV曲线是否始终值得信赖的吗?
- 关于继承的理解,自带有白话文,更适合编程小白新手,简单易理解
- WIN7镜像中增加USB3.0驱动和语言包
- 火车头采集器文章伪原创插件工具
- 你还不知道web自动化测试是什么吧?今天让你发现新大陆
- opencv ipcam
- 邮件服务-postfix
- 微信网页授权登录的方法
- linux nas解决方案_Linux操作系统在NAS中的典型应用
- 搜狗2019年Q2财报:搜索业务增速领先行业,AI成为新增长引擎
- 红通告小程序_博主招募新选择,“红通告”助力红人推广
热门文章
- mysql audit log_关于MySQL AUDIT(审计)那点事
- 程序员数学(23)–图形的旋转与中心对称
- Python:实现simpson rule辛普森法则算法(附完整源码)
- SAP菜单中添加事务操作实例
- 谷歌浏览器 Cookie 设置
- 你想靠AI实现永生吗?
- 产品助理入门攻略(一枚入行3年的PM内心独白)
- Intel Edison 第一次使用的更新
- wps2016向程序发送命令_老司机帮您向程序发送命令时出现错误
【操作步骤】
的设置办法...
- [SAS Hard Coding] 车型对应车商代码