打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LVS搭建负载均衡集群(一)——NAT模式

(1).集群技术的分类

  集群技术主要分为三大类:负载均衡(Load Balance)集群,简称LB集群;高可用(High Availability)集群,简称 HA 集群;高性能计算(High Perfermance Computing)集群,简称 HPC 集群。

(2).常见的LB集群实现手段

  而常见的LB集群实现手段为:硬件实现的F5负载均衡器;软件实现的LVS(4层,传输层)和Nginx(7层,应用层)。其中,LVS是基于iptables实现(所以使用与iptables类似),由国内开发的开源软件,其性能优于Nginx,但只能实现4层。

(3).LVS的模式和工作原理

  LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Rounting(直接路由),分别对应NAT模式、TUN模式、DR模式。不同的转发方式决定了不同的集群网络结构。

 1)NAT模式介绍

  NAT:网络地址转换;DNAT:目标地址转换,改变的是目标地址;SNAT:源地址转换,改变的是源地址;LVS-NAT:使用SNAT和DNAT完成报文的转发。

  NAT方式可支持任何的操作系统,以及私有网络,并且只需一个Internet IP地址,但是整个系统的性能受到限制。因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为了新的瓶颈。

 2)TUN模式介绍

  director(分发器)分配请求到不同的real server,然后real server处理请求后直接回应给用户,这样director负载均衡器仅需处理客户机与服务器的一半连接。IP Tunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点。real server可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。服务器必须拥有正式的IP地址用于与客户机直接通信,并且所有服务器必须支持IP隧道协议。

 3)DR模式介绍(最常用的模式)

  与TUN模式类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct Routing与IP Tunneling相比,没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。

 4)NAT工作原理

  客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

  简单来说可以分为四步:第一步、客户端请求访问,源地址:CIP,目标地址:VIP;第二步、请求报文到达负载均衡器,源地址:CIP,目标地址:RIP;第三步、Real Server接收到报文,处理并响应(回头了),源地址:RIP,目标地址:CIP;第四步、负载均衡器收到报文,根据之前的转发修改记录还原报文,源地址VIP,目标地址CIP。

  CIP:客户端的IP;VIP:虚拟IP,对外公网IP,负载均衡器(Director)的外网IP;DIP:负载均衡器(Director)的内网IP,与服务器交互的IP;RIP:真实服务器的IP。

(4).实验

  以下128网段是外网IP,5网段是内网IP

youxi1  192.168.5.101,192.168.128.213    负载均衡器(Director)

youxi2  192.168.5.102(网关为youxi1的内网IP) 真实服务器1

youxi3  192.168.5.103(网关为youxi1的内网IP) 真实服务器2

 1)首先在youxi2和youxi3两台真实服务器上安装httpd用于测试

[root@youxi2 ~]# yum -y install httpd[root@youxi2 ~]# systemctl start httpd.service[root@youxi2 ~]# echo youxi2 > /var/www/html/index.html[root@youxi3 ~]# yum -y install httpd[root@youxi3 ~]# systemctl start httpd.service[root@youxi3 ~]# echo youxi3 > /var/www/html/index.html

  如果是和我一样使用yum安装,那么安装完成后需要将网关改为192.168.5.101。

 2)开启youxi1的路由转发功能

[root@youxi1 ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 1  //添加或修改[root@youxi1 ~]# sysctl -p  //重新加载sysctlnet.ipv4.ip_forward = 1

 3)安装ipvsadmin

[root@youxi1 ~]# yum -y install ipvsadm[root@youxi1 ~]# systemctl start ipvsadm.service

 4)使用ipvsadm命令设置规则

  注意:ipvsadm保存的时候会使用短域名,所以需要注意/etc/hosts文件里的短域名和IP配对。

[root@youxi1 ~]# ipvsadm -A -t 192.168.128.213:80 -s rr  //-A添加虚拟服务器,-t服务器的IP地址和端口,-s指定调度算法[root@youxi1 ~]# ipvsadm -a -t 192.168.128.213:80 -r 192.168.5.102 -m  //-a添加真实服务器,-r真实服务器的IP地址和端口,-m使用NAT模式[root@youxi1 ~]# ipvsadm -a -t 192.168.128.213:80 -r 192.168.5.103 -m[root@youxi1 ~]# ipvsadm -Ln  //-L列出IPVS表,-n显示IP和端口IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.128.213:80 rr  -> 192.168.5.102:80             Masq    1      0          0  -> 192.168.5.103:80             Masq    1      0          0[root@youxi1 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm  //保存,也可以使用ipvsadm -S[root@youxi1 ~]# cat /etc/sysconfig/ipvsadm-A -t youxi1:http -s rr-a -t youxi1:http -r youxi2.cn:http -m -w 1-a -t youxi1:http -r 192.168.5.103:http -m -w 1

  -s选项能够调用的算法有rr(表示round-robin,轮询)、wrr、lc、wlc(加权最小连接)、lblc、lblcr、dh、sh、sed、nq,默认调度的是wlc。

  调用算法详细请看:https://blog.csdn.net/weixin_40470303/article/details/80541639

 5)注意,如果防火墙是打开的记得添加端口号

[root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcpsuccess[root@youxi1 ~]# firewall-cmd --reloadsuccess[root@youxi2 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcpsuccess[root@youxi2 ~]# firewall-cmd --reloadsuccess[root@youxi3 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcpsuccess[root@youxi3 ~]# firewall-cmd --reloadsuccess

  6)测试

 

  刷新

  如果再刷新又会变为youxi2。

(5).ipvsadm的常用命令

  ipvsadm -Ln查看规则,显示内核虚拟服务器表

[root@youxi1 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.128.213:80 rr  -> 192.168.5.102:80             Masq    1      0          3           -> 192.168.5.103:80             Masq    1      0          1  

  ipvsadm -Lnc查看客户端连接分发器和真实服务器的情况

[root@youxi1 ~]# ipvsadm -LncIPVS connection entriespro expire state       source             virtual            destinationTCP 00:50  SYN_RECV    192.168.128.137:49464 192.168.128.213:80 192.168.5.103:80TCP 00:50  SYN_RECV    192.168.128.137:49467 192.168.128.213:80 192.168.5.103:80TCP 00:26  SYN_RECV    192.168.128.137:49433 192.168.128.213:80 192.168.5.103:80TCP 00:50  SYN_RECV    192.168.128.137:49465 192.168.128.213:80 192.168.5.102:80TCP 00:26  SYN_RECV    192.168.128.137:49432 192.168.128.213:80 192.168.5.102:80

  还有ipvsadm -Ln --stats查看分发情况和ipvsadm -Ln --rate查看速率

[root@youxi1 ~]# ipvsadm -Ln --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes  -> RemoteAddress:PortTCP  192.168.128.213:80                 23     8807      782   627655    38778  -> 192.168.5.102:80                   11     5357      524   404849    26620  -> 192.168.5.103:80                   12     3450      258   222806    12158[root@youxi1 ~]# ipvsadm -Ln --rateIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS  -> RemoteAddress:PortTCP  192.168.128.213:80                  0        0        0        0        0  -> 192.168.5.102:80                    0        0        0        0        0  -> 192.168.5.103:80                    0        0        0        0        0

  ipvsadm -Z清空当前虚拟服务器计数器(连接数等信息);ipvsadm -C清空所有规则。

来源:https://www.icode9.com/content-4-333001.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何编写LVS对Real Server的健康状态检测脚本
负载均衡LVS集群详解
使用 LVS 实现负载均衡原理及安装配置详解
架构设计:负载均衡层设计方案(5)
论文:Linux集群系统研究
Lvs负载均衡群集
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服