负载均衡集群、LVS介绍及调度算法、LVS NAT模式搭建

负载均衡集群介绍

主流开源软件LVS、keepalived、haproxy、nginx等
其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做7层使用
keepalived的负载均衡功能其实就是lvs lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而nginx仅仅支持http,https,mail,haproxy也支持MySQL这种
相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求

LVS介绍

LVS是由国人章文嵩开发 流行度不亚于apache的httpd,基于TCP/IP做的路由和转发,稳定性和效率很高
LVS最新版本基于Linux内核2.6,有好多年不更新了
LVS有三种常见的模式:NAT、DR、IP Tunnel
LVS架构中有一个核心角色叫做分发器(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs)

LVS NAT模式

这种模式借助iptables的nat表来实现 用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的rs上去 rs需要设定网关为分发器的内网ip 用户请求的数据包和返回给用户的数据包全部经过分发器,所以分发器成为瓶颈 在nat模式中,只需要分发器有公网ip即可,所以比较节省公网ip资源。

LVS IP Tunnel模式

这种模式,需要有一个公共的IP配置在分发器和所有rs上,我们把它叫做vip 客户端请求的目标IP为vip,分发器接收到请求数据包后,会对数据包做一个加工,会把目标IP改为rs的IP,这样数据包就到了rs上 rs接收数据包后,会还原原始数据包,这样目标IP为vip,因为所有rs上配置了这个vip,所以它会认为是它自己

LVS DR模式

这种模式,也需要有一个公共的IP配置在分发器和所有rs上,也就是vip 和IP Tunnel不同的是,它会把数据包的MAC地址修改为rs的MAC地址 rs接收数据包后,会还原原始数据包,这样目标IP为vip,因为所有rs上配置了这个vip,所以它会认为是它自己

LVS的调度算法
轮询 Round-Robin rr
加权轮询 Weight Round-Robin wrr
最小连接 Least-Connection lc
加权最小连接 Weight Least-Connection wlc
基于局部性的最小连接 Locality-Based Least Connections lblc
带复制的基于局部性最小连接 Locality-Based Least Connections with Replication lblcr
目标地址散列调度 Destination Hashing dh
源地址散列调度 Source Hashing sh

LVS NAT模式搭建

NAT模式搭建 – 准备工作
三台机器 分发器,也叫调度器(简写为dir)
内网:218.130,外网:194.128(vmware仅主机模式) rs1
内网:218.129,设置网关为192.168.218.2 rs2
内网:218.131,设置网关为192.168.218.2
三台机器上都执行执行
systemctl stop firewalld;
systemctl start iptables-services; iptables -F; service iptables save

在dir上安装ipvsadm
yum install -y ipvsdam

在dir(分发器)上编写脚本
[[email protected] ~]# vim /usr/local/sbin/lvs_nat.sh
#! /bin/bash
// director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
// 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
// 注意区分网卡名字,我这里的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
// director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.64.0/24 -j MASQUERADE
// director设置ipvsadm规则
IPVSADM=‘/usr/sbin/ipvsadm‘
$IPVSADM -C
// -C=clear,清除规则
$IPVSADM -A -t 192.168.64.151:80 -s rr
// -A:=add,添加规则,定义算法的规则;
// -t:分发器ip(外网ip);
// -s 指定算法;
// -p:指定超时时间(解决session问题:保证同一请求被分发到同一rs上)单位为秒。
// 因为添加-p选项后会影响测试效果,所以在此不加该参数(注:时间不能设置为0)
$IPVSADM -a -t 192.168.64.151:80 -r 192.168.159.131:80 -m -w 1
$IPVSADM -a -t 192.168.64.151:80 -r 192.168.159.132:80 -m -w 1
// -a:=add,增加nat架构中的rs;
// -r:指定rs的IP;
// -m:指定LVS模式为NAT(masquerade)
// -w:=weight,指定权重

执行脚本:
[[email protected] ~]# sh /usr/local/sbin/lvs_nat.sh
// 执行该脚本时无错误输出说明没问题。

查看ipvsadm规则:
[[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.64.151:80 rr
-> 192.168.159.131:80 Masq 1 0 0
-> 192.168.159.132:80 Masq 1 0 0
配置rs

在两台rs上安装Nginx,并分别设置主页来区分两台机器。

[[email protected] ~]# yum install -y nginx
[[email protected] ~]# systemctl start nginx

// 如果nginx 是yum安装,其主页目录为 /usr/share/nginx/html/index.html
测试

访问外网ip:192.168.194.128

[[email protected] ~]# curl 192.168.194.128
This is real server 2
[[email protected] ~]# curl 192.168.194.128
this is real server 1
[[email protected] ~]# curl 192.168.194.128
This is real server 2
[[email protected] ~]# curl 192.168.194.128
this is real server 1

原文地址:http://blog.51cto.com/13067688/2119303

时间: 2024-10-12 23:47:01

负载均衡集群、LVS介绍及调度算法、LVS NAT模式搭建的相关文章

负载均衡集群企业及应用实战--LVS

负载均衡集群企业及应用实战-Lvs LVS是Linux Virtual Server的简称: 也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org. 现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块, 无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS自从19

LVS负载均衡集群架构介绍

为什么需要使用负载均衡呢?这是一个必较重要的问题 实际生产环境中某单台服务器已不能负载日常用访问压力时,就需要使用负载均衡,把用户的请求数据分担到(尽可能平均分配)后端所有功能同等的集群的节点上,同样也是为了解决单台服务器故障问题,从而提高用户的访问体验. 1.LVS的介绍 LVS(linux virtual server)LINUX虚拟服务器,是一个虚拟的服务器集群系统,可以在linux和unix系统中运行,1985年开发研究的项目 http://www.linuxvirtualserver.

负载均衡集群介绍、LVS介绍及调度算法、LVS NAT模式搭建

负载均衡集群介绍 实现负载均衡集群的软件有:LVS.keepalived.Nginx.haproxy等.其中LVS属于四层(网络OSI模型):Nginx 属于七层:haproxy既可以认为是四层,也可以当作是七层使用. keepalived 的负载均衡功能其实就是lvs LVS.haproxy这种四层负载均衡可以分发除80端口以外的通信,如mysql-3306:而nginx 仅仅支持http,https,mail. 相对来说,LVS 这种四层的更加稳定,能承受更多的请求,而nginx 这种七层的

负载均衡集群、LVS算法、搭建NAT模式LVS架构

18.6 负载均衡集群介绍 实现负载均衡集群的软件有:LVS.Keepalived.Nginx.haproxy等.其中LVS属于四层(网络OSI模型):Nginx属于七层:haproxy既可以认为是四层,也可以当做是七层使用.LVS.haproxy这种四层负载均衡可以分发除80端口以外的通信,如MySQL-3306:而Nginx仅仅支持http,https,mail.相对来说,LVS这种四层的更加稳定,能承受更多的请求,而Nginx这种七层的更加灵活,能实现更多的个性化需求. 18.7 LVS介

linux集群系列(3) --- LVS之负载均衡集群DR实例

一.简介     1.1.  负载均衡集群:LB (load balancing) LVS 是linux virtual server 的简写,即linux的虚拟服务器,是一个虚拟的服务器集群系统.ip负载均衡技术是在负载调度器的实现技术中效率最高的,在已有的ip负载均衡技术中,主要通过网络地址转换(即VS/NAT 技术).由于使用nat技术会使分派器成为瓶颈,所以提出了通过ip隧道实现虚拟服务器(即VS/TUN)和通过直接路由实现虚拟服务器的方法即VS/DR. VS/NAT.VS/TUN和VS

负载均衡--集群   LVS+keepalived

常用的负载均衡开源软件有: nginx.lvs.keepalived 商业的硬件负载设备: F5.Netscale 1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群http://www.aminglinux.com/bbs/data/attachment/forum/201406/16/115112w1we1x4e5ueewzrd.png LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).server集

LB(load balance)负载均衡集群之LVS

LB(load balance)负载均衡集群 原理:当用户的请求过来,会直接发送到分发器上(Director Server),然后它把用户的请求根据预先设置好的算法,智能均衡的分发到后端真是的服务器上(real server).如果不同的机器,可能请求的数据不一样,为了避免这样的情况发生,使用共享存储,保证所有的用户请求的数据是一样的. 常用的负载均衡开源软件有: lvs,keepalived,haproxy,nginx,apache,heartbeat 商业的硬件负载设备: F5,Netsca

LB负载均衡集群 - NAT

前提: 客户机 : eth0   192.168.0.200       eth1  192.168.205.129 dir主机: eth0   192.168.0.166       eth1  192.168.205.128 rs1主机: eth0  192.168.0.207 rs2主机: eth0  192.168.0.208 rs1 和 rs2的网关是dir  192.168.0.166 常用的负载均衡开源软件有: nginx.lvs.keepalived 商业的硬件负载设备: F5.

2015-06-05/2015-06-08LB负载均衡集群

常用的负载均衡开源软件有: nginx.lvs.keepalived 商业的硬件负载设备: F5.Netscale 1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).server集群层(Real server)和共享存储层 LVS可分为三种工作模式:  ( dr模式参考这篇文章  http://os.51cto.com/art/201105/264303

LB负载均衡集群

常用的负载均衡开源软件有: nginx.lvs.keepalived 商业的硬件负载设备: F5.Netscale 1. LB.LVS介绍:LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).server集群层(Real server)和共享存储层LVS可分为三种工作模式: NAT(调度器将请求的目标ip即vip地址改为Real server的ip, 返回的数据包也经过调度器,