• Keepalived 双机热备


    Keepalived 双机热备

     
    大纲
            1 KeepaLived概述
                    1.1 Keepalived的热备方式
                    1.2 Keepalived的安装与服务控制
                    1.3 使用Keepalived实现双机热备
            2 LVS+Keepalived高可用群集
                    2.1 配置主调度器
                    2.2 配置从调度器
                    2.3 配置Web节点服务器
                    2.4 测试LVS+keepalived高可用群集
     
    1 KeepaLived概述
    Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(HeathChecking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。
     
    Keepalived概述及安装
    Keepalived的官方网站位于http://www.keepaltved.org/
     
    1.1 Keepalived的热备方式
    Keepalived采用VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过共用的虚拟ip地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务:

    热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用Keepalived时,漂移地址的实现不需要手动建立虚接口配置文件(如eth0:0)而是由Keepalived根据配置文件自动管理。
     
    1.2 Keepalived的安装与服务控制
    1)安装支持软件
    在编译安装Keepallved之前,必须先安装内核开发包kernel-devel,以及openss1一devel、popt-devel等支持库。除此之外,在LVS群集环境中应用时,也需要用到rpvsadm管理工具。
    [root@Keep1 ~]# yum -y install kernel-devel openssl-devel popt-devel
    ......//省略部分信息
    已安装:
      kernel-devel.x86_64 0:2.6.32-504.12.2.el6        openssl-devel.x86_64 0:1.0.1e-30.el6.8      
      popt-devel.x86_64 0:1.13-7.el6                 
    作为依赖被安装:
      keyutils-libs-devel.x86_64 0:1.4-5.el6          krb5-devel.x86_64 0:1.10.3-37.el6_6           
      libcom_err-devel.x86_64 0:1.41.12-21.el6        libselinux-devel.x86_64 0:2.0.94-5.8.el6      
      libsepol-devel.x86_64 0:2.0.41-4.el6            zlib-devel.x86_64 0:1.2.3-29.el6    
    [root@Keep1 ~]# yum -y install keepalived    <==yum安装
    [root@Keep1 ~]# rpm -ivh / misc/cd/Paclcages/ipvsadm-1.25-9.e16.i686.rpm    <==rpm包安装
     
    2)编译安装Keepaived
    使用指定的Linux内核位置对Keepalived进行配置,并将安装路径指定为根目录,这样就无需额外创建链接文件了。配置完成后,依次执行make、makeinstall进行安装。
    [root@Keep1 ~]# tar zxf keepalived-1.2.2.tar.gz
    [root@Keep1 ~]# cd keepalived-1.2.2
    [root@Keep1 keepalived-1. 2. 2]# ./configure --prefix=/ --with-kernel-dir=/usr/stc/kernels/2.6.32-131.0.15.el6.i686
    [root@Keep1 keepalived-1. 2. 2]# make
    [root@Keep1 keepalived-1. 2. 2]# make install
     
    3)使用Keepalived服务
    执行make instal操作以后会自动生成/etc/lnit.d/keepalived脚本文件,但还需要手动添加为系统服务,这样就可以使用service,chkconfig工具来对Keepalived服务程序进行管理了。
    [root@Keepalived ~]# ls -1 /etc/init.d/keepalived
    -rwxr-xr-x 1 root root 1288 11月 8 16:23  /etc/init.d/keepalived
    [root@Keep1 ~]# chkconfig --add keepalived
    [root@Keep1 ~]# chkconfig keepalived on
     
    1.3 使用Keepalived实现双机热备
    基于VRRP协议的热备方式,Keepalived可以用作服务器的故障切换,每个热备组可以有多台服务器——当然,最常用的就是双机热备了。在这种双机热备方案中故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是Web、FTP、Mail还是SSH、DNS......)。
    网络拓扑:
     
    主备服务器都需要安装Keepalived,使用rpm或yum方式安装httpd、vsftpd提供Web、FTP服务。
    1)主服务器配置
    Keepalived服务的配置目录位于/etc/Keepalived/。其中Keepalived.conf是主配置文件;另外包括一个子目录samples/,提供了许多配置样例参考。在Keepalived的配置文件中,使用“global_defs {...}"区段指定全局参数,使用“vrrp_instance 实例名称 {...}"区段指定VRRR热备参数,注释文字以“!”符号开头。
    [root@Keep1 ~]# cd /etc/keepalived/
    [root@Keep1 keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@Keep1 keepalived]# vim keepalived.conf
    global_defs {
        router_id HA_TEST_R1  //本路由器(服务器)的名称
    }
    vrrp_instance VI_1 {         //指定VRRP热备实例
        state MASTER             //热备状态,MASTER表示主服务器
        interface eth0           //承载VIP地址的物理接口
        virtual_router_id 1      //虚拟路由器的ID号,每个热备组保持一致
        priority 100             //优先级,数值越大优先级越高 
        advert_int 1             //通告间隔秒数(心跳频率)
        authentication {         //认证信息,每个热备组保持一致
            auth_type PASS       //认证类型
            auth_pass 1111       //密码字串
        }
        virtual_ipaddress {
            172.16.1.130         //指定漂移地址(VIP),可以有多个
        }
    }
    确认配置无误,然后启动keepalived服务。实际状态为MASTER的主服务器将为eth0接口自动添加VIP地址,通过ip命令可以查看(注:ifconfig看不到)
    [root@Keep1 keepalived]# service keepalived start
    [root@Keep1 keepalived]# ip addr show dev eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0
        inet 172.16.1.130/32 scope global eth0     <==自动设置的VIP地址
        inet6 fe80::20c:29ff:fe88:9b6a/64 scope link
           valid_lft forever preferred_lft forever
     
    2) 备用服务器的配置 
    在同一个Keepalived热备组内,所有服务器的Keepalived配置文件基本相同,包括路由器名称,虚拟路由器的ID号,认证信息,漂移地址,心跳频率等。不同之处主要在于路由器名称热备状态,优先级。
    ➣  路由器名称(router_id):建议为每个参与热备的服务器指定不同的名称。
    ➣  热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为备用服务器。
    ➣  优先级(priority):数值越大则取得VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,
         以免在争夺VIP控制权时发生冲突。
     配置备用服务器(可以有多台)时可以参考主服务器的keepalived.conf配置文件内容,只要修改路由器名称,热备状态,优先级就可以了。
    [root@Keep2 ~]# cd /etc/keepalived/
    [root@Keep2 keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@Keep2 keepalived]# vim keepalived.conf
    global_defs {
        router_id HA_TEST_R2      //本路由器(服务器)的名称
    }
    vrrp_instance VI_1 {         
        state BACKUP              //热备状态,BACKUP/SLAVE都表示备用服务器
        interface eth0            //承载VIP地址的物理接口
        virtual_router_id 1       //虚拟路由器的ID号,每个热备组保持一致
        priority 99               //优先级,数值越大优先级越高
        advert_int 1              //通告间隔秒数(心跳频率)
        authentication {          //认证信息,每个热备组保持一致
            auth_type PASS        //认证类型
            auth_pass 1111        //密码字串
        }
        virtual_ipaddress {
            172.16.1.130          //指定漂移地址(VIP),可以有多个
        }
    }
    确认配置无误,一样需要启动Keepalived服务。此时主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备用状态,因此在备用服务器中将不会为eth0添加接口VIP地址。
    [root@Keep2 keepalived]# service keepalived start
    [root@Keep2 keepalived]# ip addr show dev eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0
        inet6 fe80::20c:29ff:fe88:9b6a/64 scope link
           valid_lft forever preferred_lft forever
     
    3) 测试双机热备功能
    Keepalived的日志消息保存在/var/log/messages文件中,在测试主备故隆自动切换功能时,可以跟踪此日志文件来观察热备状态的变化。以针对连通性、FTP和Web服务的测试为例,主要操作如下所述:
     
    一. 连通性测试
    在客户机中执行"ping -t 172.16.1.130",能够正常持续ping通,根据以下操作继续观察测试结果。
     
    (1)禁用主服务器的eth0网卡发现ping测试只中断了1-2个包即恢复正常说明已有其他服务器接替VIP地址,并及时响应客户机请求。
     
    (2)重新启用主服务器的eth0网卡,发现ping测试再次中断1-2个包即恢复正常,说明主服务器已恢复正常,并夺回VIP地址的控制权。
     
    二. FTP和Web访问测试
    在客户机中访问ftp://172.16.1.130、http://172.16.1.130,将看到由主服务器172.16.1.128提供的FTP目录,网页文档。
     
    (1)禁用主服务器的eth0网卡,再次访问上述FTP,Web服务将看到由备用服务器172.16.16.129提供的FTP目录,网页文档,说明VIP地址已切换至备用服务器。
     
    (2)重新启用主服务器的eth0网卡,再次访问上述FTP,Web服务将看到重新由主服务器172.16.1.128提供的FTP目录,网页文档,说明主服务器已重新夺回控制权
     
    三. 查看日志记录
    在执行主、备故障切换的过程中,分别观察各自的/var/log/messages日志文件可以看到MASTER,SLAVE状态的迁移记录。
     
    (1)主服务器中,状态先变为失效、放弃控制权,恢复后重新变为MASTER。
    [root@LVS keepalived]# less /var/log/messages
     
    (2)备用服务器中,状态先切换为MASTER,待主服务器回复后再交回控制权。
     
    通过上述测试过程,可以发现双机热备已经正常。客户机只要通过VIP地址就可以访问服务器所提供的FTP、Web等应用,其中任何一台服务器失效,另一台服务器将会立即接替服务,从而实现高可用性。实际应用中,注意主、备服务器所提供的FTP、WEB服务内容要保持相同。
     
     
    2 LVS+Keepalived高可用群集
    Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用来做双机热备。使用
    Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查自动移除失效节点,恢复后再重新加入。
     
    在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器,下面将以DR模式的LVS群集为基础增加一台从负载调度器使用Keepalived来实现主从调度器的热备从而构建兼有负载均衡,高可用两种能力的LVS网站群集平台。
    网络拓扑:
    使用Keepalived构建LVS群集时也需要用到ipvsadm管理工具,但大部分工作会由Keepalived自动完成,不需要手动执行ipvsadm(除了查看和监控群集以外)。下面主要是Keepalved的服务器池设置关于NFS共享服务的配置。关于NFS共享服务器设置、Keepalived的热备配置等请参考有关笔记。
     
    2.1 配置主调度器
    【LVS负载均衡配置部分】
    [root@LVS+K1~]# modprobe ip_vs         <==加载ip_Vs模块
    [root@LVS+K1 ~]# yum -y install ipvsadm      <==安装ipvsadm工具包
    [root@LVS+K1 ~]# ipvsadm -A -t 172.16.1.130:80 -s rr      <==配置负载分配策略
    [root@LVS+K1 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.131:80 -g -w 1
    [root@LVS+K1 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.132:80 -g -w 1
    [root@LVS+K1 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm    <==保存负载分配策略
    [root@LVS+K1 ~]# cat /etc/sysconfig/ipvsadm      <==确认保存结果
    [root@LVS+K1 ~]# chkconfig ipvsadm on    <==加入开机自启动
    #调整/proc响应参数(避免ARP包错误)
    [root@LVS+K1 ~]# vim /etc/sysctl.conf
    …… /省略部分信息
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.eth0.send_redirects = 0
    net.ipv4.conf.eth1.send_redirects = 0
    [root@LVS+K1 ~]# sysctl -p   <==让配置生效
    [root@LVS+K1 ~]# ipvsadm -Ln    <==查看节点状态
     
    【Keepalived双击热备配置部分】
    1)全局配置,热备配置
    首先应为主,从调度器实现热备功能,漂移地址使用LVS群集的VIP地址。
    [root@LVS+K1 ~]# yum -y install kernel-devel openssl-devel popt-devel      <==安装内核开发包
    [root@LVS+K1 ~]# yum -y install keepalived       <==安装keepalived软件包
    [root@LVS+K1 ~]# chkconfig --add keepalived      <==创建为系统服务服务
    [root@LVS+K1 ~]# chkconfig keepalived on      <==加入开机自启动
    [root@LVS+K1 ~]# cd /etc/keepalived/
    [root@LVS+K1 keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@LVS+K1 keepalived]# vim keepalived.conf
    global_defs {
        router_id LVS_HA_R1    //主调度器的名称
    }
    vrrp_instance VI_1 {
        state MASTER        //主调度器的热备状态
        interface eth0
        virtual_router_id 51
        priority 100        //主调度器的优先级
        advert_int 1
        authentication {       //主、从热备认证信息
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.1.130      //指定集群VIP地址
        }
    }
     
    2)Web服务器池配置
    在keepalived的热备配置基础上,添加“virtual_server VIP端口 {...}”区段来配置虚拟服务器。主要包括对负载调度算法,群集工作模式,健康检查间隔,真实服务器地址等参数的设置。
    root@LVS+K1 keepalived]# vi /etc/keepalived/keepalived.conf
    virtual_server 172.16.1.130 80 {               //虚拟服务器地址(VIP)、端口
        delay_loop 15                              //健康检查时间的间隔(秒)
        lb_algo rr                                 //轮询(rr)调度算法
        lb_kind DR                                 //直接路由(DR)群集工作模式
     ! persistence 60                             //连接保持时间(秒),若启用请去掉!号
        protocol TCP                               //应用服务采用的是TCP协议
        real_server 172.16.1.131 80 {              //第一个Web节点的地址、端口
            weight 1                               //节点权重
            TCP_CHECK {                            //健康检查方式
                    connect_port  80               //检查的目标端口
                    connect_timeout  3             //连接超时(秒)
                    nb_get_retry  3                //重试次数
                    delay_before_retry  4          //重试间隔(秒)
                }
        }
        real_server 172.16.1.132 80 {              //第二个Web节点的地址、端口
            ......//省略部分信息
        }
         real_server 172.16.1.133 80 {            //第三个Web节点的地址、端口
            ......//省略部分信息
        }
         real_server 172.16.1.134 80 {            //第四个Web节点的地址、端口
            ......//省略部分信息
        }
    }
    3)重新启动keepalived服务
    [root@LVS+K1 keepalived]# service keepalived restart
    [root@LVS+K1 keepalived]# ip addr show dev eth0    <==查看浮动IP是否添加成功
    [root@LVS+K1 ~]# vim /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==开放80端口让客户端能够访问进来
    [root@LVS+K1 ~]# service iptables restart
    #在LVS调度服务器上开放80端口,只是为了让客户机能有一个接口进来,然后在通过此接口连接到后端真正的Web服务器的80端口调取数据,在LVS调度服务器上并不需要安装httpd服务!
     
    2.2 配置从调度器
    从调度器的配置与主调度器基本相同,也包括全局配置,热备配置,服务器池配置,只需要调整router_id,state,priority参数即可,其余内容完全相同。配置完以后重启keepalived服务。
    【LVS负载均衡配置部分】
    [root@LVS+K2~]# modprobe ip_vs          <==加载ip_Vs模块
    [root@LVS+K2 ~]# yum -y install ipvsadm      <==安装ipvsadm工具包
    [root@LVS+K2 ~]# ipvsadm -A -t 172.16.1.130:80 -s rr       <==配置负载分配策略
    [root@LVS+K2 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.131:80 -g -w 1
    [root@LVS+K2 ~]# ipvsadm -a -t 172.16.1.130:80 -r 172.16.1.132:80 -g -w 1
    [root@LVS+K2 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm      <==保存负载分配策略
    [root@LVS+K2 ~]# cat /etc/sysconfig/ipvsadm      <==确认保存结果
    [root@LVS+K2 ~]# chkconfig ipvsadm on     <==加入开机自启动
    #调整/proc响应参数(避免ARP包错误)
    [root@LVS+K2 ~]# vim /etc/sysctl.conf
    …… /省略部分信息
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.eth0.send_redirects = 0
    net.ipv4.conf.eth1.send_redirects = 0
    [root@LVS+K2 ~]# sysctl -p    <==让配置生效
    [root@LVS+K2 ~]# ipvsadm -Ln    <==查看节点状态
     
    【Keepalived双击热备配置部分】
    1)全局配置,热备配置
    首先应为主,从调度器实现热备功能,漂移地址使用LVS群集的VIP地址。
    [root@LVS+K2 ~]# yum -y install kernel-devel openssl-devel popt-devel      <==安装内核开发包
    [root@LVS+K2 ~]# yum -y install keepalived       <==安装keepalived软件包
    [root@LVS+K2 ~]# chkconfig --add keepalived      <==创建为系统服务服务
    [root@LVS+K2 ~]# chkconfig keepalived on      <==加入开机自启动
    [root@LVS+K2 ~]# cd /etc/keepalived/
    [root@LVS+K2 keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@LVS+K2 keepalived]# vim /etc/keepalived/keepalived.conf
    global_defs {
        router_id LVS_HA_R2       //备份调度器的名称
    }
    vrrp_instance VI_1 {
        state BACKUP       //备份调度器的热备状态
        interface eth0
        virtual_router_id 51
        priority 99       //备份调度器的优先级
        advert_int 1
        authentication {      
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.1.130     //指定集群VIP地址
        }
    virtual_server 172.16.1.130 80 {               //虚拟服务器地址(VIP)、端口
        delay_loop 15                              //健康检查时间的间隔(秒)
        lb_algo rr                                 //轮询(rr)调度算法
        lb_kind DR                                 //直接路由(DR)群集工作模式
     ! persistence 60                             //连接保持时间(秒),若启用请去掉!号
        protocol TCP                               //应用服务采用的是TCP协议
        real_server 172.16.1.131 80 {              //第一个Web节点的地址、端口
            weight 1                               //节点权重
            TCP_CHECK {                            //健康检查方式
                    connect_port  80               //检查的目标端口
                    connect_timeout  3             //连接超时(秒)
                    nb_get_retry  3                //重试次数
                    delay_before_retry  4          //重试间隔(秒)
                }
        }
        real_server 172.16.1.132 80 {              //第二个Web节点的地址、端口
            ......//省略部分信息
        }
         real_server 172.16.1.133 80 {            //第三个Web节点的地址、端口
            ......//省略部分信息
        }
         real_server 172.16.1.134 80 {            //第四个Web节点的地址、端口
            ......//省略部分信息
        }
    }
    [root@LVS+K2 keepalived]# service keepalived restart
    [root@LVS+K2 keepalived]# ip addr show dev eth0    <==查看浮动IP是否添加成功
    [root@LVS+K2 ~]# vim /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==开放80端口让客户端能够访问进来,无需安装httpd服务
    [root@LVS+K2 ~]# service iptables restart
     
    2.3 配置Web节点服务器
    根据所选择的集群工作模式不同(DR或NAT),节点服务器的配置也有差异。以DR模式为例,除了需要调整/proc系统的ARP响应参数以外,还需要为虚接口lo:0配置VIP地址,并添加一条到VIP的本地路由,具体方法参照LVS设置笔记。
    1)安装httpd服务
    [root@www1 ~]# yum -y install httpd 
    [root@www1 ~]# cd /etc/sysconfig/network-scripts/
    [root@www1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
    [root@www1 network-scripts]# vim ifcfg-lo:0
    DEVICE=lo:0
    IPADDR=172.16.1.130
    NETMASK=255.255.255.255     <==注意子网掩码必须全为1
    ONBOOT=yes
    [root@www1 network-scripts]# ifup lo:0
    [root@www1 network-scripts]# ifconfig lo:0
    lo:0      Link encap:Local Loopback 
              inet addr:172.16.1.130  Mask:255.255.255.255
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
    [root@www1 ~]# vi /etc/rc.local 
    /sbin/route add -host 172.16.1.130 dev lo:0     <==添加VIP本地访问路由
    [root@www1~]#route add -host 172.16.1.130 dev lo:0
     
    2)调整/proc响应参数
    [root@www1 ~]# vim /etc/sysctl.conf
    …… /省略部分信息
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.default.arp_ignore = 1
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    [root@www1 ~]# sysctl -p
     
    3)安装httpd,创建测试网页
    [root@www1 ~]# mount 192.168.1.100:/opt/wwwroot /var/www/html     <==如果有NFS就挂载,没有就忽略此命令
    [root@www1 ~]# vi /var/www/html/index.html
    <h1>LVS负载均衡群集——测试网页/<h1>
    [root@www1 ~]# service httpd start
    [root@www1 ~]# chkconfig httpd on
    [root@LVS+K2 ~]# vim /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT    <==开放80端口为客户端提供httpd服务
    [root@LVS+K2 ~]# service iptables restart
     
    4)测试LVS+keepalived高可用群集
    在客户机的浏览器中,能够通过LVS+keepalived集群的VIP地址(172.16.1.130)正常访问web页面内容。当主,从调度器任何一个失效时,Web站点任然可以访问(可能需要刷新或重新打开浏览器);只要服务器池有两台以上的真实服务器可用,就可以实现访问量的负载均衡。
    通过主、从调度器的/var/log/messages日志文件,可以跟踪故障切换过程;若要查看负载分配情况,可执行“ipvsadm -Ln”、“ipvsadm -Lnc”等操作命令。最终以验证LVS+keepalived高可用群集是否成功运行。
     
    #客户机通过网页访问http://172.16.1.130,可以看到由Web服务器提供的网页内容,多刷新几次然后到LVS主调度器上查看负载均衡情况:
    #当前LVS备用调度器处于监控状态,并没有正式工作,所以上面并没有负载均衡记录:
     
    #手动将LVS主调度器关机(或者断开eth0连接),然后再次刷新网页。如果能浏览到网页内容说明已经成功切换到LVS备用调度器上,然后查看LVS备用调度器的负载均衡情况:
     
    #在LVS主服务器宕机或断开连接的情况下,客户机打开网页发现仍然可以继续访问Web服务器提供的网页,此时的网站负载均衡功能由LVS备用服务器提供:
     
    注意:当LVS主服务器修复上线后,会再次夺取控制权,而LVS备用服务器也将回到监听状态。
     
     
     
    **********LVS负载均衡失败排查思路***********
    ➣  首先使用“ipvsadm -Ln”查看负载分配策略的ip和端口是否正确
    ➣  检测iptables防火墙端口是否开放
    ➣  SElinux机制是否关闭
    ➣  网络是否通畅,多重启几次服务“service ipvsadm restart”
     
    **********Keepalived双机热备切换失败排查思路***********
    ➣  检测主调度服务器和备份调度服务器的/etc/keepalived/keepalived.conf配置文件是否正确。
    ➣  如果将eth0等端口重启过,一定要记得重启一下keepalived服务,“service keepalived restart”。虽然已经将keepalived服务加入了开机自启动,但是重启网卡后浮动ip(VIP)就会丢失,必须重启网卡才能重新建立好浮动IP,可以使用“ip add show dev eth0”命令查看浮动IP是否建立成功:
    [root@LVS+K1 ~]# ip add show dev eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:88:9b:6a brd ff:ff:ff:ff:ff:ff
        inet 172.16.1.128/24 brd 172.16.1.255 scope global eth0
        inet 172.16.1.130/32 scope global eth0
        inet6 fe80::20c:29ff:fe88:9b6a/64 scope link
           valid_lft forever preferred_lft forever
    ➣  上面两条都检查无误但还是失败的话建议重启服务器试试“reboot”。
     
     

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





  • 相关阅读:
    C++11写算法之顺序查找
    Codeforces Round #632 (Div. 2) 题解
    AtCoder Beginner Contest 161 题解
    Codeforces Round #630 (Div. 2) 部分题解
    2019-2020 ICPC Northwestern European Regional Programming Contest (NWERC 2019) 部分题解
    Codeforces Round #629 (Div. 3) 题解
    Educational Codeforces Round 84 (Rated for Div. 2) 部分题解
    AtCoder Beginner Contest 159 题解
    Codeforces Round #628 (Div. 2) 题解
    Codeforces Round #627 (Div. 3) 题解
  • 原文地址:https://www.cnblogs.com/hello-sky/p/4450615.html
Copyright © 2020-2023  润新知