企业—LVS(DR模式)+Keepalived(HA高可用)

一.模拟LVS的DR模式下的HA高可用

实验环境:

主机名(IP) 服务
server1(172.25.254.1) 主备
server2(172.25.254.4) 辅备
server2(172.25.254.2) realserver
server3(172.25.254.3) realserver

1.主备server1上的操作

  • (1) 官网下载安装包(本次实验已有安装包直接从物理机上scp
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (2)将安装包解压并且编译安装(在yum源头搭建好后)

a.安装包解压
企业—LVS(DR模式)+Keepalived(HA高可用)
b.安装包的安装(三部曲)

安装keepalived的依赖包
企业—LVS(DR模式)+Keepalived(HA高可用)
编译keepalived的源码包
企业—LVS(DR模式)+Keepalived(HA高可用)
企业—LVS(DR模式)+Keepalived(HA高可用)

  • (3)给keepalive的服务启动脚本加执行权限
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (4)创建软链接方便调用

  • ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
  • ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  • ln -s /usr/local/keepalived/etc/keepalived/ /etc/
  • ln -s /usr/local/keepalived/sbin/keepalived /sbin/
    /etc/init.d/ldirectord stop ##该功能与HA功能有重复,HA会自动分配virtualserver

企业—LVS(DR模式)+Keepalived(HA高可用)

  • (5)删除虚拟服务器添加的网卡

企业—LVS(DR模式)+Keepalived(HA高可用)

  • (6)编译keepalived的配置文件
    企业—LVS(DR模式)+Keepalived(HA高可用)
  • (7)keepalived配置文件的编辑及其详解

A.keepalived的所有配置都在一个配置文件里面设置,支持的配置主要分为三类

1.全局配置(Global Configuration):作用于整个keepalived服务
2.VRRPD配置:keepalived的核心
3.虚拟服务配置:指定服务与负载均衡配置文件都是以块形式组织的,每个块都在{}包围的范围内

! Configuration File for keepalived

global_defs {  #全局定义块
   notification_email {   #邮件通知
        [email protected]  ##指的是邮件发给本地用户
}
#设置邮件发送地址
   notification_email_from [email protected]
   smtp_server 127.0.0.1 #设置smtp server地址,为回环接口
   smtp_connect_timeout 30 #设置smtp server服务的超时时间
   router_id LVS_DEVEL #load balance的标识ID,用于email报警
   vrrp_skip_check_adv_addr
  #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
##VRRPD的配置
vrrp_instance VI_1 {
    state MASTER #主机,备机为BACKUP,此状态是由priority的数值来决定的,当前priority的数值小于备机的数值,那么将会失去master状态
    interface eth0 #HA检测网络接口
    virtual_router_id 51 #主,备机的virtual_router_id必须相同取值0-255
    priority 100 #主机的优先级,必须大于备机
    advert_int 1 #主备之间的通告间隔秒数
    authentication {
        auth_type PASS  #设置验证类型,主要由PASS和AH俩种
        auth_pass 1111
    }
    #指定漂移地址(VIP)即切换到master时,这些IP会被添加,切换到BACKUP时,这些IP会被删除(传给ip addr命令),所以每台服务器可以不用绑定任何的虚拟地址。
    virtual_ipaddress {
        172.25.13.100
    }
}
#虚拟服务配置
virtual_server 172.25.13.100 80 { #定义虚拟服务器
    delay_loop 
    lb_algo rr #lvs调度算法里面的论叫
    lb_kind DR #lvs的DR模式
    #persistence_timeout 50 #注释掉
    protocol TCP #指定转发协议类型

    real_server 172.25.13.2 80 { #配置服务节点
        TCP_CHECK {
        weight 1 #默认为1,0为失效
            connect_timeout 3 #10秒无响应超时
            retry 3 #重复次数
            delay_before_retry 3 #重复间隔
        }
    }
    real_server 172.25.13.3 80 {
         TCP_CHECK {
         weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

企业—LVS(DR模式)+Keepalived(HA高可用)
企业—LVS(DR模式)+Keepalived(HA高可用)

  • (8)开启服务
    注:启动不了服务可能是启动服务的脚本没有加执行的权限,解决如下:
    企业—LVS(DR模式)+Keepalived(HA高可用)

2.辅备server4上的配置

  • (1)以base作为母盘建立快照虚拟机vm4

企业—LVS(DR模式)+Keepalived(HA高可用)

企业—LVS(DR模式)+Keepalived(HA高可用)
企业—LVS(DR模式)+Keepalived(HA高可用)

  • (2)vm4的快照虚拟机的基本配置
    主机名和ip的修改如下:
    企业—LVS(DR模式)+Keepalived(HA高可用)
    企业—LVS(DR模式)+Keepalived(HA高可用)
    企业—LVS(DR模式)+Keepalived(HA高可用)
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (3)在主备(server1)上拷贝keepalive的相关配置文件
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (4)如果该服务的脚本没有执行权限则需要添加脚本的执行权限
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (5)创建软链接方便调用
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (6)编辑keepalived的配置文件与server1主备基本相同,需要修改的地方如下标记
    企业—LVS(DR模式)+Keepalived(HA高可用)
    企业—LVS(DR模式)+Keepalived(HA高可用)
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • (7)开启服务
    企业—LVS(DR模式)+Keepalived(HA高可用)
    3.测试:

  • 在server1(主备)
    企业—LVS(DR模式)+Keepalived(HA高可用)
    发现已经分配到了虚拟服务器的IP,但是server4(辅备)上是没有虚拟IP的。

  • server2和server3上打开apache服务并且在默认发布目录下添加要发布的内容

  • 在物理机上
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • 关掉server1(主备)上的keepalived服务

企业—LVS(DR模式)+Keepalived(HA高可用)
发现大约在9s左右的时间server4上会有虚拟IP出现
企业—LVS(DR模式)+Keepalived(HA高可用)
在物理机上再次测试
企业—LVS(DR模式)+Keepalived(HA高可用)
4.当有错误时自动发邮件给本机的检测

server1(主备)和server4(辅备)都可以收到邮件,下面以server1为例

  • 安装邮件所需要的软件(yum源搭建好之后)
    企业—LVS(DR模式)+Keepalived(HA高可用)

  • 当关掉server4的keepalived服务之后查看邮件

mail ##查看该邮件如果当server1该keepalived服务关掉的时候,当realserver的httpd关掉的时候都会有报错

补充知识:
管理虚拟机的三种命令的含义

  • kvm:内核的虚拟化
  • qemu:外部设备的虚拟化
  • libvirt:内部接口的虚拟化,管理虚拟化接口,即使关掉服务虚拟机还是会正常使用