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
正常执行脚本是不输出任何信息的!!!

LVS集群之DR模式 实现的更多相关文章

  1. Linux系统(五)负载均衡LVS集群之DR模式

    序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...

  2. LVS集群之DR模式

    今天来讲LVS-DR模式集群实现负载均衡的搭建方法 环境 主机名 IP   系统 角色 dir DIP:192.168.199.9 VIP:192.168.199.8 rhel7.4 集群服务器 no ...

  3. LVS集群之NAT模式实现

    LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备.   (a)原理      2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...

  4. LVS集群之NAT模式实例(3)

    LVS集群NAT模式实例 1. 实验拓扑图 DS 必须有两块网卡,需要在上面做NAT. 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20 ...

  5. Linux系统(四)负载均衡LVS集群之NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  6. LVS集群之NAT模式

    集群的分类: (1)HA:高可用集群,有叫双机热备 原理:两台机器A.B,正常是A提供服务,当A机宕机或者服务有问题时,会切换到B机继续提供服务常用的高了永软件:heartbeat和keepalive ...

  7. LB负载均衡集群及DR模式配置

    一.系统环境准备: 1.dir服务器 主机名称:dir 系统环境:CentOS release 6.5 (Final) 外网ip:192.168.1.203(网络模式桥接) vip:192.168.1 ...

  8. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  9. LVS集群DR模式实例(4)

    LVS集群DR模式实例 1. 实验拓扑图 2. 实验环境 3台CentOS6.4 64bit的服务器. 类型 IP DR eth0:10.20.73.20  VIP eth0:0 10.20.73.3 ...

随机推荐

  1. 尝试使用Memcached遇到的狗血问题

    乘着有时间,尝试下利用Memcached进行分布式缓存,其中遇到了不少问题及狗血的事情,开篇记录下,希望对您有帮助. 我之前的项目为:Asp.Net MVC4 + Nhibernate + MSSQL ...

  2. yii获取当前url和域名

    <?php //当前域名 echo Yii::app()->request->hostInfo; //除域名外的URL echo Yii::app()->request-> ...

  3. Pyhont-Urllib2

    Urllib2 相当于的Urllib  的升级版 但又不能代替 Urllib 这个我得新手很费解呢...这个问题留着把,,等以后成大牛的时候在回来想想这儿问题!! Urllib2 常用 // 1 设置 ...

  4. jeecg小吐槽续——自己折腾修改在线开发功能中“默认值”的使用

    -- 原来设置了"默认值"的字段,新建表单时不会出现在表单上,要保存后才能在列表页面出现,而且第二次编辑时,设置了"默认值"的字段再也不能改成空值! -- 要修 ...

  5. Python笔记(5)类__方法与继承

    方法 类方法@classmethod,实例方法,静态方法@staticmethod,特殊方法,__init__ 形式上的区别:调用是通过类和实例进行,不能直接调用,有自己的特殊参数,如__init__ ...

  6. 更新/替换系统 hosts,轻松访问国外站点

    更新 hosts 下面介绍的操作均可能覆盖现有 hosts ,进行操作前请先确认是否需要备份. 推荐使用本项目的 Host Tools 来自动化 备份/配置 工作. 若更新 hosts 未立即生效,请 ...

  7. python下ssh的简单实现

    python下的ssh都需要借助第三方模块paramiko来实现,在使用前需要手动安装. 一.python实现ssh (1) linux下的ssh登录 root@ubuntu:~# ssh morra ...

  8. C#的winform控件命名规范

    注:这里用红字标记的部分表示有重复出现,括号内为替代表示方案 1.标准控件 序号 控件类型简写 控件类型 1 btn Button 2 chk CheckBox 3 ckl CheckedListBo ...

  9. ionic ios 发布设置 header-bar高度无效

    在公司app发布过程中发现一旦改过header-bar的高度之后在ios内部或者通过ionic build browser生成的网页打开都不是正常的 通过chrome的查看工具发现自己写的样式被直接覆 ...

  10. Java框架Struts2

    struts2的核心和工作原理   在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于we ...