设为首页 收藏本站
查看: 1047|回复: 0

[经验分享] centos 7.3 LVS的NAT模式负载均衡实操

[复制链接]

尚未签到

发表于 2019-1-5 10:03:30 | 显示全部楼层 |阅读模式
  一、LB集群原理
  1、实现手段
       硬件:F5负载均衡器
       软件:LVS(4层,网络层),Nginx(7层,应用层)
  2、负载均衡架构图

  说明:
  LVS集群使用三层架构
  第一层:负载均衡层(Load Balancer)
  位于整个集群系统的最前端,由一台或多台负载调度器(Director Server,以下简称dir)组成。
  dir的作用类似一个路由器,它含有为完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给服务器群组层的应用服务器(Real Server)
  ps:客户认为服务是来自一个虚拟IP地址上
  
  第二层:服务器群组层(Server Arrary)
  由一组实际运行应用服务的机器组成。Real Server(以下简称rs)可以是Web服务器、Mail服务器、FTP服务器、DNS服务器等
  
  第三层:共享存储层(Shared Storage)
  是为所有rs提供共享存储空间和内容一致性的存储区域,一般由磁盘阵列设备组成。
  一般可以通过NFS网络文件系统共享数据(在繁忙的业务系统中,性能并不太好),此时可以用集群文件系统,如 Red Hat 的 GFS 文件系统,Oracle 提供的 OCFS2 文件系统等
  
  3、LVS分3种模式
  (a)NAT(网络地址映射):通过网络地址转换的方法来实现调度
       优点:支持所有操作系统及私有网络,且只需一个公网 IP 地址
       缺点:用户请求和响应报文都必须经过dr地址重写,当用户请求越来越多时,调度器的处理能力将成为瓶颈。
  
  (b)DR(直接路由模式):通过改写请求报文的MAC地址,将请求发送到 rs,而 rs 将响应直接返回给客户 ——》 性能最好
  
  (c)TUN(IP隧道模式):dr采用IP隧道技术将用户请求转发到某个rs,而这个rs将直接响应用户请求,不再经过dr ——》dr只处理用户的报文请求,从而使集群系统吞吐量大大提高
  ps:还有第 4 种模式 FULLNAT(淘宝ospf+lvs)
  

  二、主机环境
  服务器主机:
  系统版本:centos7.3
  master:192.168.0.134
  slave:192.168.0.140
  分发器
  内网IP:192.168.0.139
  外网ip:192.168.56.128
  1、分发器 director 配置
    —— 网络配置前期工作
  (a)配置网络环境,增加网卡ens37(需要添加HWADDR不同的网卡,两个网卡模式分别要属于不同的链接模式分别为桥接和NAT)

  (b)生成ens37配置文件,配置VIP 地址为 192.168.56.128
      cp /etc/sysconfig/network-scripts/ifcfg-ens33  /etc/sysconfig/network-scripts/ifcfg-ens37
    (i)DEVICE=ens37
      (ii)IPADDR=192.168.56.128(vip)
       (iii)GATEWAY=192.168.0.1
  (c)重启网络服务:service network restart
    内网ip:192.168.0.139
    外网ip:192.168.56.128
  物理机可以ping通VIP

  —— 开启路由转发功能,安装配置LVS-NAT
  1、安装lvs核心软件包 yum install -y ipvsadm
  2、写脚本管理(开启路由转发、添加虚拟服务、添加虚拟服务后端的real server)
  vim /usr/local/sbin/lvs_nat.sh
  #!/bin/bash
  echo 1 > /proc/sys/net/ipv4/ip_forward
  echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
  echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
  echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
  echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
  iptables -t nat -F
  iptables -t nat -X
  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
  IPVSADM='/sbin/ipvsadm'
  $IPVSADM -C
  $IPVSADM -A -t 192.168.56.128:80 -s rr
  $IPVSADM -a -t 192.168.56.128:80 -r 192.168.0.134:80 -m -w 1
  $IPVSADM -a -t 192.168.56.128:80 -r 192.168.0.140:80 -m -w 1
  参数说明:
  -A:增加一个虚拟服务   
  -a:增加real server
  -r:指定real server 的 IP地址
  -t:表示TCP服务      
  -s:指定调度算法   rr:轮询算法(对调度算法感兴趣的大家可以查查~)
  -m(masquerade):也就是NAT方式的LVS
  3、执行脚本 sh !$
  4、查看规则 ipvsadm -ln  
  [root@www ~]#  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.56.128:80 rr
    -> 192.168.0.134:80             Masq    1      0          0         
    -> 192.168.0.140:80             Masq    1      0          0   
  二、真实服务器real server配置
  master: 192.168.0.134
  slave: 192.168.0.140
  master和slave都要修改网卡配置文件:  /etc/sysconfig/network-scripts/ifcfg-ens33
  然后重启网络:systemctl restart network
  1、网关GATEWAY都要指向分发器 dir 的内网 IP192.168.56.128

  三、测试
  1、修改nginx的默认页面(好区分)
  master:echo "this is master server" > /usr/share/nginx/html/index.html
  slave:echo "this is slave server"  > /usr/share/nginx/html/index.html
  [root@www ~]# curl 192.168.56.128
  this is master server
  [root@www ~]# curl 192.168.56.128
  this is slave server
  [root@www ~]# curl 192.168.56.128
  this is master server
  [root@www ~]# curl 192.168.56.128
  this is slave server
  [root@www ~]# curl 192.168.56.128
  this is master server
  [root@www ~]# curl 192.168.56.128
  this is slave server
  2、real server(master,slave)开启 nginx 服务:/etc/init.d/nginx start
  (httpd也可以:yum install httpd)
  其实就是开启80端口的web服务(记得查下 netstat查看是否监听80端口)
  注意:分发器 dir 并没有监听 80 端口
       因为 dir 是一个路由器,只负责转发 80 端口上的数据给后端,自己并不处理请求
  拓展:
  ipvsadm -ln --stats  ==>  查看分发情况
  ipvsadm -ln --rate  ==>   查看速率
  ipvsadm -C  ==> 清空规则
  
  ps:如果curl无法成功,检查下防火墙是否关了(iptables -F;setenforce 0)
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659553-1-1.html 上篇帖子: lvs负载均衡, ipvs的NAT模式,DR模式的实现, 下篇帖子: linux下LVS+keepalives负载均衡高可用服务器配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表