一文了解LVS负载均衡集群

目录

一,集群和分布式

1,集群的含义

2,分布式系统

3,集群和分布式的区别

4,集群的设计

二,Linux Virtual Server介绍

1,LVS简介

2,LVS集群类型的术语

三,LVS集群的工作模式

1,LVS-NAT模式(NAT模式)

2,LVS-DR(直接路由)

3,LVS-TUN(隧道模式)

4,LVS三种模式的对比

四,LVS-NAT部署负载均衡

1,ipvsadm工具选项说明

2,部署环境设定

3,部署负载均衡

4,配置客户端12.0.0.10测试


一,集群和分布式

1,集群的含义

Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统

集群:集群通信系统是一种用于集团调度指挥通信的移动通信技术,主要应用在专业移动通信领域。该系统具有的可用信道可为系统的全体用户共用,具有自动选择信道功能,它是共享资源、分担费用、共用信道设备及服务的多用途、高效能的无线调度通信系统。

群集:就像冗余部件可以使你免于硬件故障一样,群集技术则可以使你免于整个系统的瘫痪以及操作系统和应用层次的故障。一套服务器群集包含多台拥有共享数据存储空间的服务器,各服务器之间通过内部局域网进行互相连接;当其中一台服务器发生故障时,它所运行的应用程序将被与之相连的服务器自动接管;在大多数情况下,集群中所有的计算机都拥有一个共同的名称,集群系统内任意一台服务器都可被所有的网络用户所使用

有多台主机构成,但对外表现为一个整体

负载调度算法

MTBF:Mean Time Between Failure 平均无故障时间,正常时间
MTTR:Mean Time To Restoration( repair)平均恢复前时间,故障时间
A = MTBF /(MTBF+MTTR) (0,1):99%,99.5%,99.9%,99.99%,99.999%

SLA:服务等级协议(简称:SLA,全称:service level agreement)。是在一定开销下为保障服
务的性能和可用性,服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服
务质量的主要因素。在常规的领域中,总是设定所谓的三个9,四个9来进行表示,当没有达到这
种水平的时候,就会有一些列的惩罚措施,而运维,最主要的目标就是达成这种服务水平。

1年 = 365天 = 8760小时
90 = (1-90%)*365=36.5天
99 = 8760 * 1% = 87.6小时
99.9 = 8760 * 0.1% = 8760 * 0.001 = 8.76小时
99.99 = 8760 * 0.0001 = 0.876小时 = 0.876 * 60 = 52.6分钟
99.999 = 8760 * 0.00001 = 0.0876小时 = 0.0876 * 60 = 5.26分钟
99.9999= (1-99.9999%)*365*24*60*60=31秒

停机时间又分为两种,一种是计划内停机时间,一种是计划外停机时间,而运维则主要关注计划外停机时间。


轮询(Round Robin):将收到的访问请求按照顺序轮流分配给群集中的各节点,均 等地对待每台服务器,而不管服务器实际的连接数和系统负载。 

加权轮询(Weighted Round Robin):根据调度器设置的权重值来分发请求,权重 值高的节点优先获得任务并且分配的请求越多,这样可以保证性能高的节点承担更 多请求。 

最少连接(Least Connections):根据真实服务器已建立的连接数进行分配,将收 到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能相近,采用这种方式可以更好地均衡负载。 

加权最少连接(Weighted Least Connections):在服务器节点的性能差异较大的 情况下,调度器可以根据节点服务器负载自动调整权重,权重较高的节点将承担更 大比例的活动连接负载。 

IP_Hash根据请求来源的IP地址进行Hash计算,得到后端服务器,这样来自同一个IP的请求总是会落到同一台服务器上处理,以致于可以将请求上下文信息存储在这个服务器上,

url_hash 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。具体没研究过

fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡。也就是根据后端服务器时间来分配用户请求,响应时间短的优先分配

2,分布式系统

分布式存储:Ceph,GlusterFS,FastDFS,MogileFS

分布式计算:hadoop,Spark

分布式常见应用

  • 分布式应用-服务按照功能拆分,使用微服务(单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值服务)

  • 分布式静态资源--静态资源放在不同的存储集群上

  • 分布式数据和存储--使用key-value缓存系统

  • 分布式计算--对特殊业务使用分布式计算,比如Hadoop集群

3,集群和分布式的区别

集群:同一个业务系统,部署在多台服务器上。集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的。

分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务。

分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决定由给哪一台去完成响应,并且一台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败

4,集群的设计

1)设计原则

可扩展性—集群的横向扩展能力

可用性—无故障时间 (SLA service level agreement)

性能—访问响应时间

容量—单位时间内的最大并发吞吐量(C10K 并发问题)

2)设计实现

2.1 基础设施层面

  • 提升硬件资源性能—从入口防火墙到后端 web server 均使用更高性能的硬件资源

  • 多域名—DNS 轮询A记录解析

  • 多入口—将A记录解析到多个公网IP入口

  • 多机房—同城+异地容灾

  • CDN(Content Delivery Network)—基于GSLB(Global Server Load Balance)实现全局负载均衡,如:DNS

2.2 业务层面

  • 分层:安全层、负载层、静态层、动态层、(缓存层、存储层)持久化与非持久化

  • 分割:基于功能分割大业务为小服务

  • 分布式:对于特殊场景的业务,使用分布式计算

二,Linux Virtual Server介绍

1,LVS简介

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由zh5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。阿里的四层SLB(Server Load Balance)(服务器负载均衡)是基于LVS+keepalived实现

LVS工作原理:VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理”

 LVS功能:负载均衡的应用场景为高访问量的业务,提高应用程序的可用性和可靠性。

应用于高访问量的业务: 如果您的应用访问量很高,可以通过配置监听规则将流量分发到不同的云服务器 ECS(Elastic Compute Service 弹性计算服务)实例上。此外,可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS。可以根据业务发展的需要,随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。

消除单点故障:可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作。

同城容灾(多可用区容灾):为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾。当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(如:大约30s中断)切换到另外一个备可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。使用负载均衡时,您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。此外,建议您结合自身的应用需要,综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例,那么此种部署模式下的负载均衡服务的效率是最高的。

2,LVS集群类型的术语

  • VS:Virtual Server,Director Server(DS), Dispatcher(调度器),Load Balancer(lvs服务器)

  • RS:Real Server(lvs), upstream server(nginx), backend server(haproxy)(真实服务器)

  • CIP:Client IP(客户机IP)

  • VIP:Virtual serve IP VS外网的IP

  • DIP:Director IP VS内网的IP

  • RIP:Real server IP (真实IP)

访问流程:CIP <--> VIP == DIP <--> RIP

三,LVS集群的工作模式

  • lvs-nat:修改请求报文的目标IP,多目标IP的DNAT

  • lvs-dr:操纵封装新的MAC地址(直接路由)

  • lvs-tun:隧道模式

1,LVS-NAT模式(NAT模式)

lvs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某处的RS的RIP和

PORT实现转发

(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP

(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈

(3)支持端口映射,可修改请求报文的目标PORT

(4)VS必须是Linux系统,RS可以是任意OS系

2,LVS-DR(直接路由)

 

直接路由(Direct Routing):简称 DR 模式,采用半开放式的网络结构,与 TUN

模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。

负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道

直接路由,LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC首部

进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源

IP/PORT,以及目标IP/PORT均保持不变

3,LVS-TUN(隧道模式)

  1. RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址。

  2. RealServer的通道接口上需要配置VIP地址,以便接收DIP转发过来的数据包,以及作为响应的报文源IP。

  3. DIP转发给RealServer时需要借助隧道,隧道外层的IP头部的源IP是DIP,目标IP是RIP,而

    RealServer响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP

  4. 请求报文要经由Director,但响应不经由Director,响应由RealServer自己完成

  5. 不支持端口映射

  6. RS的OS须支持隧道功能

一般来说,隧道模式常会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近折返给客户端。在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结果取回,最后将结果返回给用户。

4,LVS三种模式的对比

类别NATTUNDR
优点端口转换WAN性能最好
缺点性能瓶颈服务器支持隧道模式不支持跨网段
真实服务器要求anyTunnelingNon-arp device
支持网络private(私网)LAN/WAN(私网/公网)LAN(私网)
真实服务器数量low (10~20)High (100)High (100)
真实服务器网关lvs内网地址Own router(网工定义)Own router(网工定义)

四,LVS-NAT部署负载均衡

1,ipvsadm工具选项说明

-A: 添加虚拟服务器
-D: 删除整个虚拟服务器
-s: 指定负载调度算法(轮询: rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc)
-a: 添加真实服务器(节点服务器)
-d: 删除某一个节点
-t: 指定VIP地址及TCP端口
-r: 指定RIP地址及TCP端口
-m: 表示使用NAT群集模式
-g: 表示使用DR模式
-i: 表示使用TUN模式
一w: 设置权重(权重为0时表示暂停节点)
-p 60: 表示保持长连接60秒
-l: 列表查看 LVS虚拟服务器(默认为查看所有)
-n: 以数字形式显示地址、端口等信息,常与"-l“选项组合使用。ipvsadm -ln

2,部署环境设定

负载调度器:配置双网卡 内网:192.168.18.100(ens33)  外网卡:12.0.0.1(ens37)
二台WEB服务器集群池:192.168.18.90,192.168.18.91
一台NFS共享服务器:192.168.18.109
客户端:12.0.0.10

3,部署负载均衡

部署NFS共享服务器192.168.18.109

关闭防火墙和setenforce

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

安装nfs-utils rpcbind

[root@localhost ~]# yum install -y nfs-utils rpcbind
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 1:nfs-utils-1.3.0-0.48.el7.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-42.el7.x86_64 已安装并且是最新版本
无须任何处理

开启服务

[root@localhost ~]# systemctl start rpcbind  #一般先开启
[root@localhost ~]# systemctl start nfs      #后开启基于rpcbind

创建站点文件

[root@localhost ~]# cd /opt     
[root@localhost opt]# ls
[root@localhost opt]# mkdir benet accp   #创建文件夹
[root@localhost opt]# ls
accp  benet
[root@localhost opt]# chmod 777 accp/ benet/  #赋予其他用户权限
[root@localhost opt]# echo "this is benet ">benet/index.html #写站点文件
[root@localhost opt]# echo "this is accp ">accp/index.html   #写站点文件
[root@localhost opt]# cat accp/index.html benet/index.html   #查看站点文件
this is accp 
this is benet 

设置共享策略

[root@localhost benet]# vim /etc/exports

/opt/benet 192.168.18.109/24(rw,sync)
/opt/accp 192.168.18.109/24(rw,sync)

~                                                                  
~                                                                  
~                                                                  
~  
:wq

发布服务,重启nfs服务

[root@localhost opt]# exportfs -rv
exporting 192.168.18.109/24:/opt/accp
exporting 192.168.18.109/24:/opt/benet
[root@localhost opt]# systemctl restart nfs

部署节点服务器

192.168.18.90部署

关闭防火墙和setenforce

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

安装httpd服务并开启

[root@localhost ~]# yum install httpd -y
已加载插件:fastestmirror, langpacks
12                                             | 3.6 kB     00:00   
123                                            | 3.6 kB     00:00   
Determining fastest mirrors
软件包 httpd-2.4.6-67.el7.centos.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# systemctl start httpd.service

查看nfs服务

[root@localhost ~]# showmount -e 192.168.18.109
Export list for 192.168.18.109:
/opt/accp  192.168.18.109/24
/opt/benet 192.168.18.109/24

将站点文件/opt/benet挂载到/var/www/html

[root@localhost network-scripts]# vim /etc/fstab

#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c804f3f5-9cbd-4caa-8c27-c7e25d804c83 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0        /mnt            iso9660                  defaults        0 0 
192.168.18.109:/opt/benet /var/www/html/  nfs         defaults,_netdev 0 0 

 mount -a 重新挂载文件 查看挂载

[root@localhost network-scripts]# mount -a 
[root@localhost network-scripts]# df
文件系统                     1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root   20961280 4696664 16264616   23% /
devtmpfs                   1000032       0  1000032    0% /dev
tmpfs                      1015952       0  1015952    0% /dev/shm
tmpfs                      1015952   25604   990348    3% /run
tmpfs                      1015952       0  1015952    0% /sys/fs/cgroup
/dev/sda1                  2086912  164008  1922904    8% /boot
tmpfs                       203192      12   203180    1% /run/user/42
tmpfs                       203192       0   203192    0% /run/user/0
/dev/sr0                   4414592 4414592        0  100% /mnt
192.168.18.109:/opt/benet 17811456 4592128 13219328   26% /var/www/html

修改网卡配置文件

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=23aa0806-6ee6-4374-a7f0-9bf4979160e9
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.18.90
NTEMASK=255.255.255.0
GATEWAY=192.168.18.100   #网关指向调度服务器内网地址
DNS2=8.8.8.8


:wq

重启网卡服务

[root@localhost network-scripts]# systemctl restart network

 192.168.18.91部署

关闭防火墙和setenforce

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

安装httpd服务并开启

[root@localhost ~]# yum install httpd -y
已加载插件:fastestmirror, langpacks
12                                             | 3.6 kB     00:00   
123                                            | 3.6 kB     00:00   
Determining fastest mirrors
软件包 httpd-2.4.6-67.el7.centos.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# systemctl start httpd.service

查看nfs服务

[root@localhost ~]# showmount -e 192.168.18.109
Export list for 192.168.18.109:
/opt/accp  192.168.18.109/24
/opt/benet 192.168.18.109/24

将站点文件/opt/accp挂载到/var/www/html

[root@localhost network-scripts]# vim /etc/fstab

#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=c804f3f5-9cbd-4caa-8c27-c7e25d804c83 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0        /mnt            iso9660                  defaults        0 0 
192.168.18.109:/opt/accp /var/www/html/  nfs         defaults,_netdev 0 0 

         挂载站点文件不同

 mount -a 重新挂载文件 查看挂载

[root@localhost network-scripts]# mount -a 
[root@localhost network-scripts]# df
文件系统                     1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root   20961280 4696664 16264616   23% /
devtmpfs                   1000032       0  1000032    0% /dev
tmpfs                      1015952       0  1015952    0% /dev/shm
tmpfs                      1015952   25604   990348    3% /run
tmpfs                      1015952       0  1015952    0% /sys/fs/cgroup
/dev/sda1                  2086912  164008  1922904    8% /boot
tmpfs                       203192      12   203180    1% /run/user/42
tmpfs                       203192       0   203192    0% /run/user/0
/dev/sr0                   4414592 4414592        0  100% /mnt
192.168.18.109:/opt/benet 17811456 4592128 13219328   26% /var/www/html

修改网卡配置文件

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=23aa0806-6ee6-4374-a7f0-9bf4979160e9
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.18.90
NTEMASK=255.255.255.0
GATEWAY=192.168.18.100   #网关指向调度服务器内网地址
DNS2=8.8.8.8


:wq

重启网卡服务

[root@localhost network-scripts]# systemctl restart network

部署调度服务器192.168.18.100

添加网卡

 

关闭防火墙和setenforce

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0

查看网卡

查看网卡配置文件配置ens37网卡配置文件

更改前

 更改后

 保存退出重启网卡服务

[root@localhost network-scripts]# systemctl restart network

查看网卡

 

打开路由转发功能

[root@localhost network-scripts]# vim /etc/sysctl.conf 

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
:wq
[root@localhost network-scripts]# sysctl -p  #查看
net.ipv4.ip_forward = 1

查看iptable策略

[root@localhost network-scripts]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination 

添加策略

[root@localhost network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.18.0/24 -o enss37 -j SNAT --to 12.0.0.1


在nat表POSTROUTING链添加192.168.18.0网段的有ens37转发12.0.0.1

查看策略是否添加成功

[root@localhost network-scripts]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.18.0/24      0.0.0.0/0            to:12.0.0.1

添加ip_vs模块

[root@localhost network-scripts]# cat /proc/net/ip_vs  #查看不存在
cat: /proc/net/ip_vs: 没有那个文件或目录
[root@localhost network-scripts]# modprobe ip_vs   #添加模块
[root@localhost network-scripts]# cat /proc/net/ip_vs  #需要添加后才能显示
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

安装ipvsadm工具

 开启服务

[root@localhost network-scripts]# systemctl start ipvsadm.service 
Job for ipvsadm.service failed because the control process exited with error code. See "systemctl status ipvsadm.service" and "journalctl -xe" for details.
这是因为没有/etc/sysconfig/ipvsadm
[root@localhost network-scripts]# ipvsadm-save >/etc/sysconfig/ipvsadm  #保存配置文件
[root@localhost network-scripts]# systemctl start ipvsadm.service #现在可以开启了

创建虚拟服务器(注意:NAT模式要两块网卡,调度器的地址是外网口地址)

(LVS的负载调度算法有四种最常用的:轮询算法(rr)、加权轮询(wrr)、最少轮询(lc)、加权最少轮询(wlc))(选项 "-A"表示添加虚拟服务器,"-t"用来指定VIP地址及TCP端口,"-s"用来指定负载调度算法——rr、wrr、lc、wlc)

[root@localhost network-scripts]# ipvsadm -C   #防止出问题可以先清空策略
[root@localhost network-scripts]# ipvsadm -A -t 12.0.0.1:80 -s rr
 #指定IP地址 外网的入口  -s指定调度算法 rr  轮询

添加服务器节点

先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式

(选项 "-a"表示添加真实服务器,"-t"用来指定VIP地址及TCP端口,"-r"用来指定RIP地址及TCP端口,"-m"表示使用NAT群集模式("-g"是DR模式,"-i"是TUN模式)
{ -m参数后面还可以跟-w的参数,这里没有做的"-w"用来设置权重(权重为0时表示暂停节点)})

[root@localhost network-scripts]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.18.91:80 -m
[root@localhost network-scripts]# ipvsadm -a -t 12.0.0.1:80 -r 192.168.18.90:80 -m

启动

[root@localhost network-scripts]# ipvsadm   #启动
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.18.90:http           Masq    1      0          0         
  -> 192.168.18.91:http           Masq    1      0          0         
[root@localhost network-scripts]# ipvsadm -ln  #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  12.0.0.1:80 rr
  -> 192.168.18.90:80             Masq    1      0          0         
  -> 192.168.18.91:80             Masq    1      0          0

补充:删除服务器节点

ipvsadm -d -r 12.0.0.1:80 -t 192.168.18.90:80

/需要从服务器池中删除某一个节点时,使用选项"-d"。执行删除操作必须指定目标对象,包括节点地址、虚拟IP地址。如上所示的操作将会删除LVS群集12.0.0.1中的节点192.168.18.90

若需要删除整个虚拟服务器时,使用选项-D并指定虚拟IP地址即可,无需要指定节点。例如:“ipvsadm -D -t 12.0.0.1:80",则删除此虚拟服务器。

ipvsadm -L    //查看节点状态,加个"-n"将以数字形式显示地址、端口信息
ipvsadm-save  > /etc/sysconfig/ipvsadm    //保存策略

使用导出/导入工具ipvsadm-save/ipvsadm-restore可以保存、恢复LVS策略,方法类似于iptables的规则的导出、导入

4,配置客户端12.0.0.10测试

(这里以win7为例做的)

配置网卡

win+r打开

 

测试连通性

 

网页测试服务负载均衡

从上图网页测试可以看出实现了负载均衡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值