Keepalived实现LVS-DR模型的高可用_2015101601

Keepalived实现LVS-DR模型的高可用

>>>拓扑结构简介

本次实验所使用的系统发行版本为:centos6.6

(nod1)路由器,为一台linux主机模拟,共有两个接口eth0内网172.16.0.0/16网段,并且该接口为内网RS的网关;eth1为外网192.168.1.0/24网段,为外网客户端的网关

(nod55)为MASTER调度器,DIP为172.16.13.55/16,keepalived工作于抢占模式

(nod44)为BACKUP调度器,DIP为172.16.13.44/16,keepalived工作于抢占模式

(nod22)为RS1,运行httpd服务,负责提供web服务

(nod33)为RS2,运行httpd服务,负责提供web服务

(Client)使用一台linux虚拟机模拟,网关指向nod1的eth1接口

实验目的

利用keepalived,实现LVS-DR模型的双机热备。当nod55故障停机,nod44自动抢占VIP地址,并提供LVS调度功能;并且当nod55修复上线后,其自动抢占VIP,继续作为MASTER服务器

实验准备

在VMware中创建6台,nod22、nod33、nod44、nod55各装配有一块网卡,为桥接模式,nod1的eth0网卡为桥接模式,wth1网卡为自定义网络vmnet10;Client(nod66)网卡也为自定义网络vmnet10

实验配置:以下配置基本为当前生效,重启生效,若想永久生效需自行修改保存对应的配置文件

关于keepalived配置参数介绍,请参见http://imsupeng.blog.51cto.com/10651675/1703673

(nod55)MASTER的配置:提前配置好eth0的IP为172.16.13.55/16,网关无需指定

>>>关闭selinux,清空防火墙规则

[[email protected] ~]# setenforce 0
[[email protected] ~]# iptables –F

>>>由于keepalive的配置前提必须(1、主备节点时间同步;2、主备节点主机名必须是使用hostname或uname –r命令获取的一直,并且能互相解析);因此,需要修改主机名并添加主备节点的hosts文件解析

[[email protected] ~]# sed -i ‘s/\(HOSTNAME=\).*/\1nod55/‘ /etc/sysconfig/network && hostname nod55
[[email protected] ~]# echo -e ‘127.0.0.1nod55\n172.16.13.44 nod44‘ >> /etc/hosts 
##172.16.13.44为BACKUP节点的DIP

>>>安装keepalived,并进行配置;

[[email protected] ~]# yum install -y  keepalived ##需事先配置好yum源

[[email protected] ~]# vim /etc/keepalived/keepalived.conf ##编辑keepalived配置文件,将配置文件所有内容删除,粘贴如下配置

! 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 nod55         ##此项为当前主机的主机名

}

vrrp_script chk_down {

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

        interval 1

        weight -2

}        ##此处为定义一个脚本,用于在线将主节点设置为维护模式,此处脚本的意义为:每隔一秒检查一下/etc/keepalived/目录下是否存在一个名为down的文件,此文件一旦存在,便会执行将调用此脚本的VRRP实例的优先级(priority)减去2.

vrrp_instance VI_1 {

state MASTER ##此处声明当前节点为MASTER节点

interface eth0 ##声明将VIP绑定在eth0网卡

virtual_router_id 13         ##主备节点此处必须相同,若有多个VRRP实例,每个实例的此项不能相同

priority 100      ##设置优先级,主节点必须大于备节点

advert_int 1     ##keepalive的状态通告周期时间/s

authentication {

auth_type PASS        ##状态通告信息使用明文验证

auth_pass 5ffffc4b  ##状态通告信息验证密码

}

virtual_ipaddress {

172.16.13.100/32 dev eth0 label eth0:1          ##VIP地址

}

track_script {

chk_down

}        ##此处为调用前面所定义的脚本

}

virtual_server 172.16.13.100 80 {

delay_loop 3    ##对RealServer的健康状态探测的时间间隔

lb_algo rr ##LVS的调度算法

lb_kind DR        ##LVS的类型,这里使用的是DR模型

nat_mask 255.255.255.255    ##VIP的掩码,需和VRRP实例中定义的掩码一致

protocol TCP

real_server 172.16.13.22 80 {

weight 1

HTTP_GET {      ##声明状态监测的方法

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 172.16.13.33 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

>>>启动keepalived进程,并添加至开机自动启动

[[email protected] ~]# service keepalived start

[[email protected] ~]# chkconfig --add keepalived; chkconfig keepalived on

(nod44)MASTER的配置:提前配置好eth0的IP为172.16.13.44/16,网关无需指定

>>>关闭selinux,清空防火墙规则

[[email protected] ~]# setenforce 0

[[email protected] ~]# iptables –F

>>>修改主机名并添加主备节点的hosts文件解析

[[email protected] ~]# sed -i ‘s/\(HOSTNAME=\).*/\1nod44/‘ /etc/sysconfig/network && hostname nod44

[[email protected] ~]# echo -e ‘127.0.0.1 nod44\n172.16.13.55nod55‘ >> /etc/hosts ##172.16.13.55为MASTER节点的DIP

>>>安装keepalived,并进行配置;

[[email protected] ~]# yum install -y  keepalived ##需事先配置好yum源

[[email protected] ~]# vim /etc/keepalived/keepalived.conf ##编辑keepalived配置文件,将配置文件所有内容删除,粘贴如下配置

! 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 nod44

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 13

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 5ffffc4b

}

virtual_ipaddress {

172.16.13.100/32 dev eth0 label eth0:1

}

}

virtual_server 172.16.13.100 80 {

delay_loop3

lb_algo rr

lb_kind DR

nat_mask 255.255.255.255

protocol TCP

real_server 172.16.13.22 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 172.16.13.33 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

>>>启动keepalived进程,并添加至开机自动启动

[[email protected] ~]# service keepalived start

[[email protected] ~]# chkconfig --add keepalived; chkconfig keepalived on

(nod22)RS1的配置:提前配置好eth0的IP为172.16.13.22/16,网关需指向172.16.13.1(router的IP)

>>>关闭selinux,清空防火墙规则

[[email protected] ~]# setenforce 0

[[email protected] ~]# iptables –F

>>>安装httpd,提供网页文件并启动httpd

[[email protected] ~]# yum install -y httpd     ##需事先配置好yum源

[[email protected] ~]# echo "nod22" >/var/www/html/index.html

[[email protected] ~]# service httpd start

>>>在物理机测试http服务是否正常

>>>在/root目录下编写如下脚本,命名为initset.sh(自定义脚本名),内容如下

由于LVS-DR模型RS上需要配置有VIP地址并隔离本机的VIP的ARP通告,以防影响VIP对外部请求的接收及调度,此脚本便是实现这些功能,并设置VIP地址到lo网卡的别名上,注意,此处隔离ARP通告和设置IP地址的顺序不能随便

#!/bin/sh

#

case $1 in

start)

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

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

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

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

ifconfig lo:0 172.16.13.100/32 broadcast 172.16.13.100 up

;;

stop)

ifconfig lo:0 down

echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

Esac

>>>运行此脚本,并向其传递start参数

[[email protected] ~]# bash /root/initset.sh start

(nod33)RS2的配置:提前配置好eth0的IP为172.16.13.33/16,网关需指向172.16.13.1(router的IP)

>>>关闭selinux,清空防火墙规则

[[email protected] ~]# setenforce 0

[[email protected] ~]# iptables –F

>>>安装httpd,提供网页文件并启动httpd

[[email protected] ~]# yum install -y httpd     ##需事先配置好yum源

[[email protected] ~]# echo "nod33" >/var/www/html/index.html

[[email protected] ~]# service httpd start

>>>在物理机测试http服务是否正常

>>>在/root目录下编写如下脚本,命名为initset.sh(自定义脚本名),内容如下

#!/bin/sh

#

case $1 in

start)

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

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

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

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

ifconfig lo:0 172.16.13.100/32 broadcast 172.16.13.100 up

;;

stop)

ifconfig lo:0 down

echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

Esac

>>>运行此脚本,并向其传递start参数

[[email protected] ~]# bash /root/initset.sh start

(nod1)ROUTER的网卡配置,无需指定网关

>>>关闭selinux及清空防火墙规则

[[email protected] ~]# iptables -F

[[email protected] ~]# setenforce 0

》》》开启主机的核心转发功能

[[email protected] ~]# echo 1 >/proc/sys/net/ipv4/ip_forward

>>>网卡配置

(Client)客户端IP设置为192.168.1.12/24

@@@此处再次声明:Client和ROUTER(nod1)的eth1连接在自定义网络vmnet10上,MASTER、BACKUP及RS的网卡都为桥接模式

第一步:由于在定义keepalived时,配置文件中创建了降级维护的脚本,因此首先在MASTER节点(nod55)上测试keepalived主备节点是否正常

>>>在/etc/keepalived/目录下创建一个名为“down”的文件,测试VIP是否能正常转移

[[email protected] ~]# cd /etc/keepalived/

[[email protected] keepalived]# touch down

[[email protected] keepalived]# ls

down keepalived.conf keepalived.conf.bak

测试正常,将nod55的down文件删除,使nod55再次成为MASTER节点

第二步:客户端使用curl命令进行请求测试:

测试正常

第三部:将MASTER节点置为维护状态(在nod55主机的/etc/keepalived目录下创建名为down的文件),然后再从客户端进行访问测试

时间: 2024-10-20 14:55:59

Keepalived实现LVS-DR模型的高可用_2015101601的相关文章

keepalived实现LVS集群的高可用(1)

HA集群:高可用集群: 实现方式:vrrp协议和ais完备HA集群 vrrp可以由keepalived实现 ais可以由heartbeat和corosync vrrp协议:虚拟冗余路由协议 VRRP为虚拟路由冗余协议,目的就是为了解决静态路由单点故障问题.在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的机器并不能同时工作,而是由一台称为MASTER的负责路由工作,其它的都是BACKUP,MASTER并非一成不变,VRRP让每个VRRP路由器参与竞选,最终获胜的就是MAS

keepalived+nginx 双主模型实现高可用服务

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

keepalived+lvs实现调度、高可用、高性能集群

6.keepalived+lvs实现调度.高可用.高性能集群 Keepalived的作用是: 检 测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服 务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务 器       (1)安装keepalived     # ./configure --prefix=/usr

keepalived + haproxy 实现web 双主模型的高可用负载均衡

1.本文的架构图: 阐述各服务器用途: 1.haproxy在本构架中实现的是:负载均衡 2.keepalived实现对haproxy的高可用 3.apache static 实现静态页面的访问 4.aoache dynamic实现动态页面的访问,图中有两个是实现负载均衡的 配置各功能模块: 一.配置haproxy和keepalived 验证: 1.当一台keepalived宕机后,VIP会不会转移到另外一台服务器 2.当一台haproxy服务出故障,VIP会不会转移到另外一台服务器 注意: 那如

Centos7+Lvs+keeplived实现Apache高可用的负载均衡

近期一直在练习Linux相关的服务部署,前面文章也介绍了一部分Linux的相关日常服务,今天我们就介绍Centos7+Lvs+keeplived实现Apache高可用的负载均衡,其实该功能对于一个企业运维人员来说是必须要掌握的技能,而且要熟悉相关负载均衡及高可用的相关参数,这样才可以部署出一个属于特殊环境的配置应用,我们都知道lvs.nginx.haproxy可以实现应用的负载均衡,但是不能实现单点故障,所以我们还需要借助一个应用就是keepalived,当然我们见的最多的就是lvs+keepa

LVS+keeplived+nginx+tomcat高可用、高性能jsp集群

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/557749 #!/bin/bash # BY kerryhu # MAIL:[email protected] # BLOG:http://kerry.blog.51cto.com # Please manual operation yum of before Operation..... #yum -y install

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

keepalived实现Lvs-dr集群的高可用

Lvs-dr:Direct Routing,被称为直接路由:通过修改请求报文的MAC地址来进行转发:源MAC地址是DIP所在接口的MAC地址,目标MAC时前端主机挑选出某台后端的RS的RIP所在接口的MAC地址:从新封装时IP地址地址不会发生变化:下图为lvs-dr结构图 1.当客户端请求资源时,路由1会把请求报文发送给前传主机:在发送给前端主机时路由1不会变更请求报文的IP守护,而是在报文上再添加一层MAC守护 2.当前端主机收到请求报文后,拆封原来的MAC守护:自己再添加一层MAC守护发送给

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置 Nginx+Keepalived实现反代负载均衡高可用配置 OS IP 子网掩码 路由网关 Centos6.6 nginx Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 Nginx Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP