Keepalived + LVS/DR

说明

  • Keepalived:可以踢出掉故障服务
  • Keepalived:可以实现主从切换,解决单点故障

实验环境

  • 四台主机:Linux Centos 6.4 32位
  • 两台Director:LVS+Keepalived
  • 两台Web:Apache

环境搭建操作

web server 端

1、添加虚拟IP脚本

vim /usr/local/sbin/lvs_dr.sh

#/bin/bash
vip=192.168.1.100
# 把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
# 以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
echo "">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "">/proc/sys/net/ipv4/conf/all/arp_announce
# 更改内核配置文件之后生效命令,可以不加 sysctl -a 查看所有内核参数
# sysctl -p

脚本文件

2、执行脚本

sh /usr/local/sbin/lvs_dr.sh

主 Director

1、安装服务

yum -y install keepalived.i686 0:1.2.7-3.el6
yum -y install ipvsadm.i686

2、开启路由转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

3、配置Keepalived配置文件

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

vrrp_instance VI_1 {
# 备用服务器上为 BACKUP
state MASTER
# 公网的网卡
interface eth0
# 自定义id数值
virtual_router_id 51
# 权重值、主要高于slave
priority 100
# 检测服务器状态间隔时间
advert_int 1
authentication {
# 密码类型
auth_type PASS
# 密码
auth_pass 1111
}
virtual_ipaddress {
# 虚拟IP地址,可以为多个
192.168.1.100
}
} # 配置VIP
virtual_server 192.168.1.100 80 {
# 每隔6秒查询realserver状态
delay_loop 6
# LVS算法
lb_algo wlc
# Direct Route
lb_kind DR
# 同一个IP的链接0秒内被分配到同一台realserver
persistence_timeout 0
# 用TCP协议检查realserver状态
protocol TCP # 配置realserver
real_server 192.168.1.111 80 {
# 权重
weight 100
TCP_CHECK {
# 10秒无响应超时
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
} # 配置realserver
real_server 192.168.1.115 80 {
# 权重
weight 100
# 检测
TCP_CHECK {
# 10秒无响应超时
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

主配置文件

4、启动服务:先启动主后启动从

/etc/init.d/keepalived start

从 Director

1、安装服务

yum -y install keepalived.i686 0:1.2.7-3.el6
yum -y install ipvsadm.i686

2、开启路由转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

3、配置Keepalived配置文件

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

vrrp_instance VI_1 {
# 主用服务器上为 MASTER
state BACKUP
# 公网的网卡
interface eth0
# 自定义id数值
virtual_router_id 51
# 权重值、主要高于slave
priority 90
# 检测服务器状态间隔时间
advert_int 1
authentication {
# 密码类型
auth_type PASS
# 密码
auth_pass 1111
}
virtual_ipaddress {
# 虚拟IP地址,可以为多个
192.168.1.100
}
} # 配置VIP
virtual_server 192.168.1.100 80 {
# 每隔6秒查询realserver状态
delay_loop 6
# LVS算法
lb_algo wlc
# Direct Route
lb_kind DR
# 同一个IP的链接0秒内被分配到同一台realserver
persistence_timeout 0
# 用TCP协议检查realserver状态
protocol TCP # 配置realserver
real_server 192.168.1.111 80 {
# 权重
weight 100
TCP_CHECK {
# 10秒无响应超时
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
} # 配置realserver
real_server 192.168.1.115 80 {
# 权重
weight 100
# 检测
TCP_CHECK {
# 10秒无响应超时
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

主配置文件

4、启动服务:先启动主后启动从

/etc/init.d/keepalived start

查询状态

命令:ipvsadm -l

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.100:http wlc
-> 192.168.1.111:http Route 100 0 0
-> 192.168.1.115:http Route 100 0 0

主:查看LVS状态

命令:ip addr

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:67:0e:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.160/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/32 scope global eth0
inet6 fe80::20c:29ff:fe67:e20/64 scope link
valid_lft forever preferred_lft forever

主:查看VIP

命令:ipvsadm -l

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.100:http wlc
-> 192.168.1.111:http Route 100 0 0
-> 192.168.1.115:http Route 100 0 0

从:查看LVS状态

命令:ip addr

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9e:70:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.161/24 brd 192.168.1.255 scope global eth0
inet6 fe80::20c:29ff:fe9e:701e/64 scope link
valid_lft forever preferred_lft forever

从:查看VIP

命令:ifconfig

lo:0      Link encap:Local Loopback
inet addr:192.168.1.100 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1

web端:查看VIP

测试

http://192.168.1.100/
LVS 1
http://192.168.1.100/
LVS 2
http://192.168.1.100/
LVS 1
http://192.168.1.100/
LVS 2

测试负载均衡

#---------------------------单点故障-------------------------------#

Dir 主 端:ifdown eth0 关闭网卡

# 查看IP飘逸192.168.1.100
Dir 从端:ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9e:70:1e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.161/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/32 scope global eth0
inet6 fe80::20c:29ff:fe9e:701e/64 scope link
valid_lft forever preferred_lft forever # 查看日志
主端:tail -f /var/log/messages
Dec 24 02:36:18 localhost Keepalived_healthcheckers[1916]: Netlink reflector reports IP 192.168.1.100 added #------------------------------------------------------------------# #---------------------------恢复单点故障-----------------------------# Dir 主 端:ifup eth0 启动网卡 # 查看IP飘逸192.168.1.100
Dir 主 端: ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:67:0e:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.160/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/32 scope global eth0
inet6 fe80::20c:29ff:fe67:e20/64 scope link
valid_lft forever preferred_lft forever # 查看日志
Dir 从 端: tail -f /var/log/messages
Dec 24 02:36:23 localhost Keepalived_vrrp[1917]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.100
Dec 24 02:48:02 localhost Keepalived_vrrp[1917]: VRRP_Instance(VI_1) Received higher prio advert
Dec 24 02:48:02 localhost Keepalived_vrrp[1917]: VRRP_Instance(VI_1) Entering BACKUP STATE
Dec 24 02:48:02 localhost Keepalived_vrrp[1917]: VRRP_Instance(VI_1) removing protocol VIPs.
Dec 24 02:48:02 localhost Keepalived_healthcheckers[1916]: Netlink reflector reports IP 192.168.1.100 removed #------------------------------------------------------------------#

测试 单点故障 IP飘逸

Keepalived + LVS/DR 安装配置的更多相关文章

  1. RHEL6 搭建 keepalived + lvs/DR 集群

    搭建 keepalived + lvs/DR  集群 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: LVS1调度器真实IP地址为192.168.4. ...

  2. Keepalived+LVS(dr)高可用负载均衡集群的实现

    一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...

  3. Keepalived+LVS DR模式高可用架构实践

    Keepalived最初是为LVS设计,专门监控各服务器节点的状态(LVS不带健康检查功能,所以使用keepalived进行健康检查),后来加入了VRRP(虚拟路由热备协议(Virtual Route ...

  4. keepalived+lvs+usp安装实施文档

    操作系统平台:RedHat6.4  x86_64 软件:LVS+keepalived LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux ...

  5. Lvs Dr 模式配置

    1.Dr 安装 ipvsadm # yum -y install ipvsadm # lsmod | grep ip_vs    #检查ipvs模块是否加载进系统.把ipvs模块加载进系统,需要我们执 ...

  6. Keepalived+LVS(DR)+MySQL

    实验环境 主机名 IP VIP 服务 主备 KA_LV_MYSQL_01 192.168.30.130 192.168.30.100 keepalived.LVS.MySQL MASTER KA_LV ...

  7. lvs dr 模型配置详解

    前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0: :2意思是eth0的子接口,随便一个数字就 ...

  8. keepalived+lvs高可用配置

    global_defs { notification_email { test@qq.com } notification_email_from sns-lvs@gmail.com smtp_serv ...

  9. linux LVS DR模式配置

    拓扑图: 测试环境:CentOS 6.5 X86 64位 配置步骤: 1.  安装测试环境 [root@UCS-1 ~]# yum -y install httpd [root@UCS-1 ~]# c ...

随机推荐

  1. Servlet 编写过滤器

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...

  2. 多媒体开发之音频编码---ffmpeg 编码aac

    http://blog.csdn.net/ctroll/article/details/8169396

  3. Hook length formula 学习笔记 UVALive 6625

    最近做到一个关于杨氏矩阵的题目. UVALive 6625 题目大意是用n以内的数填充杨氏矩阵,要求行严格递增,列不严格递增. 求方案数. 数据范围很小,我直接上爆搜,结果TLE了. 后来发现一位学长 ...

  4. Hibernate-缓存/懒加载/抓取策略

    懒加载测试: /*类的延迟加载 * * session.get * 1.方法加载出来的对象是class对象 * 2.在session.get方法执行的时候发出sql语句 * 3.class对象是有值的 ...

  5. 在CentOS中安装输入法

    1.需要root权限,所以要用root登录 ,或su root 2.yum install "@Chinese Support" 3.exit 4.回到桌面,system-> ...

  6. haml入门

    1.什么是Haml Haml是HTML abstraction markup language,遵循的原则是标记应该是美的.Haml能够加速和简化模版,长处是简洁.可读.高效. 2.erbm模板和ha ...

  7. 在其他app里预览文档

    本文转载至 http://www.cocoachina.com/newbie/basic/2013/0515/6212.html iOS中的沙盒可以让平台更加的安全,这也是沙盒给用户带来的最主要好处. ...

  8. hihocoder 1279(状压)

    坑爹的题目.不过不能说不是一道挺好的题目. 坑主要坑在,妹的我一样的复杂度,写的姿势略差了点然后就一直超时. 比赛的时候我还直接就看错题目,把AND运算看成了OR...还敲完交了一发. 这题很容易想到 ...

  9. 【BZOJ2186】[Sdoi2008]沙拉公主的困惑 线性筛素数

    [BZOJ2186][Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M! ...

  10. Fraction

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...