Keepalived + LVS/DR 安装配置
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配置文件
! 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配置文件
! 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 安装配置的更多相关文章
- RHEL6 搭建 keepalived + lvs/DR 集群
搭建 keepalived + lvs/DR 集群 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: LVS1调度器真实IP地址为192.168.4. ...
- Keepalived+LVS(dr)高可用负载均衡集群的实现
一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...
- Keepalived+LVS DR模式高可用架构实践
Keepalived最初是为LVS设计,专门监控各服务器节点的状态(LVS不带健康检查功能,所以使用keepalived进行健康检查),后来加入了VRRP(虚拟路由热备协议(Virtual Route ...
- keepalived+lvs+usp安装实施文档
操作系统平台:RedHat6.4 x86_64 软件:LVS+keepalived LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux ...
- Lvs Dr 模式配置
1.Dr 安装 ipvsadm # yum -y install ipvsadm # lsmod | grep ip_vs #检查ipvs模块是否加载进系统.把ipvs模块加载进系统,需要我们执 ...
- Keepalived+LVS(DR)+MySQL
实验环境 主机名 IP VIP 服务 主备 KA_LV_MYSQL_01 192.168.30.130 192.168.30.100 keepalived.LVS.MySQL MASTER KA_LV ...
- lvs dr 模型配置详解
前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0: :2意思是eth0的子接口,随便一个数字就 ...
- keepalived+lvs高可用配置
global_defs { notification_email { test@qq.com } notification_email_from sns-lvs@gmail.com smtp_serv ...
- linux LVS DR模式配置
拓扑图: 测试环境:CentOS 6.5 X86 64位 配置步骤: 1. 安装测试环境 [root@UCS-1 ~]# yum -y install httpd [root@UCS-1 ~]# c ...
随机推荐
- CodeAreaFX
CodeAreaFX is a text area for JavaFX with API to style ranges of text. It is intended as a base for ...
- tp 大致执行流程
http://www.thinkphp.cn/code/305.html http://document.thinkphp.cn/manual_3_2.html#wechat
- Java 学习笔记之读取jdbc.propertyes配置参数
package test; import java.io.IOException; import java.io.InputStream; import java.util.Properties; p ...
- js instanceof (2)
instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另外一个要检测对象的原型链上.实例一:普遍用法 A instanceof B :检测B.prototype是否存在于参 ...
- javascript拼接html代码
转自开源中国社区:http://www.oschina.net/code/snippet_94055_21640经常做jsp开发的朋友可能遇到一个情况,显示列表数据不是table,而是div或者其他很 ...
- iOS 设置Label中特定的文字大小和颜色
直接上代码: _price = @"27"; NSMutableAttributedString *attributedString = [[NSMutableAttributed ...
- 拍照权限,GPS权限的控制
最近项目中会遇到一些手机用户权限的问题,从网上百度了一下,发现有一些方法不能解决判断用户权限的是否开关,下面我就介绍两种权限的判断 1 拍照的权限控制 public static boolean is ...
- 解决ios8 webView加载的地图无法定位问题
本文转载至http://www.cocoachina.com/bbs/read.php?tid-237825.html 1.在文件info.pilist 中导入 NSLocationWhenI ...
- drawableRightset 和 CompoundDrawables
android:drawableRight="@drawable/check_down" 在代码中的用法是: Drawable drawable = getResources(). ...
- tomcat访问日志分析
常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...