lvs负载均衡实战(1)

Cluster概念

- 系统拓展方向:

Scale UP:向上拓展、增强
Scale Out:向外拓展,增加设备,调度分配问题,Cluster

  • Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统
  • Linux Cluster类型:
    1、LB:Load Balancing,负载均衡
    2、HA:High Availiabilty,高可用,SPOF
    MTBF:平均无故障时间
    MTTR:平均恢复前时间
    A=MTTR/(MTBF+MTTR) (0,1) 99%,99.5%,99.9%,99.999%
    3、HPC:高性能 www.top500.org
    分布式系统:
    分布式存储:云盘
    分布式计算:hadoop,Spark

Cluster分类

LB Cluster的实现
硬件
F5 Big-IP
Citrix Netscaler
A10 A10
软件
lvs :Linux Virtual Server
nginx:支持七层调度
haproxy:支持七层调度
ats:apache traffic server,yahoo捐助
perlbal:perl编写
pound

基于工作的协议层次划分:

传输层(通用):DPORT(目标端口)
LVS:
Nginx:stream
haproxy:mode tcp
应用层(专用):针对特定协议,自定义的请求模型分类
proxy server
http:nginx,httpd,haproxy(mode httpd), 。。。
fastcgi:nginx,httpd,。。。。
mysql:mysql-proxy,。。。

Cluster相关

会话保持:负载均衡
(1)session sticky:同一用户调度固定服务器 #同一用户绑定到一台服务器
Source IP(原地址):LVS sh算法(对某一特定服务而言)#同一IP的用户绑定到一台服务器
Cookie #一个客户端绑定一个服务器
(2)session replication:每台服务器拥有全部session #内存消耗太大。
session multicast cluster
(3)session server:专门的session服务器
Memcached,Redis
HA集群实现方案
keepalived:vrrp协议 #解决调度器损坏的问题
ais:应用接口规范
heartbeat
cman+rgmanager(RHCS)
coresync_prcemaker

LVS介绍

LVS:负载调度器,集成内核(发明人:章文嵩)
官网:http://www.linuxvirtualserver.org/
VS :Virtual Server,负责调度 #VS(调度器)
RS:Real Server,负责真正提供服务 #RS(后端服务器),在nginx里叫上游服务器
L4:四层路由器或交换机
工作原理:VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS
iptables/netfilter:
iptables:用户空间的管理工具
netfilter:内核空间上的框架
流入:PREROUTING ——>INPUT
流出:OUTPOT——>POSTROUTING
转发:PREROUTING——>FORWARD——>POSTROUTING
DNAT:目标地址转换;PREROUTING
LVS集群体系结构
在这里插入图片描述
VIP公网地址
Real server私网地址

LVS术语

lvs集群类型中的术语
VS:Virtual Server,Director Server(DS)
Dispatcher(调度器),Load Balancer
RS:Real Server(LVS),upstream server(nginx)
backend server(haproxy)
CIP:Client IP #客户端IP
VIP:virtual server IP #VS外网中的IP
DIP:Director IP #VS内网中的IP
RIP:Real server IP #服务器IP
访问流程:CIP<—>VIP==DIP<—>RIP

LVS集群类型

lvs:ipvsadm/ipvs
ipvsadm:用户空间的命令行公式,规则管理器
用于管理集群服务及RealServer
ipvs:工作于内核空间的netfilter的INPUT钩子上的框架
lvs集群的类型
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
lvs-dr:操作封装新的MAC地址
lvs-tun:在原请求IP报文之外新加一个IP首部
lvs-fullnat:修改请求报文的源和目标IP
在这里插入图片描述
lvs-nat工作原理在这里插入图片描述

lvs-nat模式

lvs-nat:
本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP应在同一个IP网络,且应使用私网地址;在同一网段时RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发,Diretcor易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统

NAT模式

在这里插入图片描述
在这里插入图片描述
LVS-DR模型
LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变
(1)Director和各RS都配置有VIP
(2)确保前端路由器将目标IP为VIP的请求报文发往Director

   <1> 在前端网关做静态绑定VIP和Director的MAC地址
    <2>在RS上使用arptables工具
arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
<3>在RS上修改内核参数以限制arp通告及应答级别/proc/sys/net/ipv4/conf/all/arp_ignore(忽略)
 /proc/sys/net/ipv4/conf/all/arp_announce(发布)

#一般用第三种方法
在这里插入图片描述(3)RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不经由Director
(4)RS和Director要在同一个物理网络#但逻辑上可以用两个网段,对外网卡需要一个地址,对内网卡需要两个地址,总共3个ip
(5)请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
(6)不支持端口映射(端口不能修改)
(7)RS可使用大多数OS系统

VS/DR体系结构

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值