一、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. WebSocket使用SuperWebSocket结合WindowsService实现实时消息

    SuperWebSocket在WebService中的应用 最开始使用是寄托在IIS中,发布之后测试时半个小时就会断开,所以改为WindowsService 1. 新建Windows服务项目[Test ...

  2. DNS ARP地址解析原理

    ARP是地址解析协议 主机A与主机B之间如果要进行数据间的传输,需要获取对方的IP与物理地址(MAC),在只清楚ip的情况下,主机A向主机B请求链接,会先查找ARP高速缓存表,是否存在对应的主机B的i ...

  3. java内存解析

    ass BirthDate{ private int day; private int month; private int year; public BirthDate(int d;int m,in ...

  4. 生产者消费者JAVA实现

    三种实现方式: 1. Object对象的wait(),notify(),加synchronize. 2. Lock的await(),signal(). 3. BlockingQueue阻塞队列. Ob ...

  5. [HAOI2017模拟]百步穿杨

    今天的考试题. 考试的时候因为以前做过还写过题解,然后就以为模型已经很清楚了,然后就开始直接推.最后因为蜜汁自信一定能推出来,然后模型搞错了,只能交个暴力上去,于是这场考试GG. 第一次碰上这道题是在 ...

  6. # fabirc 配置多组服务器 密码与密钥一起使用 key_filename的设置

    环境说明 myv myv2 是配置在/etc/hosts 的两台 虚拟机 虚拟机ip. 参考英文文档 官方文档的例子不是给的很详细.. http://docs.fabfile.org/en/1.13/ ...

  7. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  8. 【bzoj5177】[Jsoi2013]贪心的导游(分块)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5177 在网上看到的题解基本都是用主席树,也就是带点骚操作的暴力直接艹过去的.这里分享一 ...

  9. php入门(三)

    PHP 面向对象: 在php5中 var就是public的别名. 变量 $this 代表自身的对象. PHP_EOL;为换行符 构造函数+析构函数 <?php class Site { /* 成 ...

  10. Thread的中断机制(interrupt),循环线程停止的方法

    一.中断原理 中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡.还是等待新的任务或是继续运行至下一步,就取决于这个 ...