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

[经验分享] CentOS6.4 LVS+keepalived高可用负载均衡服务配置

[复制链接]

尚未签到

发表于 2015-11-19 14:35:11 | 显示全部楼层 |阅读模式
  CentOS6.4 LVS+keepalived高可用负载均衡服务配置
  转自
  http://songxj.blog.iyunv.com/620981/1171882

  
一:测试环境信息
服务器DELL-R720
虚拟化 KVM
虚拟机4台: ipvs01ipvs02web01web02
[iyunv@KVM01~]# virsh list
Id    Name                           State
----------------------------------------------------
1     SN-web01                    running
2     SN-web02                    running
3     SN-ipvs01                    running
4     SN-ipvs02                    running

网络环境:
Ipvs01:192.168.40.90
Ipvs02:192.168.40.91
Web01:192.168.40.86
Web02:192.168.40.87
Vip:192.168.40.6

系统版本:
物理机CentOS6.4 64bit
虚拟机CentOS6.4 64bit



二:服务配置
软件包6.4系统已经自带ipvs1.25keepalived1.2.7 测试用yum自行安装。

LVS服务器ipvs01配置:
[iyunv@ipvs01 ~]# yum list >yum.list
[iyunv@ipvs01 ~]# cat yum.list|grep ipvs
ipvsadm.x86_64                         1.25-10.el6                       @base
[iyunv@ipvs01 ~]# cat yum.list |grep keepalived
keepalived.x86_64                       1.2.7-3.el6                        @base
[iyunv@ipvs01 ~]#yum install ipvsadm keepalived
[iyunv@ipvs01 ~]#ipvsadm
[iyunv@ipvs01 ~]#lsmod |grep ip_vs  查看模块是否加载成功
ip_vs_rr                1420  1
ip_vs_wrr               2179  0
ip_vs                 115643  5 ip_vs_rr,ip_vs_wrr
libcrc32c               1246  1 ip_vs
ipv6                  321422  11 ip_vs
[iyunv@ipvs01 ~]#cd /etc/keepalived/
[iyunv@ipvs01 ~]#cp -a keepalived.conf ./keepalived.bak
[iyunv@ipvs01 ~]#vi keepalived.conf


! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_MASTER
}

vrrp_instance VI_1 {
    state MASTER   #角色主MASTER,备服务器改为BACKUP
    interface eth0   #HA侦听接口
    virtual_router_id 51   #虚拟路由标记ID,同一组vrrp一致
   priority 100   #优先级自定义,MASTER高于BACKUP即可
    advert_int 1   #HA 侦听间隔:1
    authentication {   #认证形式
        auth_type PASS   #认证类型PASSPASS/AH2种可选
        auth_pass 1111   #认证密码,同一组vrrp密码一致
    }
    virtual_ipaddress {   #虚拟服务地址,可以多个,分多行
        192.168.40.6
    }
}

virtual_server 192.168.40.6 80 {   #虚拟服务地址和端口
    delay_loop 6   #运行情况检查,单位秒
    lb_algo rr   #负载调度算法,RR为轮询
    lb_kind DR   #LVS负载工作模式为DR,三大模式NAT,TUN,DR
    nat_mask 255.255.255.0   #网络掩码
    #persistence_timeout 50   #会话保持时间,50秒内分配同一节点,测试时候为了查看均衡效果可以先注释掉
    protocol TCP    #协议类型TCP/UDP

    real_server 192.168.40.86 80 {   #配置真实服务器节点1 IP和端口
        weight 5            #权值大小,越大权值越高
        TCP_CHECK {           #realserver 状态检测时间,单位秒
            connect_timeout 3           #连接超时时间3
            nb_get_retry 3                  #重试次数:3
            delay_before_retry 3       #重试间隔
            connect_port 80                #连接端口
            }
    }
real_server 192.168.40.87 80 {
        weight 5
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

备服务器ipvs02上将主服务器配置文件复制过去,然后修改2处:
state BACKUP
priority 100
其他保持不变。



三:服务节点配置:
Web01web02 http服务安装略
[iyunv@web01 ~]# cat /var/www/html/index.html
<h1>WEB01/192.168.40.86</h1>
[iyunv@web02 ~]# cat /var/www/html/index.html
<h1>WEB02/192.168.40.87</h1>

web01web02上分别运行脚本
ifconfig lo:0 192.168.40.6 netmask 255.255.255.0 up   
route add -host 192.168.40.6 dev lo:0      
echo &quot;1&quot; >/proc/sys/net/ipv4/conf/lo/arp_ignore      
echo &quot;2&quot; >/proc/sys/net/ipv4/conf/lo/arp_announce      
echo &quot;1&quot; >/proc/sys/net/ipv4/conf/all/arp_ignore      
echo &quot;2&quot; >/proc/sys/net/ipv4/conf/all/arp_announce

执行完毕后查看路由有一条虚拟IP的路由指向lo接口
[iyunv@web01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.40.6    0.0.0.0         255.255.255.255 UH    0      0        0 lo



四:测试LVS
ipvs01ipvs02 keepalived服务启动
web01web02 http服务启动
在主LVS服务器上查看lvs状态如下 说明配置生效
[iyunv@ipvs01 ~]# 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.40.6:80 rr persistent 50
  -> 192.168.40.86:80             Route   5      0          0        
  -> 192.168.40.87:80             Route   5      0          0

ip a 命令来看 虚拟IP现在是在ipvs01上的,而从服务器上ipa没有虚拟IP
[iyunv@ipvs01 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:06:88:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.40.90/24 brd 192.168.40.255 scope global eth0
    inet 192.168.40.6/32 scope global eth0
    inet6 fe80::5054:ff:fe06:88f4/64 scope link
       valid_lft forever preferred_lft forever

>测试负载均衡效果:
打开浏览器测试:
DSC0000.jpg
刷新一下
DSC0001.jpg

>测试一下HA效果
ipvs01 keepalived服务器停掉,然后查看ipvs02 ip a状态
[iyunv@ipvs01 ~]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]
[iyunv@SN349_ipvs02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:45:f8:78 brd ff:ff:ff:ff:ff:ff
    inet 192.168.40.91/24 brd 192.168.40.255 scope global eth0
    inet 192.168.40.6/32 scope global eth0
    inet6 fe80::5054:ff:fe45:f878/64 scope link
       valid_lft forever preferred_lft forever

此时ipvs02绑定了虚拟IP 顶替了ipvs01的服务。

运维网声明 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-141225-1-1.html 上篇帖子: Nginx负载均衡+keepalived双机热备 下篇帖子: keepalived(名如其意)来源开源中国
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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