一、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/

   ---> ln -s /usr/local/keepalived/sbin/keepalived  /sbin/
   ---> ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
   ---> ln -s /usr/local/keepalived/etc/keepalived/ /etc/
   ---> chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
   ---> scp  -r /usr/local/keepalived/  server4:/usr/local/     # 复制keepalived到server4中

   ---> yum  install  mailx -y

   4)在server1中配置keepalived的配置文件

   ---> vim  /etc/keepalived/keepalived.conf

 ! Configuration File for keepalived       # !和#表示注释
 # 全局配置
 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中)
     }
 }

 #Apache服务的负载均衡
 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)实现高可用

   keepalived可以实现负载均衡,但是只有一台keepalived主机时,如果它宕掉了,则数据不能转发,更不可能有负载均衡了,所以需要配置另一台keepalived实现高可用。即主备keepalived,一台主机上的keepalived怀掉了,可以由备份keepalived接管负载均衡调度该实验,我们在三的基础上进行。

   8)在server4中进行链接设置(keepalived是从server1中复制过来的)

   ---> ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
   ---> ln -s /usr/local/keepalived/sbin/keepalived  /sbin/
   ---> ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/

   ---> 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)的更多相关文章

  1. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  2. Linux下实现高可用软件-Keepalived基础知识梳理

    Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepali ...

  3. MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

    系统信息: mysql主库 mysql从库 VIP 192.168.1.150 mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ...

  4. Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  5. Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  6. 2F+1模式才是高可用 途牛旅游网 还是通过proxy层

    2F+1模式才是高可用 途牛旅游网 还是通过proxy层 f f f f f f f f f

  7. centos下搭建高可用redis

    Linux下搭建高可用Redis缓存 Redis是一个高性能的key-value数据库,现时越来越多企业与应用使用Redis作为缓存服务器.楼主是一枚JAVA后端程序员,也算是半个运维工程师了.在Li ...

  8. 高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)

            LVS(负载均衡器).Heartbeat.Corosync.Pacemaker.Web高可用集群.MySQL高可用集群.DRDB.iscsi.gfs2.cLVM等,唯一没有讲解的就是L ...

  9. 高可用Mysql架构_Haproxy+keepalived+mycat集群的配置

    接上一篇文章http://www.cnblogs.com/wt645631686/p/8310891.html,虽然已经在原有两台mycat基础上增加了Haproxy作为mycat的中间服务器,不足的 ...

随机推荐

  1. JS知识点简单总结

    JS(JavaScript) 是一种解释性语言 是弱/动态 最开始用于表单验证的 JS的五个部分: 1.核心语言定义 2.原生对象和内置对象 5boolean 3.BOM 4.DOM 5.事件处理模型 ...

  2. 此博客可能不再更新,往后博文将发布在 GitHub 中

    在 GitHub 上, 可以建立不同的仓库,显示分类可以更明确: 有不同分支,可以打很多次草稿: 用 markdown 语法来书写比较舒服(博客园也可以设置): 最主要的是 GitHub 装逼呀!!! ...

  3. GIT使用—提交的查找与变更

    一.查找提交 (1)git bisect(二分搜索法) 基于任意搜索条件查找特定的错误提交.在排查某个提交版本导致的错误时非常有用. [root@localhost public_html]# git ...

  4. MySQL的索引是什么?怎么优化?

    索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的.My ...

  5. xtrabackup备份脚本

    背景:现网环境全备份脚本:基于xtrabackup命令 #!/bin/sh # MySQL端口 PORT=' # 备份用户 USER='bkpuser' PAWD='bkpuser' Time=`da ...

  6. spring定时器(注解的形式)

    最近有个需求,要在凌晨的时候,根据某几张表生成一张定时任务表里的数据,数据的状态为0(未整改),然后在当天晚上,再把这些数据的状态没改变的,改变状态为1(待整改),然后要用到定时器,百度了一下用注解形 ...

  7. [BZOJ2688]折线统计

    Description 二维平面上有n个点(xi, yi),现在这些点中取若干点构成一个集合S,对它们按照x坐标排序,顺次连接,将会构成一些连续上升.下降的折线,设其数量为f(S).如下图中,1-&g ...

  8. Vue.js项目部署在Tomcat服务器上

    1.在本地的Vue框架中 执行npm run build  将我们的项目打包到dist 文件夹中 2.在服务器上的Tomcat的 webapps文件夹下,新建一个文件夹如:frontvue 3.启动t ...

  9. Spark(一)介绍

    随着对spark的业务更深入,对spark的了解也越多,然而目前还处于知道的越多,不知道的更多阶段,当然这也是成长最快的阶段.这篇文章用作总结最近收集及理解的spark相关概念及其关系. 名词 dri ...

  10. java如何实现Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...