zoukankan      html  css  js  c++  java
  • linux下keepalived 安装配置

    keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,
    keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

    下面讲解如何在linux安装keepalived并搭建高可用的web服务器。

    首先是keepalived 的安装。keepalived是需要即时编译的,这里使用的是keepalived-1.2.2.tar.gz,这里假设把压缩文件上传到了/usr下。
    首先登录到root用户下,并定位到/usr下。

    #编译安装keepalived
    unzip keepalived-1.2.2.tar.gz #或者使用“tar zxvf keepalived-1.2.2.tar.gz”命令来解压
    cd keepalived-1.2.2
    ./configure --prefix=/usr/local/keepalived
    make && make install #编译keepalived源码

    #设定keepalived的配置文件并将keepalived注册为服务然后设定为开机启动(开机启动前面有讲)
    mkdir /etc/keepalived
    cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
    cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    chkconfig --level 2345 keepalived on #注册开机启动

    说明一下,这里keepalived的本身安装在了/usr/local下,keepalived的配置文件keepalived.conf放在了/etc/keepalived下。

    至此keepalived已经安装完成并添加到了开机启动下,先不要着急启动keepalived,我们还要配置一下它的配置文件。

    先说一下我们要达到的要求:
    1.当其中一台机器或者keepalived挂掉之后,虚拟ip自动飘移到另外一台机器上,从而实现高可用。当作为主的机器恢复后,虚拟ip会自动漂移回来。
    2.当keepalived切换时,需要执行指定的脚本,在脚本中我们可以执行一些其他操作(例如启动或停止数据库)。

    这里首先介绍一下虚拟ip(VIP)。
    VIP是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是进过真实的网络接口。
    它IP技术的一种,增强网络管理,发挥出VLAN的优势,改变了网络结构,合理分配网络资源,均衡网络负载,有效降低网上广播信息,方便对用户的分组管理。
    用白话说VIP就是一个IP地址,但并不是分配给特定网卡的。这样的话,多个网卡之间可以轮流与这个VIP进行绑定,从而在不需要改变web服务地址的情况下,实现程序的高可用。

    VIP简单介绍完了,下面讲解如何配置keepalived的,从而实现高可用。
    这里我用一句话来概括keepalived实现高可用的原理:两台机器之间(也可以多台)之间轮流提供VIP,从而让web服务不间断。
    当一台服务器挂掉之后,VIP进行漂移,而这个过程是自动由keepalived帮我们完成的,我们要做的就是维护出问题的web服务器。

    这里假设有两台机器A和B,他们的ip地址分别为192.168.1.8和192.168.1.9,而VIP我们设定为192.168.1.10。
    先来配置机器A,我的目的是尽可能直白简单的介绍配置,从而让大家更容易理解。。。。
    先vi /etc/keepalived/keepalived.conf这个文件

    ! Configuration File for keepalived
    global_defs {
    router_id LVS_DEVEL
    }
    vrrp_instance VI_1 { #一个keepalived实例
    state MASTER #表明这是主机
    interface eth0 #绑定的网卡
    virtual_router_id 51 #两台机器要一致,表明他们是同一组
    mcast_src_ip 192.168.1.8 #发送多播包的地址,就是本机的ip地址(如果本机有多个ip地址的话,这个很有用)
    priority 200 #本机的竞争优先级,一般主的比从的高
    advert_int 1
    authentication {
    auth_type PASS #认证类型
    auth_pass 1111 #认证密码
    }
    virtual_ipaddress {
    192.168.1.10 #提供的虚拟ip地址
    }

    notify_master "/1.sh" #在keepalived切换到本机时会执行此脚本
    notify_backup "/2.sh" #在keepalived从本机切换走时会执行此脚本
    notify_fault "/2.sh" #在keepalived停止时会执行此脚本
    #注意下notify_backup和notify_fault的区别,比如从机,当VIP从从机切换到主机时,从机上的notify_backup脚本会执行;当从机的keepalived服务停止时(不仅仅是VIP漂移走了,而是keepalived的进程停止了),notify_fault的脚本会执行。

    }

    机器B
    ! Configuration File for keepalived
    global_defs {
    router_id LVS_DEVEL
    }
    vrrp_instance VI_1 {
    state BACKUP #表明是从机
    interface eth0
    virtual_router_id 51
    mcast_src_ip 192.168.1.9
    priority 100
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1111
    }
    virtual_ipaddress {
    192.168.1.10
    }
    }

    ok,配置完成。在两台机器的root用户下分别执行:
    service keepalived start

    然后ping一下VIP:
    ping 192.168.1.10
    发现有返回。
    然后我们关掉A机器或者停止A机器的keepalived(service keepalived stop),然后ping一下VIP,发现有返回,这是VIP已经票已到B机器了。

    最后我们恢复A机器上的keepalived服务,然后ping一下VIP,也有返回,其实这时VIP已经漂移到机器A了。

    大家可以在两台机器上安装一个web服务器或者直接使用linux的apache服务器,然后在浏览器里测试一下。
    至于两个启动/停止脚本,大家有兴趣的可以自己测试下。

  • 相关阅读:
    恢复IE下载对话框[转]
    意外删除Oracle数据文件(dbf),恢复oralce库的解决办法Oracle错误代码:ORA01033
    [转].net的一些问题
    解决了一个ASP.NET无法接受中文参数值的情况
    修改IIS6的默认设置,扩充上传文件的大小
    在ASP.NET中Request取不到正确的中文参数问题解决办法[base64编码/解码]
    使用微软的TreeView控件有的客户端有脚本错误的问题
    [转]几种调用WebService的方法
    电脑操作精典密芨60式 【转】
    初始化时间下列框的脚本
  • 原文地址:https://www.cnblogs.com/clicli/p/5830489.html
Copyright © 2011-2022 走看看