发表于 2019-1-4 10:18:23

RHEL6 搭建LVS/NAT 负载均衡集群 案例

  搭建LVS/NAT案例

  实验拓扑图:
http://s1.运维网.com/images/20180112/1515758098604250.jpg
  操作流程:
  Director Server :   192.168.4.50 pc50
  安装并启用ipvsadm
  创建虚拟服务器
  向虚拟服务器上加入节点
  Real Server :   192.168.4.51 pc51   192.168.4.52 pc52
  配置WEB 服务器
  Clinet :    192.168.2.253 pc253
  连接虚拟服务器测试
  具体步骤:
  环境准备:
  配置yum源
  # service iptables stop            //关闭防火墙
  # chkconfig iptables off            //关闭开机自启
  # setenforce 0                            //设置SELinux 为宽松模式
  

  网站服务器   pc51 /pc52 :
  # yum -y install httpd
  # echo '192.168.4.51' > /var/www/html/test.html
  # echo "192.168.4.52" > /var/www/html/test.html
  # service httpd start
  # chkconfig httpd on
  # yum -y install elinks
  # elinks --dump http://localhost/test.html
     192.168.4.51
  # elinks --dump http://localhost/test.html
     192.168.4.52
  

  配置分发器 pc50:
  # mount /dev/cdrom /mnt/
  //安装 ipvsadm   rpm 包在光盘挂载文件下的LoadBalancer目录下
  #cd /mnt/LoadBalancer/
  #yum -y install ipvsadm-1.26-4.el6.x86_64.rpm
  //开启内核的路由转发功能
  # sed -i '7s/0/1/' /etc/sysctl.conf
  # sed -n '7p' /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  网站服务器 pc51 /pc52 :
  指定网关地址 192.168.4.50
  # route -n//查看路由
  # route add default gw 192.168.4.50//临时配置网关 网卡重启后生效
  //永久配置网关
  # vim /etc/sysconfig/network-scripts/ifcfg-eth0
  # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth0
  GATEWAY=192.168.4.50
  # ifdown eth0 ; ifup eth0      //重新加载网卡
  客户端 192.168.2.253 配置
  指定网关地址 192.168.2.50 :
  # vim /etc/sysconfig/network-scripts/ifcfg-eth1
  # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth1
  GATEWAY=192.168.2.50
  # ifdown eth1 ; ifup eth1
  # ping -c 2 192.168.4.51
  PING 192.168.4.51 (192.168.4.51) 56(84) bytes of data.
  64 bytes from 192.168.4.51: icmp_seq=1 ttl=63 time=0.322 ms
  64 bytes from 192.168.4.51: icmp_seq=2 ttl=63 time=0.503 ms
  

  --- 192.168.4.51 ping statistics ---
  2 packets transmitted, 2 received, 0% packet loss, time 1000ms
  rtt min/avg/max/mdev = 0.322/0.412/0.503/0.092 ms
  # yum -y install elinks
  

  配置分发器 pc50 :
  # yum -y install ipvsadm-1.26-4.el6.x86_64.rpm
  # rpm -q ipvsadm
  ipvsadm-1.26-4.el6.x86_64
  

  添加虚拟服务
  # ipvsadm -L//查看 IPVS
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  # ipvsadm -A -t 192.168.2.50:80 -s rr//添加虚拟服务 调度算法为Round Robin
  # ipvsadm -L
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP192.168.2.50:http rr
  # ipvsadm -Ln   //- n数字显示
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP192.168.2.50:80 rr
  //向虚拟服务器中加入节点

  # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m
  # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m
  # ipvsadm -Ln
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port         Forward Weight ActiveConn InActConn
  TCP192.168.2.50:80 rr
  -> 192.168.4.51:80            Masq    1      0          0
  -> 192.168.4.52:80            Masq    1      0          0
  # /etc/init.d/ipvsadm save//使配置永久生效
  ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [确定]
  # cat /etc/sysconfig/ipvsadm
  -A -t 192.168.2.50:80 -s rr
  -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m -w 1
  -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m -w 1
  

  客户端测试
  # elinks --dump http://192.168.2.50/test.html
     192.168.4.51
  # elinks --dump http://192.168.2.50/test.html
     192.168.4.52
  //客户端 轮询到不同的后端真实服务器
  

  # ipvsadm -Ln --stats
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
  -> RemoteAddress:Port
  TCP192.168.2.50:80               2       10       10      846   1098
  -> 192.168.4.51:80                     1      5      5      423      549
  -> 192.168.4.52:80                     1      5      5      423      549
  模拟pc51 web服务故障:
  # service httpd stop
  # ipvsadm -Z
  

  //客户端测试
  # elinks --dump http://192.168.2.50/test.html
  192.168.4.52
  # elinks --dump http://192.168.2.50/test.html
  192.168.4.52
  

  # ipvsadm -Ln --stats
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
  -> RemoteAddress:Port
  TCP192.168.2.50:80               3       11       11      906   1138
  -> 192.168.4.51:80                     1      1      1         60       40
  -> 192.168.4.52:80                     2       10       10      846   1098
  

  会发现 LVS/NAT 单点故障时 并不能健康性检查
  可以 编写一个脚本 监测两台Real Server 的服务 是否正常 如果监测到故障将对应的服务在调度服务器 停掉
  使用周期性计划任务 定时运行监测脚本 到达 健康检查的目的




页: [1]
查看完整版本: RHEL6 搭建LVS/NAT 负载均衡集群 案例