zoukankan      html  css  js  c++  java
  • LVS集群之DR模式 实现

    ps:做 dr 模式 之前,先把之前做过的操作清空掉

    1、ipvsadm -ln 查看规则
    2、ipvsadm -C 清空规则
    3、ipvsadm -ln 确认
    4、iptables -t nat -F: 清空iptables的nat规则
    5、rs1和rs2把网卡所对应的网关(GATEWAY)改回来
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    6、dr用不到eth1这个网卡(192.168.1.127)
    ifdown eth1
     
    一、DR  模式 VS  NAT 模式
    缺点:比较浪费公网ip,每一个rs都必须要有一个独立的公网 ip
    优点:用户的请求直接吐给客户端,不借助于分发器dir
     
    实验环境:
    (1)dir:192.168.131.132  
    (2)rs1:192.168.131.110
    (3)rs2:192.168.131.131
    都看成对外的公网 ip
       另外,
           (a)还需要一个虚拟ip(192.168.131.100)
       (b)测试机器luojy:192.168.131.133
     
     
    二、分发器 dir 设置
    1、编辑脚本
    vim  /usr/local/sbin/lvs_dr.sh
    参数说明:
    -g:表示 dr 模式
    -m:表示 nat 模式
     
    2、执行脚本 sh !$
    3、ipvsadm -ln  多出一个vip 192.168.131.100

    三、真实服务器 real server 设置

    1、rs1,rs2都写脚本: vim /usr/local/sbin/lvs_rs.sh

    (1)配置vip,绑定的网卡不是eth0,而是在回环地址 lo 上
    (2)增加路由,调整arp相关的内核参数
    写入:

    ##############################

    调整arp内核参数的意义:

    百度:

    (a)ARP广播会产生的问题
     
    当客户端发起访问VIP 对应的域名的请求(curl 192.168.131.100)时,根据网络通信原理会产生ARP 广播,因为负载均衡器dir和真实的服务器rs在同一网络并且VIP设置在集群中的每个节点上,此时集群内的真实服务器会尝试回答来自客户端计算机的查找VIP的ARP广播,这就会产生问题,大家都说我是"VIP"。
     
    (b)为了达到负载均衡的目的,必须想法办让真实服务器忽略来自客户端计算机的ARP广播请求 ——》 调整arp内核参数
     
    问题:lvs有vip,real server也有vip,但client请求只访问lvs的vip?
     ——》 在所有real server上要关闭所有arp请求,导致不能响应client发出的arp请求(相当于哑巴),只有lvs可以响应,这样请求就会传到lvs的vip中,这就是为什么要禁止real server 的 arp请求和响应
     
     

    ##############################

    2、rs1,rs2执行脚本: sh  /usr/local/sbin/lvs_rs.sh

    四、测试

    1、浏览器访问vip :192.168.131.100 ——》 不精准(刷新无数次都是master,然后等一段时间,刷新无数次也是slave = =,所以才说不精准咯~~)

    ps:####################################

    不要,不要,不要在这3台机器(dir,rs1,rs2)里面进行测试 !!!!
    why?
    ——》 dir(192.168.11.100)
    能出去,但回不来,

     因为mask是4个255,没有办法通信

    ——》 两台rs:访问的是自己的nginx默认页面(因为每一个rs都绑定在一个vip上)

    rs1:

    rs2:

    ps:####################################

    2、利用第四台机器(luojy: 192.168.131.133) 做测试

    访问vip:  curl 192.168.131.100

    (a)测试权重为1:1 (默认脚本就是) ——》 1次 master,1 次 slave

    (b)测试权重为1:2

     1、修改分发器 dir 脚本 lvs_dr.sh

      (i)添加 ifconfig eth0:0 down

      因为配置了虚拟 IP(eth0: 0),需要先把它关掉,再开启

      (ii)修改 rr 为 wrr

      (iii)-g 后加上 -w 1 

     2、dir 查看规则 ipvsadm -ln 

     

      

     3、luojy机器测试 ——》 1次 master,2次 slave

    ps: 执行脚本时候,有个小报错
    现象:
    (1)dir

    (2)两个real server

    解决办法:
    重启网络 service network restart
    正常执行脚本是不输出任何信息的!!!
  • 相关阅读:
    自定义圆形图片控件
    获取手机屏幕长宽
    xml文件解析和序列化
    Java开发基础知识之学习篇——==和equals
    Java开发基础知识之学习篇——成员变量与局部变量
    Java开发基础知识之学习篇——String
    Java开发基础知识之认知篇——java初识
    Java开发基础知识之规范篇——命名规范
    Java开发基础知识之规范篇——排版规范
    nginx高性能配置的几个重要参数(java web应用)
  • 原文地址:https://www.cnblogs.com/windysai/p/6122277.html
Copyright © 2011-2022 走看看