LVS+keepalived实现双机热备

昨晚写了关于lvs的文章,今天以实例介绍下LVS+keepalived实现双机热备

服务器IP地址设置表


服务器名称


网络接口


IP地址


路由器


外网IP


121.201.24.138


lvs-master


eth0


172.16.100.2


eth1(VIP)


172.16.100.100


lvs-backup


eth0


172.16.100.3


lo:0(VIP)


172.16.100.100


web1


eth0


172.16.100.4


lo:0(VIP)


172.16.100.100


web2


eth0


172.16.100.5


lo:0(VIP)


172.16.100.100

部署两台或者多台LVS调度器,仅有一台调度器作为主服务器,其他调度器作为备用,当主调度器发生故障时,keepalived会自动将备用服务器升为主服务器

1.lvsmaster端

下载keepalived服务

yum install -y keepalived

源码安装

yum install -y openssl openssl-develwget http://www.keepalived.org/software/keepalived-1.2.12.tar.gztar xvf keepalived-1.2.12.tar.gzcd keepalived-1.2.12./configure --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --mandir=/usr/sharemake && make install

配置keepalived

[[email protected] ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived

global_defs {   notification_email {        [email protected]   }## 默认的配置文件中,使用第三方smtp服务器,但这在现实中几乎没有意义(需要验证的原因),我们将其指定为localhost, 将通知信息的发送交给本地sendmail服务处理   notification_email_from [email protected]   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id LVS_DEVEL}

vrrp_instance VI_1 {    state MASTER         ## 从使用BACKUP    interface eth0          ## 确认对外开放的端口,这里设置错误,将导致不会建立VIP    virtual_router_id 51    priority 100            ## 从要比主低,我设置为80    advert_int 5    mcast_src_ip 172.16.100.2  ##lvs的IP,从IP为172.16.100.3    authentication {        auth_type PASS        auth_pass Golo    }

# notify_master,notify_backup和notify_fault# 分别表示在节点变为master,节点变为backup和节点不可用时执行的脚本    notify_master "/etc/keepalived/master.sh"    notify_backup "/etc/keepalived/backup.sh"    notify_fault "/etc/keepalived/fault.sh"

## 在keepalived的配置文件最前面加入以下代码,定义一个跟踪脚本:(解决脑裂问题) vrrp_script check_local { #定义一个名称为check_local的检查脚本    script "/usr/local/keepalived/bin/check_local.sh" #shell脚本的路径interval 5  #运行间隔weight -15 #优先级变化}

## 再在vrrp_instance配置中加入以下代码使用上面定义的检测脚本:track_script {    check_local}

    virtual_ipaddress {       172.16.100.100     ## VIP    }}virtual_server 172.16.100.100 80 {    delay_loop 6    lb_algo rr    lb_kind DR    persistence_timeout 60    protocol TCP

    real_server 172.16.100.2 80 {        weight 3        TCP_CHECK {        connect_timeout 10        nb_get_retry 3        delay_before_retry 3        connect_port 80}    }    real_server 172.16.100.3 80 {        weight 3        TCP_CHECK {        connect_timeout 10        nb_get_retry 3        delay_before_retry 3        connect_port 80        }     }}

2.lvsbackup端

lvs-backup的修改参照上面的注释部分

开启keepalived服务

/etc/init.d/keepalived start

执行ipvsadm可以看到keepalived中配置已经在ipvsadm中调用

[[email protected] ~]# ipvsadmIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  172.16.100.100:http rr persistent 50  -> web1:http                    Route   3      0          0           -> web2:http                    Route   3      0          0      

3.web端

web端配置于前篇lvs文章中一样,这里写成脚本形式开机自启动

在/etc/init.d/下web1 172.16.100.4和web2 172.16.100.5上的脚本lvs

内容如下:

#add for chkconfig#chkconfig: 2345 70 30  #description: lvs‘s script#processname: lvs#!/bin/bashVIP=172.16.100.100source /etc/rc.d/init.d/functionscase "$1" instart)       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP       /sbin/route add -host $VIP dev lo:0       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       echo "RealServer Start OK"       ;;stop)       ifconfig lo:0 down       route del $VIP >/dev/null 2>&1       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce       echo "RealServerStoped"       ;;       *)       echo "Usage: $0 {start|stop}"       exit 1esacexit 0

为脚本lvs添加权限,并启动

chkconfig lvs onservice lvs start

安装并启动nginx,这里不多做介绍

4.结果验证

在lvs服务器上查看系统日志,服务启动成功

[[email protected] ~]# tail -f -n 100 /var/log/messagesAug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: IPVS: Service already existsAug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: IPVS: Destination already existsAug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: IPVS: Destination already existsAug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: Using LinkWatch kernel netlink reflector...Aug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: Activating healthchecker for service [172.16.100.4]:80Aug 13 16:03:25 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: Activating healthchecker for service [172.16.100.5]:80Aug 13 16:03:34 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: Remote SMTP server [127.0.0.1]:25 connected.Aug 13 16:03:34 sz-mycar-lvssla1 Keepalived_healthcheckers[20193]: SMTP alert successfully sent.

查看lvsmaster,可看到VIP在master上

[[email protected] ~]# ip a li eth22: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 52:54:52:4f:2a:de brd ff:ff:ff:ff:ff:ff    inet 172.16.100.2/24 brd 172.16.100.255 scope global eth2    inet 172.16.100.100/32 scope global eth2    inet6 fe80::5054:52ff:fe4f:2ade/64 scope link        valid_lft forever preferred_lft forever

将lvsmaster上的keepalived服务关闭,可发现VIP已经切换到lvsbackup

[[email protected] ~]# ip a li eth22: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 52:54:2b:55:07:d9 brd ff:ff:ff:ff:ff:ff    inet 172.16.100.3/24 brd 172.16.100.255 scope global eth2    inet 172.16.100.100/32 scope global eth2    inet6 fe80::5054:2bff:fe55:7d9/64 scope link        valid_lft forever preferred_lft forever

主从切换成功,且服务照常运行

时间: 2024-08-02 11:03:28

LVS+keepalived实现双机热备的相关文章

Lvs+keepalived+mysql主从热备

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 10.5pt; font-family: "Calibri", "sans-serif" } h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left

用haproxy搭建web群集并由keepalived 实现双机热备

搭建haproxy+keepalived高可用群集. 一.案例概述 1.haproxy是目前比较流行的一种集群调度工具,是一款免费开源的软件,并且具有一定得安全性:haproxy较适用于负载较大的web节点,并且支持数万的并发量.同类调度工具还有很多,如LVS和Nginx.相比较而言,LVS性能最好,但是搭建相对复杂,Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有haproxy好.haproxy主要实现web群集的负载均衡haproxy官方网站:http:

利用Keepalived实现双机热备详解

在这个高度信息化的IT时代,企业的生产系统.业务运营.销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的.不间断的计算机系统或网络服务. 一.Keepalived双机热备基础知识 1.Keepalived概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集. Keepaliv

keepalived+nginx双机热备+负载均衡

keepalived+nginx双机热备+负载均衡 最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡).同时结合keepalived 对前端nginx实现HA. nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都

HAproxy + keepalived 实现双机热备

一.HAProxy简介: HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或

keepalived nginx 双机热备图文讲解

原文:http://blog.csdn.net/wanglei_storage/article/details/51175418 keepalived nginx 双机热备实战精讲 在试验之前先贴张图上来,大致说下具体的需求及环境(注:实验所用到的脚本在文章末尾,如果在过程中遇到可以先看脚本) 环境: VIP(漂移地址):192.168.1.60-192.168.1.61 nginx-1:192.168.1.50 nginx-2:192.168.1.51 关闭 iptables.关闭selinu

搭建Keepalived实现双机热备

一.Keepalived双击热备 概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能一判断 LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集. 通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短. VRRP(Virtual Ro

Java技术中如何使用keepalived实现双机热备

Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管, 它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的.功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测.资源接管,检测集群中的服务,在集群节点转移共享IP地址的所

MySQL+Keepalived实现双机热备

Keepalived双机热备 一.概述: keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议. 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为m