lvs keepalived
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvs keepalived相关的知识,希望对你有一定的参考价值。
摘要
简述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.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar fvxz ipvsadm-1.26.tar.gz
make&&make install
执行make报错 undefined reference to `poptGetContext‘
原因缺少依赖包执行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相应的请求,较比如下加到开机启动即可
注意 修改变量VIP
启动ipvsadm报错
Applying IPVS configuration: /etc/init.d/ipvsadm: line 62: /etc/sysconfig/ipvsadm: No such file or directory
解决办法:遇到这个错误,先运行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 实例定义块。
#全局定义模块 ! Configuration File for keepalived global_defs { notification_email { [email protected] [email protected] [email protected] #邮件报警,可以不设置,后期nagios统一监控。 } notification_email_from [email protected] 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
一直在学习...... 欢迎“吐槽”
以上是关于lvs keepalived的主要内容,如果未能解决你的问题,请参考以下文章