一、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. java并发再次积累

    监视器与锁之间的关系: 1.object monitor 是任何一个对象都有的内置的数据结构,它是用来协调使用当前对象的多个线程之间的执行顺序的(wait/notify),线程会block或者wait ...

  2. Top-Down笔记 #01# 计算机网络概述

    因特网 网络核心 分组交换网中的时延.丢包和吞吐量 协议层次及其服务模型 面对攻击的网络 计算机网络和因特网的历史 小结(自己写的...) [什么是因特网?] 具体构成描述 1.与因特网相连的设备被称 ...

  3. wix toolset 用wixui 默认中文

    light.exe .\test.wixobj -ext WixUIExtension -ext WixUtilExtension -cultures:zh-CN

  4. ubuntu 18.04 64bit下如何安装python开发工具jupyterhub

    注:这是多用户版本 1.安装依赖 sudo apt-get install npm nodes sudo apt-get install python3-distutils wget https:// ...

  5. 使用vs的时候,遇到这个:当前不会命中断点 还没有为该文档加载任何符号

    一 http://stackoverflow.com/questions/2155930/fixing-the-breakpoint-will-not-currently-be-hit-no-symb ...

  6. lucene 简介和实践 分享

    之前项目做了搜索的改造,使用lucene,公司内做了相关的技术分享,故先整理下ppt内容,后面会再把项目中的具体做法进行介绍 lucene 简介和实践  分享 搜索改造项目

  7. maven下载与配置环境变量

    1.打开maven官网下载 http://maven.apache.org/download.cgi 下载 解压(这里博主放在D盘下) 2.配置环境变量 验证是否配置成功 3.本地仓库配置

  8. 01_Storm体系概要

    1. Storm发展历史 Storm历史 1. 2010年12月,backtype公司Nathan,提出Storm的核心概念2. backtype, 提供数据分析,数据处理服务的一个公司3. 2011 ...

  9. Elasticsearch Head 集群健康值:未连接

    安装elasticsearch 6.0  x-pack后,登录9200端口需要用户和密码, 这样,在使用elasticsearch head时,就不能直接访问9100了. 按照官方文档的要求,http ...

  10. 机器学习笔记—混合高斯和 EM 算法

    本文介绍密度估计的 EM(Expectation-Maximization,期望最大). 假设有 {x(1),...,x(m)},因为是无监督学习算法,所以没有 y(i). 我们通过指定联合分布 p( ...