LVS + KEEPAlived 配置 DIR模式
1 .1 Lvs
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)
本文主要介绍DR模式运用
1 .2 DR模式
DR模式是什么?撇开lvs调度算法部分,DR模式的原理就是,将报文直接路由给目标服务器(Direct Routing),其实这里没有routing啥事情,叫做Direct Select更准确一些,为什么这么说呢?因为他直接不修改数据包,他直接把数据包打包成以太网的数据帧,只是这个数据帧里的目标MAC地址是最终的真实服务器的MAC地址,所以DR模式要求在同一个物理网段,不能跨路由。
当目标服务器收到这个数据帧的时候,把它解包,当服务器发现数据包的目标地址(也就是VIP)是在本地的网络设备上(一般都是在真实服务器的lo:0上绑定一个vip地址),服务器处理这个数据包,然后根据本地路由表将响应报文直接返回给客户
2.1 keepalived
这里是用keepalived来进行lvs的建立和服务器和vip的健康检查,其实keepalived就像一个shell,他自动的给你做lvs+vrrp。
keepalived本身来做真实服务器的健康检查,vrrp来做vip的冗余。
VIP:192.168.2.240
LVS:192.168.2.210 192.168.2.211
Realserver: 192.168.2.212 192.168.2.213
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
所需软件:keepalived
Ipvsadm(主要是管理查看作用)
# ln -s /usr/src/kernels/2.6.18-92.el5-i686 /usr/src/linux
# tar -zxvf ipvsadm-1.24.tar.gz
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
先配置 Realserver 脚本:
/opt/lvs_server.sh 192.168.2.212
#!/bin/bash
# description: Config realserver
VIP=192.168.2.240
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo: $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:
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 -p > /dev/null >&
echo "RealServer Start OK"
;;
stop)
/sbin/ifconfig lo: down
/sbin/route del $VIP > /dev/null >&
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
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit
esac
exit
# scp /opt/lvs_server.sh root@192.168.2.213:/opt/
加入到开
vim /etc/rc.d/rc.local /bin/bash /opt/lvs_real start
配置keepalived :
vim /etc/keepalived/keepalived.conf 192.168.2.210
! Configuration File for keepalived
global_defs {
notification_email {
jackchengwc@gmail.com
}
notification_email_from jackchengwc@.com
smtp_server smtp..com
smtp_connect_timeout
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.2.240
}
}
virtual_server 192.168.2.240 {
delay_loop
lb_algo wlc
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.2.212 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.2.213 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
# scp /etc/keepalived/keepalived.conf root@192.168.2.211:/etc/keepalived/
lvs_sync_daemon_inteface eth0 #负载均衡器之间的监控接口,类似于HA HeartBeat的心跳线。但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。在DR模式 中,lvs_sync_daemon_inteface 与服务接口interface 使用同一个网络接口
virtual_router_id 51 #虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识。即同一个vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同时在整个vrrp内是唯一的
mcast_src_ip 192.168.2.240
#mcast_src_ip #多播的源ip,设置为这台lvs的ip 好像不用也行
priority 100 #路由的优先级别,主lvs要设置的比从lvs要高
advert_int 1
authentication {
auth_type PASS #同一vrrp实例MASTER与BACKUP 使用相同的密码才能正常通信
auth_pass 1111
}
virtual_ipaddress {
192.168.11.240 #虚拟ip,也就是vip地址。可以设置很多组vip
}
delay_loop 3 #健康检查的间隔
lb_algo wlc #lvs的调度算法
lb_kind DR #lvs的调度模式
persistence_timeout 50 #连接保持的超时时间,保证一个用户的连接总是导向到同一个服务器,当用户第一次访问的时候,他的访问请求被负载均衡器转给某个真实服务器,这样他看到一个登陆页面,第一次访问完毕;接着他在登陆框填写用户名和密码,然后提交;这时候,问题就可能出现了—登陆不能成功。因为没有会话保持,负载均衡器可能会把第2次的请求转发到其他的服务器
#用ipvsadm -Lcn 观察是否生效
protocol TCP
ha_suspend #禁止,vip失效的时候对真实服务器进行健康检查(也就是说备用服务器不会去做真实服务器的健康检查)
# ipvsadm -L -n 这个命令查看
LVS + KEEPAlived 配置 DIR模式的更多相关文章
- [转载]LVS+Keepalived之三大模式
LVS + Keepalived之三大模式 ============================================================================== ...
- LVS+Keepalived 配置
LVS+Keepalived配置 环境准备 LVS1:192.168.1.1 LVS2:192.168.1.2 MySQL Server1:192.168.1.13 MySQL Server2:192 ...
- 借助LVS+Keepalived通过DR模式实现负载均衡
1.测试环境4台server,全部初始化一下,该关的关了 # vim /etc/hosts 192.168.1.101 lvs-master DIP 192.168.1.102 lvs-slave D ...
- LVS+keepalived 的DR模式的两种做法
LVS DR模式搭建 准备工作 三台机器: dr:192.168.13.15 rs1:192.168.13.16 rs2: 192.168.13.17 vip:192.168.13.100 修改DR上 ...
- LVS+keepalived配置
一.系统环境准备: 1.keepalive主服务器 主机名称:dir 系统环境:CentOS release 6.5 (Final) 外网ip:192.168.1.203(网络模式桥接) vip:19 ...
- LVS+Keepalived 高可用环境部署记录(主主和主从模式)
之前的文章介绍了LVS负载均衡-基础知识梳理, 下面记录下LVS+Keepalived高可用环境部署梳理(主主和主从模式)的操作流程: 一.LVS+Keepalived主从热备的高可用环境部署 1)环 ...
- LVS+Keepalived+Squid+Nginx+MySQL主从高性能集群架构部署方案
方案一,在tomcat的workers.properties里面配置相关条件 worker.tomcat.lbfactor= worker.tomcat.cachesize= worker.tomca ...
- LVS+keepalived快速搭建测试环境
#LVS+keepalived快速搭建测试环境 #LVS+keepalived快速搭建测试环境 #centos6 X64 # LVS 负载均衡模式:DR(直接路由) 192.168.18.31 mas ...
- Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
随机推荐
- phpMailer邮件发送
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CentOS 6.5下samba服务器搭建与配置
转自:http://www.centoscn.com/CentosServer/ftp/2014/1023/3989.html 写在前面: 首先关闭防火墙:service iptables stop, ...
- ZLL主机接口的信息处理流程
主机接口的信息处理流程 在我们翻译的文档中是用电脑端来模拟主机的,电脑代替网关发送主机接口命令的环节是在zll_controller.c中实现的,(在下载的文件中已经提供了其对应的可执行文件zllCm ...
- JQuery.Ajax()的data参数类型
假如现在有这样一个表单,是添加元素用的. <form id='addForm' action='UserAdd.action' type='post'> <label for='un ...
- Quartz.NET配置
概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性.Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行 ...
- LoadRunner检查点学习实例
LoadRunner只会检测脚本中事务的执行状态,而实际的事务执行结果则需要通过检查点来完成. 例如一个登录事务,LR只关心事务本身的执行状态,也就是说哪怕实际操作密码错误产生登录失败的业务操作,其事 ...
- 【架构】MVP模型
MVP模型一般要创建三个文件夹:View.Interactor(Model).Presenter 每个部分都有其接口和实现类,就是为了方便回调 这里做一个登陆界面为例子: 接口: Interactor ...
- mob免费短信验证码安卓SDK调用方法
很不错的一款免费验证码平台,支持IOS.安卓,比那些收费的稳定.开发容易.分享给大家,希望大家不要滥用 官网: http://mob.com/ 官方有开发文档,但是有几点要注意的官方没有提到,导致初始 ...
- 苹果推送(APNs)ios push小结
把app删除后就推送不成功了,可以看出deviceToken应该是设备+app来一起识别的,重新安装后仍然为同一个 简介 推送服务APNs(Apple Push Notification servic ...
- JSON.parse()和JSON.stringify()使用
JSON.parse()用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age&qu ...