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 ...
随机推荐
- Vue实现远程获取路由与页面刷新导致404错误的解决
一.背景 先简单介绍一下现在项目情况:前后端分离,后端服务是Java写的,前端是Vue+ElementUI. 最近的一个需求是:通过后端Api去获取前端路由表,原因是每个登录角色对应的前端路由表可能是 ...
- python_selenium之xpath的使用
python_selenium之xpath的使用 一.xpath介绍 Xpath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于X ...
- 各种流程图的绘画网路工具 processon
https://www.processon.com 对应的网址,类似在线viso 很方便使用,工具齐全,推荐使用!
- PHP中foreach详细解读
oreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息.有两种语法: foreach (array_ ...
- hdu1174(3维射线与圆是否相交)
简单的题意,要注意z2 = h2*0.9-r2 #include <iostream> #include <cmath> #include <vector> #in ...
- 记录--java获取网络资源(图片、音频等)保存本地
注:本人开始运行下面报 java.io.FileNotFoundException ,纠结很久后清理tomcat后运行成功 //获取wav文件地址 String vRecordUrl=(request ...
- Redis持久化之rdb&aof
Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件) RDB持久化方式是在一个特定的间隔保存某个时间点的一个数据快照. AOF(Append only file)持久化方式则会记 ...
- 巨蟒python全栈开发linux之centos6 第二篇
1. .nginx负载均衡的实现 .准备三台机器,准备3台虚拟机,或者和俩同桌交流一下 192.168.226.128 是nginx资源服务器,返回页面的 192.168.226.129 用作ngin ...
- 你意识到苹果公司已经抛弃了GC吗?
为什么移动Web应用程序很慢(译) - tangzhnju - 博客园 http://www.cnblogs.com/codemood/p/3213459.html
- javascript基础(整理自廖雪峰)
不要使用==比较,始终坚持使用===比较false == 0; //返回true. 这种情况, 它会自动转换数据类型再比较false === 0; //返回false. 建议用这种方式 NaN === ...