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主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
随机推荐
- POJ2406 Power Strings(KMP,后缀数组)
这题可以用后缀数组,KMP方法做 后缀数组做法开始想不出来,看的题解,方法是枚举串长len的约数k,看lcp(suffix(0), suffix(k))的长度是否为n- k ,若为真则len / k即 ...
- 使用 Log4Net 记录日志
第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的 log4net-1.2.11-bin-n ...
- 不通过App Store实现ios应用分发下载安装
最近公司的项目准备着手宣传工作了,宣传手册上要印制App的下载地址二维码,但是客户端应用还未上线,需要一种临时的方案解决应用分发下载问题,通常ios应用必须通过苹果应用商店才能下载安装,但是也可以看到 ...
- Waiting Processed Cancelable ShowDialog (Release 2)
namespace Test { using System; using System.Windows.Forms; static class Program { /// <summary> ...
- javascript 简单加解密
//加密 function MyEncrypt(txt) { var sb = ""; var rand = 0; for (var i=0;i<txt.length;i++ ...
- 2015腾讯web前端笔试题
1 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性) 2 请指出一下代码的性能问题,并经行优化. var info="腾讯拍拍网(www.paipai.com)是 ...
- JavaScript权威指南读书笔记
JavaScript 1.变量 变量是一个表示值的符号,是一个名字,他的本质是值: var x; //----声明一个变量: 值通过等号“=”赋给变量,x = 16; 对象是名/值对的集合,或字符串到 ...
- PyCharm默认快捷键
转自:http://www.2cto.com/os/201410/341542.html 1.编辑(Editing)Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + ...
- 用脚本完成mysql工作
1. 用mysql -e在脚本中执行mysql的sql语句 #!/bin/bash #simple mysql shell usage logtime=`date "+%Y-%m-%d&qu ...
- linux read简单用法
#!/bin/bash #read chars into var read -n var echo $var #read chars without showing it read -s var ec ...