Keepalived学习笔记(LVS+Keepalived)

合集下载

LVS keepalived负载均衡高可用 配置安装大全

LVS keepalived负载均衡高可用 配置安装大全

LVS+Keepalived实现高可用集群一、基础介绍 (2)二、搭建配置LVS-NA T模式 (2)三、搭建配置LVS-DR模式 (4)四、另外一种脚本方式实现上面LVS-DR模式 (6)五、keepalived + LVS(DR模式) 高可用 (8)六、Keepalived 配置文件详细介绍 (11)一、基础介绍(一)根据业务目标分成三类:High Availability 高可用Load Balancing 负载均衡High Performance 高性能(二)实现集群产品:HA类:rhcs、heartbeat、keepalivedLB类:haproxy、lvs、nginx、f5、piranhaHPC类:/index/downfile/infor_id/42(三)LVS 负载均衡有三种模式:LVS-DR模式(direct router)直接路由模式进必须经过分发器,出就直接出LVS-NAT模式(network address translation)进出必须都经过分发器LVS-TUN模式(ip tunneling)IP隧道模式服务器可以放到全国各地二、搭建配置LVS-NAT模式1 、服务器IP规划:DR服务器添加一张网卡eth1,一个网卡做DIP,一个网口做VIP。

设置DIP、VIP IP地址:DIP的eth1和所有RIP相连同一个网段CIP和DIP的eth0(Vip)相连同一个网段Vip eth0 192.168.50.200Dip eth1 192.168.58.4客户机IP:Cip 192.168.50.32台真实服务器IP:Rip1 192.168.58.2Rip2 192.168.58.32 、R ealServer1配置:mount /dev/xvdd /media/vi /var/www/html/index.html写入:this is realserver1启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.2NETMASK=255.255.255.0GA TEWAY=192.168.58.43 、R ealServer2 配置:vi /var/www/html/index.html写入:this is realserver2启动httpdvi /etc/sysconfig/network-scripts/ifcfg-eth0设置RIP,子网掩码必须设置成DIPIPADDR=192.168.58.3NETMASK=255.255.255.0GA TEWAY=192.168.58.44 、在DR服务器上做以下设置:开启IP数据包转发vi /etc/sysctl.confnet.ipv4.ip_forward = 0 ##0改成1 ,此步很重要查看是否开启:sysctl -p5 、安装LVS服务:ipvsadmyum -y install ipvsadmlsmod |grep ip_vsTurbolinux系统没有带rpm包,必须下载源码安装:#ln -s /usr/src/kernels/2.6.18-164.el5-x86_64/ /usr/src/linux##如果不做连接,编译时会包错#tar zxvf ipvsadm-1.24.tar.gz#cd ipvsadm-1.24#make && make install运行下ipvsadm ,就加到ip_vs模块到内核了lsmod | grep ip 可以看到有ip_vs模块了6 、配置DR服务器,添加虚拟服务ipvsadm -L -n 查询信息ipvsadm -A -t 192.168.50.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.2 -m -w 1 # -m代表net模式,-w代表权重ipvsadm -a -t 192.168.50.200:80 -r 192.168.58.3 -m -w 2ipvsadm -L -n 再次查看是就有了realserverservice ipvsadm save 保存配置iptables -L 关闭或者清空防火墙watch -n 1 'ipvsadm -L -n' 查看访问记录的数显示如下:-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.50.200:80 rr-> 192.168.58.2:80 Masq 1 0 13-> 192.168.58.3:80 Masq 2 0 12ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED;InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接.7 、测试:http://192.168.58.200配完后若想修改算法:ipvsadm -E -t 192.168.58.200:80 -s wlc修改Rip的权重:ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.2 -m -w 1ipvsadm -e -t 192.168.58.200:80 -r 192.168.58.3 -m -w 5三、搭建配置LVS-DR模式lo:1 回应客户端,lo:1上的IP跟机器有关,跟网卡没有关系arp_announce 对网络接口上本地IP地址发出的ARP回应作出相应级别的限制arp_ignore 定义对目标地址为本地IP的ARP询问不同的请求一、3台服务器IP配置规划:DIP:eth0:1 192.168.58.200/32 (VIP)eth0 192.168.58.3/24 (DIP)RIP1 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.4/24RIP2 lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.5/24 .................................................................RIP n lo:1 192.168.58.200/32 (VIP)eth0 192.168.58.N/24二、每台realserver都加上下面四个步骤配置:1 、配置每台rip的IP、http,web页面2 、关闭每台rip服务器的ARP广播:echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce3 、配置VIPifconfig lo:1 192.168.58.200 netmask 255.255.255.255 broadcast 192.168.58.200 up4 、配置网关route add -host 192.168.58.200 dev lo:1三、DR上的配置(DR模式下Dip不用开启转发):1 、配置DIP,在eth0上添加一个子VIP接口:添加VIP:ifconfig eth0:1 192.168.58.200 broadcast 192.168.58.200 netmask 255.255.255.255 up2 、配置网关:route add -host 192.168.58.200 dev eth0:1route -n3 、安装ipvsadm(方法见文档上面)yum -y install ipvsadmlsmod |grep ip_vs4 、配置LVS集群:ipvsadm -A -t 192.168.58.200:80 -s rr #添加集群服务、调度算法,rr为调度算法ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.3 -g -w 1 # -g代表DR模式,-w代表权重ipvsadm -a -t 192.168.58.200:80 -r 192.168.58.2 -g -w 2service ipvsadm saveipvsadm -L -n 查看信息四、测试:http://192.168.58.200四、另外一种脚本方式实现上面LVS-DR模式IP规划:Dip eth0 192.168.58.139VIP:192.168.58.200RIP1:192.168.58.2RIP2:192.168.58.31 、D R服务器上安装ipvsadm#yum -y install ipvsadm#lsmod | grep ip_vs 查看没有输出#modprobe ip_vs 安装即可2 、配置DIP服务器、LVS这里也是个写脚本为了方便vim /etc/init.d/lvsdr#!/bin/bash#lvs of DRVIP=192.168.58.200RIP1=192.168.58.2RIP2=192.168.58.3case "$1" instart)echo "start lvs of DR"/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.0 up echo "1" > /proc/sys/net/ipv4/ip_forward/sbin/iptables -C/sbin/ipvsadm -A -t $VIP:80 -s rr/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g/sbin/ipvsadm;;stop)echo "stop lvs of DR"echo "0" > /proc/sys/net/ipv4/ip_forward/sbin/ipvsadm -C/sbin/ifconfig eth0:0 down;;*)echo "Usage :$0 {start|stop}"exit1esacexit 0#chmod o+x /etc/init.d/lvsdr启动脚本:#service lvsdr start3 、2台RIP服务器都配置这里我们也都可以写成脚本开启2台RIP的httpd服务。

负载均衡--LVS+Keepalived

负载均衡--LVS+Keepalived

利用LVS+Keepalived 实现高性能高可用负载均衡作者:NetSeek 网站: 背景:随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。

一.L VS+Keepalived 介绍1.LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

目前有三种IP负载均衡技术(VS/NA T、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。

2.KeepalviedKeepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现二. 网站负载均衡拓朴图.IP信息列表:名称IPLVS-DR-Master 61.164.122.6LVS-DR-BACKUP 61.164.122.7LVS-DR-VIP 61.164.122.8WEB1-Realserver 61.164.122.9WEB2-Realserver 61.164.122.10GateWay 61.164.122.1三. 安装LVS和Keepalvied软件包1. 下载相关软件包#mkdir /usr/local/src/lvs#cd /usr/local/src/lvs#wget /software/kernel-2.6/ipvsadm-1.24.tar.gz #wget /software/keepalived-1.1.15.tar.gz2. 安装LVS和Keepalived#lsmod |grep ip_vs#uname -r2.6.18-53.el5PAE#ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux#tar zxvf ipvsadm-1.24.tar.gz#cd ipvsadm-1.24#make && make install#find / -name ipvsadm # 查看ipvsadm的位置#tar zxvf keepalived-1.1.15.tar.gz#cd keepalived-1.1.15#./configure && make && make install#find / -name keepalived # 查看keepalived位置#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/#mkdir /etc/keepalived#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/#cp /usr/local/sbin/keepalived /usr/sbin/#service keepalived start|stop #做成系统启动服务方便管理.四. 配置LVS实现负载均衡1.LVS-DR,配置LVS脚本实现负载均衡#vi /usr/local/sbin/lvs-dr.sh#!/bin/bash# description: start LVS of DirectorServer#Written by :NetSeek GW=61.164.122.1# website director vip.SNS_VIP=61.164.122.8SNS_RIP1=61.164.122.9SNS_RIP2=61.164.122.10./etc/rc.d/init.d/functionslogger $0 called with $1case "$1" instart)# set squid vip/sbin/ipvsadm --set 30 5 60/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up/sbin/route add -host $SNS_VIP dev eth0:0/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 3/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1touch /var/lock/subsys/ipvsadm >/dev/null 2>&1;;stop)/sbin/ipvsadm -C/sbin/ipvsadm -Zifconfig eth0:0 downifconfig eth0:1 downroute del $SNS_VIProute del $SS_VIPrm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1echo "ipvsadm stoped";;status)if [ ! -e /var/lock/subsys/ipvsadm ];thenecho "ipvsadm stoped"exit 1elseecho "ipvsadm OK"fi;;*)echo "Usage: $0 {start|stop|status}"exit 1esacexit 02.配置Realserver脚本.#vi /usr/local/sbin/realserver.sh#!/bin/bash# description: Config realserver lo and apply noarp#Written by :NetSeek SNS_VIP=61.164.122.8. /etc/rc.d/init.d/functionscase "$1" instart)ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP/sbin/route add -host $SNS_VIP dev lo:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p >/dev/null 2>&1echo "RealServer Start OK";;stop)ifconfig lo:0 downroute del $SNS_VIP >/dev/null 2>&1echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announceecho "RealServer Stoped";;*)echo "Usage: $0 {start|stop}"exit 1esacexit 0或者采用secondary ip address方式配置# vi /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2#sysctl –p#ip addr add 61.164.122.8/32 dev lo#ip add list 查看是否绑定3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态:#watch ipvsadm –ln五.利用Keepalvied实现负载均衡和和高可用性1.配置在主负载均衡服务器上配置keepalived.conf#vi /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {cnseek@# failover@firewall.loc# sysadmin@firewall.loc}notification_email_from sns-lvs@smtp_server 127.0.0.1# smtp_connect_timeout 30router_id LVS_DEVEL}# 20081013 written by :netseek# VIP1vrrp_instance VI_1 {state MASTER #备份服务器上将MASTER改为BACKUP interface eth0virtual_router_id 51priority 100 # 备份服务上将100改为99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {61.164.122.8#(如果有多个VIP,继续换行填写.)}}virtual_server 61.164.122.8 80 {delay_loop 6 #(每隔10秒查询realserver状态)lb_algo wrr #(lvs 算法)lb_kind DR #(Direct Route)persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver) protocol TCP #(用TCP协议检查realserver状态)real_server 61.164.122.9 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 61.164.122.10 80 {weight 3TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}}2. BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.3. vi /etc/rc.local#/usr/local/sbin/lvs-dr.sh 将lvs-dr.sh这个脚本注释掉。

keepalived 原理

keepalived 原理

keepalived 原理
Keepalived是一个用于管理虚拟IP地址,负载均衡和故障转移的软件。

它使用VRRP协
议(虚拟路由冗余协议)来实现高可用性,并且可以与LVS(Linux虚拟服务器)结合使用,以实现负载均衡。

Keepalived的工作原理是,它在两台服务器之间建立一个虚拟路由器,其中一台服务器被设置为主服务器,另一台服务器被设置为备用服务器。

主服务器拥有虚拟IP地址,并且
可以接收和处理客户端的请求。

如果主服务器出现故障,备用服务器将接管虚拟IP地址,并继续处理客户端的请求。

Keepalived还可以与LVS结合使用,以实现负载均衡。

LVS是一种负载均衡技术,它可以将客户端的请求分发到多台服务器上,以提高服务器的性能。

Keepalived可以将LVS集群中的服务器分为主服务器和备用服务器,并且可以根据服务器的负载情况来动态调整负载
均衡策略。

总之,Keepalived是一款非常强大的高可用性和负载均衡软件,它可以帮助系统管理员实现高可用性和负载均衡,从而提高系统的可靠性和性能。

keepalived的日志

keepalived的日志

keepalived的日志什么是keepalived?Keepalived是一款开源软件,主要用于实现高可用性和负载均衡。

它提供了一种基于VRRP(虚拟路由冗余协议)的解决方案,用于在多个服务器之间共享一个虚拟IP地址,并监控服务的可用性。

Keepalived能够及时检测到服务器或服务的故障,并自动将虚拟IP地址切换到备份服务器,确保服务的持续性和稳定性。

Keepalived的日志记录功能Keepalived提供了强大的日志记录功能,可以帮助管理员及时了解系统的运行状况,查找和排查问题。

Keepalived的日志记录主要包括以下几个方面的信息:1. 系统启动信息:Keepalived在启动时会记录一些系统和配置信息,例如版本号、启动参数、配置文件等。

2. VRRP状态变化:VRRP协议是Keepalived的核心功能之一,它负责监控服务器的可用性和切换虚拟IP地址。

当主备切换或故障发生时,Keepalived会记录相关的状态变化信息,例如切换原因、切换时间、新的主机等。

3. 虚拟IP地址绑定:Keepalived负责将虚拟IP地址绑定到合适的网络接口,以实现服务的高可用性和负载均衡。

日志中会记录虚拟IP地址的绑定情况,包括绑定成功与否、绑定的网络接口、绑定的时间等。

4. 节点状态检测:为了保证服务的可用性,Keepalived会定期检测服务器节点的状态。

如果节点无法正常响应,Keepalived会将其标记为故障节点,并触发主备切换。

日志中记录了节点检测的结果,包括节点的健康状态、响应时间、检测时间等。

5. 日常运行日志:除了以上一些重要的事件,Keepalived还会记录一些日常的运行信息,例如定时任务的执行情况、日志轮转、内存使用情况等。

如何查看和分析Keepalived的日志?要查看和分析Keepalived的日志,可以按照以下步骤进行:1. 打开日志文件:Keepalived的日志文件通常位于/var/log/keepalived/目录下,文件名为keepalived.log。

Keepalived的基础知识

Keepalived的基础知识

Keepalived的基础知识一、Keepalived介绍Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat、RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又有差别:HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测和资源接管,监测集群中的系统服务,在群集节点间转移共享IP地址的所有者等,HeartBeat功能强大,但是部署和使用相对比较麻烦;与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但Keepalived部署和使用非常简单,所有配置只需一个配置文件即可完成。

这也是本章重点介绍Keepalived的原因。

二、Keepalived是什么Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态。

它根据layer3, 4 & 5交换机制检测每个服务节点的状态,如果某个服务节点出现异常,或工作出现故障,Keepalived将检测到,并将出现故障的服务节点从集群系统中剔除,而在故障节点恢复正常后,Keepalived又可以自动将此服务节点重新加入到服务器集群中,这些工作全部自动完成,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

Keepalived后来又加入了VRRP的功能,VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,它出现的目的是为了解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断地、稳定地运行。

因此,Keepalived一方面具有服务器状态检测和故障隔离功能,另一方面也具有HA cluster功能.下面详细介绍下VRRP协议的实现过程。

三、 VRRP协议与工作原理在现实的网络环境中,主机之间的通信都是通过配置静态路由(默认网关)完成的,而主机之间的路由器一旦出现故障,通信就会失败,因此,在这种通信模式中,路由器就成了一个单点瓶颈,为了解决这个问题,就引入了VRRP协议。

keep-alive的用法

keep-alive的用法

keep-alive的用法摘要:1.Keep-alive 的含义和作用2.Keep-alive 的语法和用法3.Keep-alive 的示例4.Keep-alive 的优点和局限性正文:一、Keep-alive 的含义和作用Keep-alive(保持活动)是一种网络协议,主要用于检测网络中的设备是否处于活动状态,以确保网络连接的稳定性。

通过发送特定的数据包,Keep-alive 可以检测到设备之间的连接是否正常,从而及时发现并解决网络故障。

二、Keep-alive 的语法和用法Keep-alive 的语法相对简单,通常包含三个参数:协议类型、时间间隔和超时值。

以下是一个典型的Keep-alive 语法示例:```protocol keepalive{timers {keepalive 10 100 30}}```其中,协议类型为“keepalive”,时间间隔为10 秒,超时值为30 秒。

这意味着每隔10 秒,设备将发送一个Keep-alive 数据包,如果在30 秒内没有收到回应,则认为连接已断开。

三、Keep-alive 的示例以Cisco 路由器为例,可以使用以下命令配置Keep-alive:```Router> enableRouter# configure terminalRouter(config)# ip keepaliveRouter(config-if)#```接下来,可以设置Keep-alive 的参数,例如:```Router(config-if)# ip keepalive 10 100 30```这将设置时间间隔为10 秒,超时值为30 秒。

四、Keep-alive 的优点和局限性Keep-alive 的优点在于能够实时监测网络连接,提前发现并解决故障,从而提高网络的可靠性和稳定性。

然而,Keep-alive 也存在一定的局限性,例如可能会产生较多的网络流量,增加网络负载,同时对于高延迟的网络环境,Keep-alive 的效果可能不佳。

keepalived原理

keepalived原理

keepalived原理keepalived是一款在Linux平台上开发的一款高可用性软件,它可以极大的提高网络服务器的稳定性。

它最大的作用就是实现虚拟IP地址的实时转换,从而实现高可用性虚拟服务器集群。

它使用VRRP 协议,配合其他路由协议(如OSPF,其中一台真实的服务器上运行VRRP协议,两台真实的服务器上分别运行Kernel的路由协议),使虚拟服务器组可以共享一个逻辑IP地址,这个逻辑IP地址就是虚拟IP地址,在这个虚拟组里,有两台真实服务器,一台服务器作为master,一台服务器作为Backup。

在这个虚拟组里,假设主机A是master,那么主机B就是backup,此时虚拟IP就会在A上,A会每隔3秒(这个时间是可配置的)给B 发送一个VRRP报文,内容是主机A是master,这时候B就会收到,从而确认A是master,从而将虚拟IP地址绑定到A的网卡上。

在A 的状态正常的时候,这个过程一直正常的进行下去,如果A的状态出现问题(例如停电,断网,网卡故障等),那么A就不会给B发送VRRP 报文了,B就会马上检测到A的状态异常,马上会将虚拟IP地址绑定到B的网卡上,从而B变成master,从而实现高可用性。

总结起来,Keepalived的原理是:使用VRRP协议结合其他路由协议,使有两台真实服务器组成一个虚拟服务器组,这个虚拟服务器组共享一个逻辑IP地址,这个逻辑IP地址就是虚拟IP地址。

在这个虚拟服务器组里,有一台真实服务器作为master,另一台真实服务器作为backup,当master服务器出现故障时,backup服务器会被激活,从而实现高可用性虚拟服务器集群。

Keepalived的应用场景非常多,可以应用于很多不同的网络环境,例如WEB应用,FTP服务,MySQL服务,网络安全等等,由于它可以实现高可用性虚拟服务器集群,所以它能够有效的提高网络服务器的稳定性,大大地提升了网络的可用性。

三.keepalived介绍及工作原理

三.keepalived介绍及工作原理

三.keepalived介绍及⼯作原理⼀、keepalived的介绍Keepalived软件起初是专为LVS负载均衡软件设计的,⽤来管理并监控LVS集群系统中各个服务节点的状态,后来⼜加⼊了可以实现⾼可⽤的VRRP功能。

因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的⾼可⽤解决⽅案软件。

Keepalived软件主要是通过VRRP协议实现⾼可⽤功能的。

VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的⽬的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个⽹络可以不间断地运⾏。

所以,Keepalived⼀⽅⾯具有配置管理LVS的功能,同时还具有对LVS下⾯节点进⾏健康检查的功能,另⼀⽅⾯也可实现系统⽹络服务的⾼可⽤功能。

keepalived:vrrp协议:Virtual Router Redundancy Protocol术语:虚拟路由器:Virtual Router虚拟路由器标识:VRID(0-255),唯⼀标识虚拟路由器物理路由器:master:主设备backup:备⽤设备priority:优先级VIP:Virtual IPVMAC:Virutal MAC (00-00-5e-00-01-VRID)通告:⼼跳,优先级等;周期性⼯作⽅式:抢占式,⾮抢占式安全⼯作:认证:⽆认证简单字符认证:预共享密钥MD5⼯作模式:主/备:单虚拟路径器主/主:主/备(虚拟路径器1),备/主(虚拟路径器2)⼆、Keepalived服务的重要功能1、管理LVS负载均衡软件早期的LVS软件,需要通过命令⾏或脚本实现管理,并且没有针对LVS节点的健康检查功能。

为了解决LVS的这些使⽤不便的问题,Keepalived就诞⽣了,可以说,Keepalived软件起初是专为解决LVS的问题⽽诞⽣的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define UTS_RELEASE "2.6.18"
再进行configure就会都是yes了:
接着执行make是若出现“types.h:62: error: conflicting types for ‘dev_t’”错误,需要修改源码目录下的keepalived/libipvs-2.6/ip_vs.h
sysctl -p >/dev/null 2&gerver Start OK"
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以 TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一 点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived将把服务器从服务器群中剔除。
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
若出现错误:configure: error: Popt libraries is required
解决办法:yum install libnel-dev
configure时若出现以下结果:
只有一项为yes,因为keepalived没有找到内核目录导致的,解决的方法是在编译的时候:
./configure--sysconf=/etc\# 指定配置文件的安装路径。
tail -f /var/log/message
K
Keepalived.conf配置文件有3个部分组成,分别为全局定义部分、vrrp实例定义部分以及虚拟服务器定义部分。下面详细介绍这个配置文件中的每个选项的详细含义和用法。
#全局定义部分
global_defs {
notification_email {
#查看帮助
keepalived -h
#运行 由于keepalived配置文件不是在启动时一次性加载并读取完成的,所以必须是完整路径,可以根据log判断是否加载了正确的配置文件
keepalived –f /usr/local/etc/keepalived/keepalived.conf
运行过程可以查看log:
把#include linux/types.h移到#include sys/types.h 这行的下面
上述错误都解决后make&&make install就可以通过了,然后运行:
# ln–s/usr/local/sbin/keepalived /sbin#启动配置文件链接路径(启动文件依赖)
#否则:启动 keepalived:/bin/bash: keepalived: command not found[失败]
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3#表示3秒无响应超时。
nb_get_retry 3
delay_before_retry 3
}
}
}
注意:
在配置Keepalived时,需要特别注意配置文件的语法格式,因为keepalived在启动时并不检测配置文件的正确性,即使没有配置文件,keepalived也照样能够启动,所以一定要保证配置文件的正确。
在默认情况下,keealived在启动时会查找/etc/keealived/keepalived.conf配置文件,如果配置文件放在其他路径下,可以通过“keepalived–f”参数指定配置文件路径即可。
在keealived配置完成后,将此文件复制到备用的DR对应的路径下,然后修改以下二点即可:
将”state MASTER”更改为“state BACKUP”。
将“priority 100”更为一个较小的值,如:priority 80。
在LVS的DR和TUN模式下,在Real Server服务中创建/etc/init.d/lvsrs脚本,以达到NORAP的问题。并修改其权限# chmod 755 /etc/init.d/lvsrs,然后启动#/etc/init.d/lvsrs start
--with-kernel-dir=/usr/src/kernels/2.6.18-194.el5-i686/
若/usr/src/kernel目录下没有内核目录,则需要安装内核开发包:
用命令uname -a查看内核版本,然后可以在这里查找对应的http://zid-luxinst.uibk.ac.at/linux/rpm2html/centos/5/os/i386/CentOS/kernel-devel-2.6.18-194.el5.i686.html
nb_get_retry 3#表示重试次数。
delay_before_retry 3#表示重试间隔。
}
}
#节点2
real_server 192.168.2.153 8080 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
virtual_ipaddress {
192.168.2.180#虚拟机IP地址,可以多个每个一行。
192.168.200.17
}
}
#虚拟服务器定义
virtual_server 192.168.2.180 8080 {#设置虚拟机服务器IP地址和端口,二者用空格隔开。
delay_loop 3#设置运行情况检查时间,单位为秒。
protocol TCP
real_server 192.168.2.152 8080 {
weight 1#权值:数字越大,权值越高。高性能的服务器可设较高的权值,以分载。
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
priority 100#MASTER优先级必须大于BACKUP的优先级。
advert_int 1#设置MASTER与BACKUP负载平衡器之间同步检查的时间间隔,单位为秒。
authentication {
auth_type PASS#设置验证类型,主要为PASS何AH二种。
auth_pass 1111#MASTER和BACKUP必须使用相同的验证密码才能正常通行。
}
# vrrp实例定义部分
vrrp_instance VI_1 {
state MASTER#设置主服务器,备份服务器为:BACKUP。
interface eth0
virtual_router_id 51#虚拟路由标示,这个标示是一个数字,同一个vrrp实例使用唯一标示,即同一个vrrp_instance下,MASTER和BACKUP必须是一致的。Keealived来自本科的简介,我觉得就就很简洁和清楚了。
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
Keealived
首先得下载Keealived安装包:/download.html
后进行解压安装。
# tar–xzvfkeepalived-1.2.2.tar.gz
# ./configure
若出现以下错误。
解决办法:# yum install openssl-devel
Keepalived学习笔记
--LVS+Keepalived
学习LVS,自然会想到解决DR单独故障问题,Heartbeat也能很好实现,不过对于LVS,Keepalived显得更加理想选择。理由:相比Hearbeat,Keepalived配置更加简单,故障切换速度也最快。Keepalived只想安装DR服务器上,并根据需要进配置即可。
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
相关文档
最新文档