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

[经验分享] lvs keepalived

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-10 17:09:45 | 显示全部楼层 |阅读模式
摘要

  • 简述lvs keepalived作用
  • 安装
  • 记录错误
  • keepalived配置文件详解


LVS全称为Linux Virtual Server,工作在ISO模型中的第四层,由于其工作在第四层,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核中的,叫ipvs,主流的linux发行版默认都已经集成了ipvs,因此用户只需安装一个管理工具ipvsadm即可。


Keepalived的作用是检测服务器的状态和提供虚IP(VIP),如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

安装lvs(ipvsadm)
安装依赖
yum install -y gcc gcc-c++ makepcre pcre-devel kernel-devel openssl-devel libnl-devel popt-devel
下载源码包
wget http://www.linuxvirtualserver.or ... ipvsadm-1.26.tar.gz
tar fvxz ipvsadm-1.26.tar.gz
make&&make install
执行make报错 undefined reference to `poptGetContext'
QQ截图20170210170739.png
原因缺少依赖包执行yum install popt-devel popt popt-static -y
安装keepalived

安装依赖
yum install openssl-devel popt-devel libnl libnl-devel kernel ipvsadm libnfnetlink* -y
下载源码包
wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
tar fvxz keepalived-1.2.7.tar.gz
./configure --prefix=/usr/local/ccdt/keepalived
make&&make install
ln -s /usr/local/ccdt/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
  ln -s /usr/local/ccdt/keepalived/etc/keepalived/ /etc
  ln -s /usr/local/ccdt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  ln -s /usr/local/ccdt/keepalived/sbin/keepalived /usr/bin/
lvs keepalived 安装完成

real_server配置禁止ARP相应的请求,较比如下加到开机启动即可
    QQ截图20170210170805.png
    注意 修改变量VIP



启动ipvsadm报错
Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: No such file or directory
QQ截图20170210170812.png
解决办法:遇到这个错误,先运行service ipvsadm save。之后再执行service ipvsadm start即可!


命令添加ipvsadm代理
1096  ipvsadm -A -u 192.167.1.105:9966 -s wrr    添加集群
1097  ipvsadm -a -u 192.167.1.105:9966 -r 192.167.1.2:9966 -g -w 3  添加主机
1099  ipvsadm -a -u 192.167.1.105:9966 -r 192.167.1.6:9966 -g -w 3  添加主机

更多命令示例http://www.toxingwang.com/linux-unix/haorlb/1604.html





配置文件

摘自http://www.cnblogs.com/linuxliu/p/5825108.html
keepalived.conf
一个功能比较完整的keepalived 的配置文件,其配置文件keepalived.conf 可以包含三个文本块:全局定义块、VRRP 实例定义块及虚拟服务器定义块。全局定义块和虚拟服务器定义块是必须的,如果在只有一个负载均衡器的场合,就不须VRRP 实例定义块。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#全局定义模块
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc #邮件报警,可以不设置,后期nagios统一监控。
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL  #此处注意router_id为负载均衡标识,在局域网内应该是唯一的。
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
  ++++++++++++++++我是分隔符++++++++++++++++++++++

#VRRP实例定义块

vrrp_instance VI_1 {
    state MASTER #状态只有MASTER和BACKUP两种,并且要大写,MASTER为工作状态,BACKUP是备用状态。
    interface eth0
        lvs_sync_daemon_inteface eth0  #这个默认没有,相当于心跳线接口,DR模式用的和上面的接口一样,也可以用机器上的其他网卡eth1,用来防止脑裂。
    virtual_router_id 51 #虚拟路由标识,同一个vrrp_instance的MASTER和BACKUP的vitrual_router_id 是一致的。
    priority 100  #优先级,同一个vrrp_instance的MASTER优先级必须比BACKUP高。
    advert_int 1 #MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。
    authentication {
        auth_type PASS  #验证authentication。包含验证类型和验证密码。类型主要有PASS、AH 两种,通常使用的类型为PASS,\
        auth_pass 1111   据说AH 使用时有问题。验证密码为明文,同一vrrp 实例MASTER 与BACKUP 使用相同的密码才能正常通信。
    }
    virtual_ipaddress { #虚拟ip地址,可以有多个地址,每个地址占一行,不需要子网掩码,同时这个ip 必须与我们在lvs 客户端设定的vip 相一致!
        192.168.200.100
        192.168.200.101
        192.168.200.102
    }
}
  ++++++++++++++++我是分隔符++++++++++++++++++++++

#虚拟服务器定义块

virtual_server 192.168.200.100 443 {   #虚拟IP,来源与上面的虚拟IP地址,后面加空格加端口号
    delay_loop 6  #健康检查间隔,单位为秒
    lb_algo rr    #负载均衡调度算法,一般用wrr、rr、wlc
    lb_kind NAT   #负载均衡转发规则。一般包括DR,NAT,TUN 3种。
    persistence_timeout 50 #会话保持时间,会话保持,就是把用户请求转发给同一个服务器,不然刚在1上提交完帐号密码,就跳转到另一台服务器2上了。
    protocol TCP  #转发协议,有TCP和UDP两种,一般用TCP,没用过UDP。

    real_server 192.168.201.100 80 { #真实服务器,包括IP和端口号
        weight 1  #权重,数值越大,权重越高
        TCP_CHECK {  #通过tcpcheck判断RealServer的健康状态
            connect_timeout 3 #连接超时时间
            nb_get_retry 3 #重连次数
            delay_before_retry 3 #重连时间间隔
            connect_port 80  #检测端口
        }
    }
}



其实配置文件中主要要修改的选项没有很多,有三个参数要注意
    route_id  XXX #MASTER和BACKUP不同
    virtual_router_id 51 #同一个实例下,MASTER和BACKUP相同
    priority 100 #优先级,同一个实例下,MASTER高于BACKUP




运维网声明 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-340335-1-1.html 上篇帖子: LVS负载均衡技术精华篇 下篇帖子: 高性能业务架构解决方案(LVS+Keepalived)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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