keepalived实现LVS高可用

前提:后端两个RS已经安装好了httpd,并且可以被正常访问到

规划:

Director1:

eth0,DIP:202.207.178.6

eth0:0,VIP:202.207.178.4

Director2:

eth0,DIP:202.207.178.7

eth0:0,VIP:202.207.178.4

RS1:

eth0,RIP:202.207.178.8

lo:0,VIP:202.207.178.4

RS2:

eth0,RIP:202.207.178.9

lo:0,VIP:202.207.178.4

一、配置DR模型(注意:RS1和RS2上的网卡别名地址必须在配置好arp_ignore和arp_announce之后才可配置,为避免影响,应关闭防火墙和SELinux)

1、按上述IP地址规划在相应的网卡上配置相应的IP地址

2、配置RS1和RS2对arp的请求响应,以及其对应VIP

RS1:

# sysctl -w net.ipv4.conf.eth0.arp_announce=2

# sysctl -w net.ipv4.conf.all.arp_announce=2

# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

#ifconfig lo:0 202.207.178.4 broadcast 202.207.178.4 netmask

255.255.255.255

RS2:

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

# ifconfig lo:0 202.207.178.4 broadcast 202.207.178.4 netmask

255.255.255.255

3、为了使响应报文的源地址为VIP,添加一条路由

RS1:

# route add -host 202.207.178.4 dev lo:0

RS2:

# route add -host 202.207.178.4 dev lo:0

4、在前端两个Director上分别定义规则

# ipvsadm -A -t 202.207.178.4:80 -s rr

# ipvsadm -a -t 202.207.178.4:80 -r 202.207.178.8 -g

# ipvsadm -a -t 202.207.178.4:80 -r 202.207.178.9 -g

二、安装配置keepalived,并对此系统进行测试!

Director1:

1、安装keepalived

# tar xf keepalived-1.2.1.tar.gz

# cd keepalived-1.2.1

# ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-642.11.1.el6.i686/

# make && make install

注意:

可能需要安装此包:

# yum install popt-devel

发现/usr/src/kernels/为空,需要安装内核源码

# yum install kernel-devel

2、配置keepalived

1)设置一个变量

# DIR=/usr/local/

2)执行如下语句,将keepalived的配置文件放置在/etc下相关目录中

# cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/

# cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p

/etc/keepalived

# cp $DIR/sbin/keepalived /usr/sbin/

3)为keepalived提供配置文件

# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

#定义出现故障向何处发邮件

notification_email {

[email protected]

}

#定义邮件是由谁发的

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

#定义检测脚本(为了完成主从节点的切换)

vrrp_script chk_schedown {

script "[ -e /etc/keepalived/down ] && exit 1 || exit 0"

interval 1

weight -5

fail 2

rise 1

}

# VIP1

#用来定义虚拟路由(vrrp实例)

vrrp_instance VI_1 {

state MASTER

#定义通告信息基于那个接口发送和虚拟路由是工作在那个接口上的

interface eth0

# lvs_sync_daemon_inteface eth0

virtual_router_id 51

#定义优先级

priority 101

#定义每隔多长时间发一次通告

advert_int 5

#定义认证

authentication {

#定义认证类型为简单字符认证

auth_type PASS

auth_pass keepalivedpass

}

#定义虚拟地址

virtual_ipaddress {

202.207.178.4/16 dev eth0 label eth0:0

}

#定义自己写的脚本何时执行

track_script {

chk_schedown

}

}

virtual_server 202.207.178.4 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

protocal TCP

sorry_server 127.0.0.1 80

real_server 202.207.178.8 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 2

nb_get_retry 3

delay_before_retry 1

}

}

real_server 202.207.178.9 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 2

nb_get_retry 3

delay_before_retry 1

}

}

}

4)启动服务

# /etc/init.d/keepalived restart

# ps -ef | grep keepalived

此时发现服务已经启动!

# tail -fn 100 /var/log/messages

此时发下一直滚屏,是缺少一个模块,下面加载此模块

# modprobe ip_vs

# /etc/init.d/keepalived restart

# tail -fn 100 /var/log/messages

此时一切正常

Director2:

配置同主节点,只是在配置文件中修改以下几项即可:

priority 100

real_server 202.207.178.9 80

测试:此时访问http://202.207.178.4/,可以发现以轮询方式访问到后端RS;在/etc/keepalived下touch一个名为down的文件,即可实现主从节点的切换!

三、自写脚本,实现DR宕机,向管理员发邮件(在主从节点上同时执行)

# cd /etc/keepalived/

# vim notify.sh

添加如下内容:

#!/bin/bash

#

contact=‘[email protected]‘

Usage(){

echo "Usage: `basename $0` {master|backup|fault} VIP"

}

Notify(){

subject="`hostname`‘s state changed to $1"

mailbody="`data "+%F %T "`: `hostname`‘s state change to $1, $VIP floating."

echo $mailbody | mail -s "$subject" $contact

}

[ $# -lt 2 ] && Usage &&  exit

VIP=$2

case $1 in

master)

Notify master

;;

backup)

Notify backup

;;

fault)

Notify fault

;;

*)

Usage

exit 1

;;

esac

# chmod +x notify.sh

# vim keepalived.conf

在vrrp段添加如下内容:

notify_master "/etc/keepalived/notify.sh master 202.207.178.4"

notify_backup "/etc/keepalived/notify.sh backup 202.207.178.4"

notify_fault "/etc/keepalived/notify.sh fault 202.207.178.4"

此时在两个节点重启keepalived服务,实现主从节点切换,即可收到邮件!

欢迎批评指正!

时间: 2024-10-25 03:33:00

keepalived实现LVS高可用的相关文章

高可用集群技术之keepalived实现lvs高可用并负载均衡web服务

Keepalived概述: Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. keepalived实现lvs高可用并负载均衡web服务: 准备工作: 2台keepalived节点为: node1.samlee.com

keepalived实现lvs高可用并负载均衡lamp

一.安装lamp 1.安装httpd(172.16.23.211) [[email protected] ~]# yum install -y httpd 2.安装php(172.16.23.211) [[email protected] ~]# yum install -y php 3.安装php-mysql(172.16.23.211) [[email protected] ~]# yum install -y php-mysql 4.安装mariadb(172.16.23.211 Cent

通过keepalived搭建lvs高可用集群

1.配置keepalived Keepalived的配置仅需要一个配置文件即可完成对HA cluster和LVS服务节点监控,在通过Keepalived搭建高可用的LVS集群实例中,主.备Director Server都需要安装Keepalived软件,安装成功后,默认的配置文件路径(可以通过rpm -ql keepalived查看)是:/etc/keppalived/keeplived.conf.一个完整的keepalived的配置文件由3个部分组成,分别是全局定义部分.vrrp实例定义部分以

RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). K

CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

一.系统环境 实验拓扑: 实验环境: Vmware 9.01 + Windows 8 x64 企业版+8G内存 虚拟机步骤: 1.安装一台CentOS 6.3 x64主机,内存为1GB,网络为NAT模式,注意检查Vmware中EDIT菜单下Virtual Network Editor中VMnet8 2. 加电,安装系统.基础知识了,不再多说,注意:选择英文而不要选择中文,选择是Basic Server模式,系统名称:LVS-MASTER 3.安装系统后,用root用户登录进去,执行 ifconf

Keepalived + LVS 高可用负载均衡集群部署

Keepalived(高可用) 通过在两台主.备调度器上实现Keepalived高可用解决调度器单点失败问题 主.备调度器上配置LVS,正常情况下主调度器工作 主调度器异常时,Keepalived启用备用调度器,保证了调度器的高可用 调度器保证了后台服务的高可用 Keepalived机制把同一个IP一直分配给同一个Web服务器 IP地址分配: Web1:        192.168.10.20      ifcfg-lo:0   192.168.10.50 Web2:        192.1

keepalived lvs 实现lvs高可用

keepalived 简介 keepalived是借用VRRP协议来实现高可用性的,VRRP协议是解决单点故障,使路由器和层三交换机实现冗余功能. keepalived启动后会有三个进程 父进程:内存管理,子进程管理等等 子进程:VRRP子进程 子进程:healthchecker子进程 从图上可以看出,两个子进程都被系统WatchDog看管,两个子进程各自操作自己的事,healthchecker子进程负责检查各自服务器的健康程度,例如HTTP,LVS等等,如果healthchecker子进程检查

CentOS 6.3下部署LVS(NAT模式)+keepalived实现高性能高可用负载均衡

一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalived版本:keepalived-1.2.4 三.安装 0.安装LVS前系统需要安装popt-static,kernel-devel,make,gcc,openssl-devel,lftp,libnl*,popt* 1.在两台Director Server上分别配置LVS+Keepalived LVS

LVS+Keepalived搭建MyCAT高可用负载均衡集群

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast