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

[经验分享] linux AS5在lvs+keepalived实现HA和load balancing

[复制链接]

尚未签到

发表于 2018-12-29 12:54:58 | 显示全部楼层 |阅读模式
lvs说明:目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);
十种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh,sed,nq)。
在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。
下面实验用keepalived 配合来做lvs中的DR模式和HA
实验环境
OS:redhat enterprise linux 5
VIP:10.1.1.1
dr1:10.1.1.2
dr2:10.1.1.3
rs1:10.1.1.4 (apache服务1)
rs2:10.1.1.5(apache服务2)
gw:10.1.1.254
软件:ipvsadm   keepalived
一. dr1 和 dr2配置
1.安装好 ipvsadm 和 keepalived
2.在 /etc/keepalived 里添加一个keepalived.conf 文件默认是没有的,可用rpm -ql keepalived找到模板复制到/etc/keepalived修改即可。修改如下即可 (确保dr1和dr2的80端口是关闭的)
先做dr1的配置
vim keepalived.conf

global_defs {
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER   
    interface eth0
    virtual_router_id 51
    priority 200  
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       10.1.1.2
    }
}
virtual_server 10.1.1.2 80 {
    delay_loop 6
    lb_algo rr   
    lb_kind DR
#   persistence_timeout 50  
    protocol TCP
    real_server 10.1.1.4 80 {
        weight 1
        TCP_CHECK {
        connect_port 80
        connect_timeout 30
        }
    }
    real_server 10.1.1.5 80 {
        weight 1
        TCP_CHECK {
        connect_port 80
        connect_timeout 30
        }
    }
}
dr2中的配置与dr1中的配置基本相同,只要修改两处即可,把state MASTER改成state BACKUP priority 调成小于200 即可,在这里dr1与dr2同在一个交换机上,再配合keepalived,也用不着做什么心跳线了。。

3.在dr1和dr2上添加VIP  eth0:0 10.1.1.1
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=10.1.1.1
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=10.l.1.254
当然还在加arp广播屏蔽
在 /etc/sysctl.conf 添加
net.ipv4.ip_forward=1
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.rp_filter=1
在dr1和dr2的eth0中也要设置网关。用命令sysctl -p使立即生效。

二.配置 rs1 和rs2
1.apache 安装与配置不多说,在默认页面
rs1:10.1.1.4  index.html  10.1.1.4
rs2:10.1.1.5  index.html  10.1.1.5

2.在 /etc/sysctl.conf  添加
net.ipv4.ip_forward=0
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
用命令sysctl -p使立即生效。

3.修改 /etc/network/interfaces 固定IP 和 轮循  lo:0
vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
BOOTPROTO=static
IPADDR=10.1.1.1
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=10.l.1.254

三.测试
在 dr1 和 dr2 上启动服务~
/etc/init.d/keepalived start
然后在  浏览器上 输入 10.1.1.4 显示 10.1.1.4
在打开一个浏览器输入 10.1.1.5 显示  10.1.1.5
说明 lvs工作正常
在dr上执行watch ipvsadm -ln
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.1.1:80 rr
  -> 10.1.1.4:80                   Route   1      0         0
  -> 10.1.1.5:80                   Route   1      0         0
然后把 停掉 10.1.1.5的服务
只显示有 10.1.1.4``说明`` keepalived 工作正常
然后再把dr1停掉,在/var/log/messages中可看到服务已转向BACKUP那台,当dr1这台MASTER正常工作后,它就立马收回自己的权限,dr2就又在等待。

注:MASTER总是会抢BACKUP的服务的,在能在有的时候当MASTER坏掉时,BACKUP接替工作下常运行,可当MASTER一正常,它就会去抢BACKUP的服务,这势必会造成有时请求连接的不正常,为避免这种情况,可将MASTER也修改为
BACKUP并再添加nopreempt
上述IP只是在实验中测试使用,在真实环境中,所有的IP地址必须都是公网IP。









运维网声明 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-657264-1-1.html 上篇帖子: Nginx负载均衡+keepalived高可用 下篇帖子: keepalived实现高可用群集
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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