DR模式下的高可用的LVS(LVS+keepalived)
一、keepalived
在DR模式下,使用Keepalived实现LVS的高可用。Keepalived的作用是检测服务器的状态,如果有一台web服务器 宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后 Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。keepalived也可以实现数据的缓存和负载均衡。keepalived实现的基础为VRRP协议,下面我们对VRRP协议做相关的了解。
二、VRRP(Virtual Router Redundancy Protocal)虚拟路由冗余协议
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器 使用失败的情形下仍能够维护路由器间的连通性。Keepalived就是利用vrrp协议来实现高可用(HA)的。
【1】用于实现路由器冗余的协议
【2】解决静态网关出现单点失效问题
【3】通过竞选协议,来实现虚拟路由器的功能
三、Keepalived + LVS(DR)负载均衡的配置(keepalived不可以和ldirectord同时使用)
1)安装虚拟服务器2.0.6版本的keepalived包,并解压。(可在官网里面下载)
---> tar zxf keepalived- 2.0.6.tar.gz
---> cd keepalived-2.0.6
---> yum install openssl-devel.x86_64 # 安装keepalived的依赖包:openssl-devel
2)编译keepalived的源码包
---> yum install gcc -y # 由于源码包是c写的,所有需要gcc编译器
---> make && make install
3)制作keepalived的软链接,方便管理与配置,并给它执行权限
---> ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
---> yum install mailx -y
4)在server1中配置keepalived的配置文件
---> vim /etc/keepalived/keepalived.conf
# 全局配置
global_defs {
notification_email {
root@localhost # 健康检查报告通知邮箱
}
notification_email_from keepalived@localhost # 发送邮件的地址
smtp_server 127.0.0.1 # 邮件服务器
smtp_connect_timeout 30
router_id LVS_DEVEL # 运行机器的标示
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
# vrrpd的配置
vrrp_instance VI_1 {
state MASTER # 指定instance的初始化状态,在两台都启动后,会发生竞选
interface eth0 # 绑定虚拟ip的指定节点
virtual_router_id 1 # 设置验证信息,两节点需要一致
priority 100 # 优先级,主节点比从节点高。范围(1-254)
advert_int 1 # 组播信息发送间隔,两节点要一致
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.2.100 # 设定虚拟ip(启动服务后,ip会自动添加在eth0中)
}
}
virtual_server 172.25.2.100 80 {
delay_loop 1 # 当RS服务器出问题后的反映时间
lb_algo rr # 指定LVS的算法
lb_kind DR # 指定LVS的模式
#persistence_timeout 50 # 保持会话时间(持续连接一台RS服务器的时间)
protocol TCP # 转发协议
# RS的健康检查机制
real_server 172.25.2.2 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.2.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
#ftp服务的负载均衡
virtual_server 172.25.2.100 21 {
delay_loop 1
lb_algo rr
lb_kind DR
persistence_timeout 50 # ftp服务需要保持连接时间,防止传输的数据流中端
protocol TCP
real_server 172.25.2.2 21 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.2.3 21 {
weight 1
TCP_CHECK {
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
5)在后端server2中添加vsftpd服务,并在默认发布目录下添加目录(server3中也是同样的操作,不过目录为server3)
---> mkdir /var/ftp/server2
---> /etc/init.d/vsftpd start
6)在server1中进行keepalived服务的启动
---> /etc/init.d/ipvsadm stop # 关闭之后,可以用ipvasdm -L查看策略,空表示关闭了
---> /etc/init.d/ldirectord stop
---> /ect/init.d/keepalived start
7)在测试机中进行http和ftp的测试:(在lftp时,当后端一个服务器出现问题时,会自动切换到另一个服务器上。)
四、keepalived+lvs(DR)实现高可用
8)在server4中进行链接设置(keepalived是从server1中复制过来的)
---> ln -s /usr/local/keepalived/etc/keepalived/ /etc/
---> yum install mailx -y # 安装mail,方便对主配服务进行查看
---> /etc/init.d/keepalived start
9)修改server4中的/etc/keepalived/keepalived.conf。只由该状态为BACKUP和优先级为50即可
9)查看server1和server4中的日志信息
# server4中信息如下 (cat /var/log/messages)
# server1中信息如下:
10)当server1坏掉的时候,此时,server4为主状态,server1为从状态。测试机获取的MAC为server4的
---> /etc/init.d/keepalived stop # 在server1中关闭keepalived服务。server4的状态为主状态
注释:当keepalived的主设备又可以工作时,由于优先级问题,server1会把主权拿过来,server4又变为后备状态。
DR模式下的高可用的LVS(LVS+keepalived)的更多相关文章
- LVS+Keepalived-DR模式负载均衡高可用集群
LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...
- Linux下实现高可用软件-Keepalived基础知识梳理
Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepali ...
- MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移
系统信息: mysql主库 mysql从库 VIP 192.168.1.150 mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ...
- Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- 2F+1模式才是高可用 途牛旅游网 还是通过proxy层
2F+1模式才是高可用 途牛旅游网 还是通过proxy层 f f f f f f f f f
- centos下搭建高可用redis
Linux下搭建高可用Redis缓存 Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器.楼主是一枚JAVA后端程序员,也算是半个运维工程师了.在Li ...
- 高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)
LVS(负载均衡器).Heartbeat.Corosync.Pacemaker.Web高可用集群.MySQL高可用集群.DRDB.iscsi.gfs2.cLVM等,唯一没有讲解的就是L ...
- 高可用Mysql架构_Haproxy+keepalived+mycat集群的配置
接上一篇文章http://www.cnblogs.com/wt645631686/p/8310891.html,虽然已经在原有两台mycat基础上增加了Haproxy作为mycat的中间服务器,不足的 ...
随机推荐
- [原创] css中的绝对定位和相对定位
我对博客的认识是:记录问题,解决问题,分享知识.如果有轮子,我不需要造轮子. 首先,定位无论是相对定位还是绝对定位,必须有一个参考项,而这个参考项,专业术语称之为 包含块,这里的包含块是指在定位时 ...
- RocEDU.阅读.写作《霍乱时期的爱情》书摘(三)
暮年的岁月不是奔涌向前的激流,而是一个无底的地下水池,记忆从这里慢慢流走. 那是对人生,爱情,老年和死亡的思考:这些想法曾无数次像夜间的鸟儿一般扑扇着翅膀掠过她的头顶,可每当她想抓住它们时,它们就惊飞 ...
- 20145331实验五 Java网络编程及安全
20145331魏澍琛 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码 ...
- GSM900TCP/UDP连接
TCP发送:AT+CIPSTART="TCP","122.0.114.244",1001返回:OK CONNECT OK 发送: AT+CIPSEND > ...
- JavaScript 数据类型小结
数据类型对于机器而言,其意义在于更加合理的分配内存空间,而对于编程者而言,数据类型提供了我们相对应的一系列方法,对数据进行分析与处理. 在本文中,将对JavaScript数据类型的基础知识进行总结,全 ...
- Labview 查看一次while循环运行的时间
在while循环中增加一个移位寄存器,移位寄存器的初始值使用时间计数器,在while循环里面增加一个减法Vi,再增加一个时间计数器,两者做差,最后显示差值. 在这里只能显示大概运行时间.如下图.
- POJ_1159 Palindrome (线性动态规划+滚动数组)
题意是说,给定一个字符串,问至少还需要插入多少个字符才能使得该字符串成为回文字符串. 这道题一开始做的时候用了一个简单的动态规划,开了一个5000*5000的数组,用递归形式实现,代码如下: 其中d[ ...
- 【转】GitHub汉化脚本(谷歌浏览器)
// ==UserScript== // @name GitHub 汉化插件 // @description 汉化 GitHub 界面的部分菜单及内容. // @copyright 2016, 楼教主 ...
- webservice使用注解修改WSDL内容
首先看我们没有修改前的WSDL内容 此时服务端的类 修改后的 注解如下 package com.xiaostudy; import javax.jws.WebMethod; import javax. ...
- swagger2 坑 记录
swagger2 只认 @RequestMapping 注解! 不认@RestController 注解 @RestController @RequestMapping(value = "/ ...