Keepalived高可用服务器配置

## 高可用服务器

  • 以提高应用系统的可靠性、尽可能减少终端宕机时间为目标,确保服务的连续性,达到高可用(HA)的容错效果,例如“故障切换”“双击热备”“多机热备”等都属于高可用群集技术
  • 实现技术:keepalived、heartbeat、corosync、cman
  • 高可用主要用于解决单点故障的问题
  • 单点故障: 当节点发生故障时,会导致整个系统发故障,我们把这种故障叫做单点故障

Keepalived

  • 专为LVS和HA设计的一款健康检查工具(官方网站), keepalived是以VRRP协议为基础实现的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议
  • keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;check负责健康检查,包括常见的各种检查方式;vrrp模块是来实现VRRP协议的。
  • 主要功能:
    • 支持故障自动切换(Failover)
    • 支持节点健康状态检查(Health Checking)
  • 主要文件
    • /usr/sbin/keepalived keepalived主程序文件
    • /etc/keepalived/keepalived.conf keepalived主配置文件
    • /usr/lib/systemd/system/keepalived.service keepalived服务启停脚本
    • /usr/share/doc/keepalived-1.3.5/samples/ keepalived 配置的模板文件

Keepalived实现主从双机热备

  • 实验环境

    • keepalived1+httpd:192.168.10.124
    • keepalived2+httpd:192.168.10.125
  • 为两台keepalived服务器安装服务
    image-20191115141948342
    image-20191115142021570

  • 修改keepalived master服务器配置文件
    image-20191115142220075
    image-20191115151432214

    ! Configuration File for keepalived
    
    global_defs {
       router_id HA_TEST1
    }
    
    vrrp_instance VI_1 {
    	state MASTER
    	interface ens33
    	virtual_router_id 51
    	priority 100
    	advert_int 1
    	authentication {
    		auth_type PASS
    		auth_pass 123456
    	}
    	virtual_ipaddress {
    		192.168.10.200
    	}
    }
    
  • 修改keepalived salve服务器配置文件
    image-20191115143456154
    image-20191115151627956

  • 开启服务器
    image-20191115143838415
    image-20191115143909050

  • 查看网卡信息,漂移地址已经被配置到MASTER的ens33上
    image-20191115144131727
    image-20191115144054745
    image-20191115144118340

  • 为这两台keepalived服务器安装httpd服务
    image-20191115144226750
    image-20191115144459552
    image-20191115144448691

  • 添加测试页并启动服务
    image-20191115144527684
    image-20191115144626945
    image-20191115144721372
    image-20191115145028737
    image-20191115145014769
    image-20191115145318196

  • 关闭防火墙
    image-20191115150021442
    image-20191115150041440

  • 测试
    image-20191115145444812
    关闭master上的keepalived服务后测试
    image-20191115151839043
    image-20191115151908579
    image-20191115151946170

LVS+keepalived

  • 实验环境

    • lvs+keepalived server1:Centos7 192.168.10.124
    • lvs+keepalived server2:Centos7 192.168.10.125
    • LAMP server1:Centos7 192.168.10.10
    • LAMP server2:Centos7 192.168.10.11
  • 拓扑图

    image-20191118212602888

  • 搭建LAMP环境
    这里使用之前实验中搭建的两台LAMP服务(LAMP环境搭建详细流程

  • httpd服务器修改测试页
    image-20191118134522432
    image-20191118134558764
    image-20191118134629410
    image-20191118134655446

  • 因为yum 安装的keepalived 1.3.5貌似无法兼容kernel3.1中的lvs,所以使用源码包重新安装keepalived(需要先将之前安装的使用卸载)
    image-20191117201528172

  • 上传源码包(官网下载地址
    image-20191117201806159

  • 安装依赖和所需软件
    image-20191117202050840

    yum install -y gcc gcc-c++ make popt-devel kernel-devel openssl-devel 
    
  • 解压安装包
    image-20191117202354608

  • 编译安装
    image-20191117202437358

  • 将启动脚本复制到/etc/init.d目录下
    image-20191117202611386

  • 为两台keepalived配置文件添加如下配置
    image-20191118134023555
    image-20191118134043744
    image-20191118133924222
    image-20191118132730749

    ! Configuration File for keepalived
    global_defs {
    	router_id HA_TEST1 #名称
    }
    
    vrrp_instance VI_1 {
    	state MASTER | BACKUP #设置服务器角色 主或从
    	interface ens33 #使用的网卡
    	virtual_router_id 51
    	priority 100
    	advert_int 1
    	authentication {
    		auth_type PASS
    		auth_pass 123456
    	}
    	virtual_ipaddress {
    		192.168.10.200 #漂移地址
    	}
    }
    virtual_server 192.168.10.200 80 {
    	delay_loop 15
    	lb_algo rr
    	lb_kind DR
    	! persistence 60
    	protocol TCP
    	real_server 192.168.10.10 80 { #RS服务器地址及端口
    		weight 1
    		TCP_CHECK{
    			connect_port 80 #端口号
    			connect_timeout 3 #超时时长(秒)
    			retry 3 #重试次数
    			delay_before_retry 3 #重试前延时时长(秒)
    		}
    	}
    	real_server 192.168.10.11 80 {
    		weight 1
    		TCP_CHECK{
    			connect_port 80
    			connect_timeout 3
    			retry 3
    			delay_before_retry 3
    		}
    	}
    }
    

    image-20191118132913812

  • 安装ipvsadm工具并关闭ipvsadm服务
    image-20191115162532758
    image-20191117211107746

  • 修改后端RS的内核参数、添加回环网卡子接并配置响应的路由规则
    image-20191115161707737
    image-20191115161904398

  • 重启keepalived服务
    image-20191118132928111

  • 查看启动的进程及生成的lvs
    image-20191118133035589
    image-20191118133107170

  • 访问测试
    image-20191118134957240
    注:curl命令不能在有漂移地址的keepalived服务器上进行测试
    关闭主keepalived的服务,查看从服务器是否自动进行切换
    image-20191118135818864
    image-20191118135853456
    后台服务依然正常响应
    image-20191118135936565
    重新启动主keepalived服务
    image-20191118140057024
    查看漂移地址是否重新切换到主keepalived
    image-20191118140204792

posted @ 2019-11-18 21:43  MirL  阅读(336)  评论(0编辑  收藏  举报