一、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. 使用C++11实现一个半同步半异步线程池

    前言 C++11之前我们使用线程需要系统提供API.posix线程库或者使用boost提供的线程库,C++11后就加入了跨平台的线程类std::thread,线程同步相关类std::mutex.std ...

  2. centos6.7安装lamp

    1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport ...

  3. CentOS修改时区、日期、时间

    一.时区 显示时区 date --help 获取帮助 date -R date +%z 修改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ...

  4. cogs 1487. 麻球繁衍

    ★   输入文件:tribbles.in   输出文件:tribbles.out   评测插件 时间限制:3 s   内存限制:256 MB [题目描述] 万有引力定律: “使物体相互靠近的力的大小与 ...

  5. 复习指南(Pascal版)

    [第一层级 条件反射] 1.个十百千各数位的求法 q:=a div 1000 mod 10; b:=a div 100 mod 10; s:=a div 10 mod 10; g:=a mod 10; ...

  6. 好的Mysql 查询语句

    select swr.id,swr.name,swr.sort as type,count(swl.id) as nums,ifnull(sum(swl.package_num),0) package ...

  7. location的部分属性

    http://www.w3school.com.cn/jsref/dom_obj_location.asp location.host 可以设置或返回主机名和当前url的端口    www.w3sch ...

  8. Nginx与PHP(FastCGI)的安装、配置

    摘自:http://www.linuxde.net/2012/03/9130.html 一.什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接 ...

  9. jmeter-time函数

    别人写的一个详解置顶 http://www.cnblogs.com/MasterMonkInTemple/p/3442770.html 新建beanshell,time函数格式${_time(YYYY ...

  10. 全文检索引擎Solr系列——整合中文分词组件mmseg4j

    默认Solr提供的分词组件对中文的支持是不友好的,比如:“VIM比作是编辑器之神”这个句子在索引的的时候,选择FieldType为”text_general”作为分词依据时,分词效果是: 它把每一个词 ...