Centos6.3 上实现LVS+Keepalive实现http服务的双机热备

一、初始环境部署

两台centos 6.3 均最小欢安装,初始化系统环境

主机配置   master: 192.168.0.250 24

backup: 192.168.0.249 24

vip   : 192.168.0.66  24

测试端: 192.168.0.252 24

在两台主上均以下操作,配置本地yum源

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Vault.repo /root/

vi CentOS-Media.repo

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/

file:///media/cdrom/

file:///media/cdrecorder/

gpgcheck=0

enabled=1

mount /dev/cdrom /mnt/

安装基本编译工具,以及其他工具包

yum -y install make gcc openssl-devel

yum -y install lrzsz ipvsadm sendmail httpd

二、安装lVS 和 keepalived 软件包

查看内核是否支持lvs

modprobe -l |grep ipvs

kernel/net/netfilter/ipvs/ip_vs.ko

kernel/net/netfilter/ipvs/ip_vs_rr.ko

kernel/net/netfilter/ipvs/ip_vs_wrr.ko

kernel/net/netfilter/ipvs/ip_vs_lc.ko

kernel/net/netfilter/ipvs/ip_vs_wlc.ko

kernel/net/netfilter/ipvs/ip_vs_lblc.ko

kernel/net/netfilter/ipvs/ip_vs_lblcr.ko

kernel/net/netfilter/ipvs/ip_vs_dh.ko

kernel/net/netfilter/ipvs/ip_vs_sh.ko

kernel/net/netfilter/ipvs/ip_vs_sed.ko

kernel/net/netfilter/ipvs/ip_vs_nq.ko

kernel/net/netfilter/ipvs/ip_vs_ftp.ko

出现以上信息表示支持,kernel2.6 以后支持

www.keepalived.org 下载keepalived-1.2.15.tar.gz

tar -zxvf keepalived-1.2.15.tar.gz

cd keepalived-1.2.15

./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64

make && make install

ln -s /usr/local/sbin/keepalived /sbin/   (将keepalived指向/sbin/)

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]     (这里是发送报警邮件地址)

[email protected]

[email protected]

[email protected]

}

notification_email_from [email protected]

smtp_server 192.168.0.250(这是右键服务器地址)

smtp_connect_timeout 30  (连接smtp服务超时时间)

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER              (制定服务器角色)

interface eth0

virtual_router_id 51      (虚拟路由id,一个集群id必须一样)

priority 100              (角色优先级,数值越大优先级越高)

advert_int 1              (master与backup同步检查的时间间隔,单位秒)

authentication {

auth_type PASS         (验证类型,有PASS和AH)

auth_pass 1111         (验证密钥,两台机器必须一致)

}

virtual_ipaddress {

192.168.0.66            (虚拟IP地址)

}

}

virtual_server 192.168.0.66 80 {

delay_loop 6               (运行情况检查时间间隔)

lb_algo rr                 (设置负载调度算法)

lb_kind DR                 (负载均衡机制,设置DR,还有NAT和TUN模式)

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP               (设置传输协议为TCP)

real_server 192.168.0.250 80 {

weight 1                (服务器权值设置)

TCP_CHECK {

connect_timeout 3   (表示3秒无响应超市)

nb_get_retry 3      (重试次数3次)

delay_before_retry 3(重试时间间隔3秒)

}

}

real_server 192.168.0.249 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

在master主机上配置如上,在backup主机祝需要修改

state BACKUP

priority 90

vi /etc/init.d/lvsrs  (编写realserver启动脚本)

#!/bin/bash

NS_VIP=192.168.0.66

/etc/rc.d/init.d/functions

case "$1" in

start)

/sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up

/sbin/route add -host $SNS_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

syscty -p > /dev/null 2>&1

echo "RealServer Start Ok"

;;

stop)

ifconfig lo:0 down

route del $SNS_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 "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

chmod 755 /etc/init.d/lvsrs

/etc/init.d/keepalived start

/etc/init.d/lvsrs start

三、测试配置正确

在master上执行

echo "This is master" > /var/www/html/index.html

service httpd start

在backup上执行

echo "This is backup" > /var/www/html/index.html

service httpd start

两台机器均关闭防火墙

service iptables stop

在测试端浏览器输入http://192.168.0.66

接着停掉master上的httpd服务

service httpd stop

我们可看到已经切换到backup服务器,检查backup的日志

tail -f /var/log/messages

Mar 12 03:35:22 backup Keepalived_healthcheckers[3123]: Removing service [192.168.0.249]:80 from VS [192.168.0.66]:80

Mar 12 03:35:22 backup Keepalived_healthcheckers[3123]: SMTP connection ERROR to [192.168.0.250]:25.

Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: TCP connection to [192.168.0.249]:80 success.

Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Adding service [192.168.0.249]:80 to VS [192.168.0.66]:80

Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Remote SMTP server [192.168.0.250]:25 connected.

Mar 12 03:39:46 backup Keepalived_healthcheckers[3123]: Error reading data from remote SMTP server [192.168.0.250]:25.

Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: TCP connection to [192.168.0.250]:80 failed !!!

Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Removing service [192.168.0.250]:80 from VS [192.168.0.66]:80

Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Remote SMTP server [192.168.0.250]:25 connected.

Mar 12 03:39:55 backup Keepalived_healthcheckers[3123]: Error reading data from remote SMTP server [192.168.0.250]:25.

注意:这里master宕机backup接管,master恢复backup依然提供服务,当backup宕机master才会接管服务!不是master恢复 服务又从backup切回master!

双机热备功能已实现,你会了吗?

时间: 2024-11-05 18:35:58

Centos6.3 上实现LVS+Keepalive实现http服务的双机热备的相关文章

keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可以阅读本章,即使部分读者使用Nginx负载均衡,但是在大流量下性能相对于工作在链路层的LVS真是不能同日而语,并且LVS不仅可以实现WEB方面的负载均衡,其他诸如数据库.FTP.Mail等都可以实现. 通常对于小型网站,很多都使用单台服务器,顶多在弄个缓存服务器.数据库服务器.但是一旦流量上来,单台

非常强悍并实用的双机热备+负载均衡线上方案

Heartbeat+DRBD+NFS+Keepalived+Lnmp 对于网站服务器来说,可靠性之重要不用我多说,但要想做到可靠性一般需要昂贵的设备,这里最主要是就是数据同步用的共享磁盘了,磁盘柜+磁盘一共下来是20多万,这对于追求最高性价比的双机负载热备方案来说是极其不靠谱的,尤其是中小型企业,私有企业,一般经理是不会考虑这么高的成本的.我们通常做都是四台服务器+一个磁盘柜子+千兆交换机,那么这个成本下来将近30万了,而且这个方案有个弊端就是 存储依然存在单点故障,除非使用双控制+双电源+双主

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 w

Keepalived+lvs 双机热备

Keepalived 双机热备 使用 Keepalived 做双机热备非常简单,经常和 LVS 搭配来实现高可用负载平衡方案 1. Master / Slave 首先准备两台测试服务器和一个虚拟IP. Server A: 192.168.1.10 (主服务器) Server B: 192.168.1.20 Virtual IP: 192.168.1.100 测试服务: 在两台服务器上分别安装 Nginx,并修改默认的 index.html 文件,显示当前服务器 IP 以便识别. 1. 在两台服务

华为USG防火墙双机热备(业务口工作在三层上下行连接交换机)

防火墙双机热备与路由/交换机相比较的话,最主要的是会话备份的功能,路由器/交换机主备切换路由能转发就OK,防火墙需要匹配会话. 防火墙双机热备的三个协议 VRRP:虚拟路由冗余协议,在防火墙双机热备种主要作用是检测主备是否正常 VGMP:在防火墙双机热备中主备切换不在使用VRRP,而是将VRRP加入VGMP中由VGMP来管理主备切换.默认情况下主设备VGMP优先级为65001,备用设备优先级为65000.每当VGMP管理组中的一个VRRP出现故障那么VGMP的优先级减2 HRP:指定心跳口,用来

keepalive+双机热备+nginx

最近搭建keepalived双机热备, 在网上博采众之所长, 整理一下自己的笔记! 在新搭建的centos6.x下最好下载一下阿里云源: centos:http://mirrors.aliyun.com/help/centos 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wg

keepalived双机热备原理及实例部署LVS+keepalived

keepalived简介 它是由C语言编写的路由热备软件,主要提供简单高效的负载均衡及高可用解决方案.keepalived通过VRRP协议实现高可用架构.lvs实现集群分发,keepalived实现调度器的主备方案,两者结合实现集群系统的高负载高可用. VRRP协议是为了防止单点故障而设计的主从灾备协议,VRRP将两台或者多台路由设备虚拟成一个设备,对外提供一个虚拟路由ip地址,主路由设备处于启用状态时,不断的发送自身信息到备用设备,以表明主路由状态正常,当备用设备收不到主设备的信息时,备用设备

nginx+keepalive主从双机热备+自动切换解决方案

环境采集cenots 6.3 64位迷你安装,因为安装前,你需要做一些工作 yum install -y make wget 如果你愿意可以更新下系统,更换下yum源. 1.安装keepalive 官方最新版  keepalived-1.2.7 tar zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 在此之前.请安装一下一些简单的工具 yum install -y gcc openssl-devel popt-devel 不然会编译不成功的.然后

【转】nginx+keepalive主从双机热备+自动切换解决方案

环境采集cenots 6.3 64位迷你安装,因为安装前,你需要做一些工作 yum install -y make wget 如果你愿意可以更新下系统,更换下yum源. 1.安装keepalive 官方最新版  keepalived-1.2.7 tar zxvf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 在此之前.请安装一下一些简单的工具 yum install -y gcc openssl-devel popt-devel 不然会编译不成功的.然后