实验介绍:

系统Centos6.4

keepalived的主配置文件 /etc/keepalived/keepalived.conf

keepalived的服务脚本 /etc/rc.d/init.d/keepalived

172.16.4.1 cont.magedu.com cont (作为控制节点,控制no1、no2)

Master 172.16.4.7 no1.magedu.com no1

Backup 172.16.4.11 no2.magedu.com no2

Real server1 172.16.4.5 no3.magedu.com no3

Real server2 172.16.4.15 no4.magedu.com no4

Vip: 172.16.4.55

Cont节点

#ssh-keygen -t rsa -P ‘’

#ssh-copy-id -i .ssh/id_rsa.pub root@No1.magedu.com

#ssh-copy-id -i .ssh/id_rsa.pub root@No2.magedu.com

No1、no2

#ssh-keygen -t rsa -P ‘’

#ssh-copy-id -i .ssh/id_rsa.pub root@cont.magedu.com

# ansible all -a 'date' #查看时间是否同步

# ansible all -m yum -a 'name=keepalived state=present'

一 、主从两个节点安装keepalived ipvsadm

这里可以根据自己需要使用源码编译安装,或者安装rpm格式包,这里我们使用系统自带的安装包

#yum -y install keepalived ipvsadm

二、编辑主配置文件

#vim /etc/keepalived/keepalived.conf

global_defs { 全局配置段

notification_email {

root@localhost 邮件接收方

}

notification_email_from keepadmin@localhost 邮件发送方

smtp_server 127.0.0.1 邮件服务器地址

smtp_connect_timeout 30 连接超时时间

router_id LVS_DEVEL 路由器的标示

}

vrrp_instance VI_1 { 定义虚拟路由器(虚拟路由器的实例名称)

state MASTER 状态

interface eth0 通告信息通过哪个接口进行

virtual_router_id 51 虚拟路由id

priority 100 初始优先级

advert_int 1 初始化通告

authentication { 认证机制

auth_type PASS 明文认证

auth_pass 1111 认证密码

}

virtual_ipaddress { 定义虚拟ip地址

172.16.4.55

}

}

virtual_server 172.16.4.55 80 { #定义虚拟服务器,需指定虚拟ip和端口

delay_loop 6 #设置健康检查时间,单位为秒

lb_algo wrr #设置负载调度算法,此处为加权轮叫算法

lb_kind DR #设置LVS实现负载均衡的模式

nat_mask 255.255.0.0 #设置子网掩码

protocol TCP #设置转发协议的类型

real_server 172.16.4.5 80 { #定义realserver,需指定ip和端口

weight 1 #指定权重

HTTP_GET { #设置检测后端realserver的方式为获取http协议报文

url {

path /

status_code 200 #状态码为200则证明后端服务器是在线的

}

connect_timeout 3 #设置超时时间

nb_get_retry 3 #设置超时时候重试几次

delay_before_retry 3 #在重试的时候的时间间隔

}

}

real_server 172.16.4.15 80 {

weight 1

HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

可以将配置文件发送给backup节点,然后修改下面的选项:

state BACKUP

priority 99

#man keepalived.conf 查看各个配置的相关信息说明

#tail -f /var/log/messages 查看日志信息

两个节点都要重启服务,我们可以在控制节点执行

#ansible all -m shell -a ‘service keepalived restart’

#ip addr show 查看定义的虚拟ip

将主节点停止服务,资源会自动转移到backup节点,当主节点重新上线后,资源会再转移到主节点上,可以查看日志信息判断当前资源所在的节点

三、在两台Realserve上安装并启动httpd服务

1、这里我们就不演示了,参考http://qidian510.blog.51cto.com/7319882/1282663,我们安装系统自带的服务

#yum -y install httpd

#chkconfig httpd on

为了方便我们的测试,这里为它们提供不同的测试网页

# vim /var/www/html/index.html

<h1>web1.test.com</h1>

#service httpd start

2、为两台Realserver提供Sysv格式的脚本来自动修改内核参数与虚拟IP并运行脚本

# mkdir src

# cd src/

# vim realserver.sh

#!/bin/bash

#

# Script to start LVS DR real server.

# description: LVS DR real server

#

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

VIP=172.16.455 #修改你的VIP

host=`/bin/hostname`

case "$1" in

start)

# Start LVS-DR real server on this machine.

/sbin/ifconfig lo down

/sbin/ifconfig lo up

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

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

/sbin/route add -host $VIP dev lo:0

;;

stop)

# Stop LVS-DR real server loopback device(s).

/sbin/ifconfig lo:0 down

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

;;

status)

# Status of LVS-DR real server.

islothere=`/sbin/ifconfig lo:0 | grep $VIP`

isrothere=`netstat -rn | grep "lo:0" | grep $VIP`

if [ ! "$islothere" -o ! "isrothere" ];then

# Either the route or the lo:0 device

# not found.

echo "LVS-DR real server Stopped."

else

echo "LVS-DR real server Running."

fi

;;

*)

# Invalid entry.

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

exit 1

;;

esac

#chmod +x realserver.sh

# ./realserver.sh start

3、查看相关配置

# cat /proc/sys/net/ipv4/conf/lo/arp_ignore

1

# cat /proc/sys/net/ipv4/conf/lo/arp_announce

2

# cat /proc/sys/net/ipv4/conf/all/arp_ignore

1

# cat /proc/sys/net/ipv4/conf/all/arp_announce

2

四、测试验证

1、主节点查看规则

2、Master服务器损坏后,虚拟IP地址与LVS规则会配置到backup上

3、假如Master服务器修复好已重新上线,则虚拟IP地址与LVS规则会重新配置到Master服务器上而在Backup服务器上删除

4、在浏览器测试

访问172.16.4.55即可,当我们刷新网页时,会看到在两个real server之间进行切换,当节点不能服务时,我们访问网页仍然不受影响,这样验证了我们的高可用配置实现了。

转载于:https://blog.51cto.com/qidian510/1303233

keepalived实现LVS-DR模型的高可用相关推荐

  1. mysql lvs 读写分离_mysql高可用架构方案之二(keepalived+lvs+读写分离+负载均衡)

    mysql主从复制与lvs+keepalived实现负载高可用 目录 1.前言    4 2.原理    4 2.1.概要介绍    4 2.2.工作原理    4 2.3.实际作用    4 3方案 ...

  2. MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验

    http://blog.csdn.net/wzy0623/article/details/38757561 MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验 分类: MyS ...

  3. 部署keepalive+lvs多master节点高可用

    最低配置2核 2G 192.168.1.11 master1 192.168.1.12 master2 192.168.1.13 master3 192.168.1.20 node1 一.初始化实验环 ...

  4. keepalived介绍和keepalived实现nginx负载均衡机高可用

    1. keepalived简介 1.1 keepalived是什么? Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实 ...

  5. LVS DR模型详解

    DR模型的特点: 1.director必须与realserver位于同一个网络. 2.realserver可以使用公网ip地址,便于远程管理与配置. 3.director只负责处理入站请求.而响应报文 ...

  6. 深入浅出keepalived+nginx实现网关主备高可用

    深入浅出keepalived+nginx实现网关主备高可用 目录 背景 当用Nginx作网关的时候,如果网关宕机了,整个服务将会变得不可用,那么如何保证网关的高可用呢?我们可以用Keepalived来 ...

  7. lvs dr 模型配置详解

    lvs dr 模型配置详解 [学习笔记] 前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0:2 ...

  8. 基于keepalived 实现VIP转移,lvs,nginx的高可用

    一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VIP的切换 四. 实现在状态转变的时候自定义进行通知, 五. 实现负载均衡 六:实现n ...

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

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  10. LVS DR模型及LVS持久连接

    LVS之DR模型以及持久连接 LVS的简单介绍 linux virtual server 简单来讲lvs是一段内核代码 类似于netfilter本身是一框架但不提供任何功能,但是在这框架上提供了能够根 ...

最新文章

  1. python3.6安装包-Python3.6.6官方版
  2. 分享一个JDK1.8丢失数字精度的案例
  3. 与草原有关的几张照片
  4. 线程控制 12 | 线程属性
  5. php保存ppt,ppt怎么保存到电脑桌面?
  6. PyTorch 1.0 中文文档:torchvision.datasets
  7. RabbitMQ实现多系统间的分布式事务,保证数据一致性
  8. SpaceX 火箭发射成功,一文了解所用的软件技术栈!
  9. POJ1011 HDU1455 UVA307 UVALive5522 Sticks题解
  10. CentOS 6.5 Zabbix监.控系统功能及基本使用
  11. MyBatis配置使用
  12. 如何才能把qlv格式转换成mp4格式
  13. 《区块链技术与应用》公开课系列笔记——目录导航页
  14. windows家庭中文版升级至专业版
  15. PostgreSQL的下载和安装使用步骤
  16. 无线键鼠接收器配对怎么就那么难?简直就是浪费
  17. LINUX--创建新用户为新用户设置权限
  18. html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站,简单web假期课程作业
  19. java、正则表达式、php校验“统一社会信用代码”
  20. i5 1035g1和r5 3500u哪个好

热门文章

  1. 【面经系列】八位硕博大佬的百度之旅
  2. Android事件处理
  3. 【ML小结1】ML入门
  4. 【POJ-2452】Sticks Problem【二分右端点+线段树】
  5. min-max容斥【概念+例题解析】
  6. oracle的unload,Oracle 业务数据unload恢复过程
  7. mysql登录出现1045错误
  8. jquery migrate 应用迁移辅助插件
  9. [NOI2006]神奇口袋
  10. window下的git工具msysgit的使用