企业架构双点服务器HA

学习目标和内容

  1. 能够理解高可用HA概念
  2. 能够理解VIP概念
  3. 能够描述keepalived作用
  4. 能够理解主master和备backup服务器关系
  5. 能够实现主备服务器高可用配置
  6. 能够实现模拟宕机服务切换

一、背景描述及其方案设计

1、业务背景描述

时间:2009.6-2010.9

发布产品类型:互联⽹动态站点 商城

⽤户数量: 2000-4000(⽤户量猛增 翻了4倍)

PV : 8000-50000(24⼩时访问次数总和)

QPS: 50-100*(每秒访问次数)

DAU: 200-400(每⽇活跃⽤户数)

随着用户量增多,总的页面数量一直在持续增加,可以预料到的是,WEB服务器,压力会越来越大。虽然单台WEB服务器,完全可以完成工作任务。但是如果一旦宕机,用户就完全失去服务了,用户体验特别不好。

需要备用一台服务器进行使用,如果出现宕机,切换为备用服务器

模拟运维设计方案

之前架构中,数据库服务器已经单独迁移

针对业务背景下的需求,升级为以下架构

二、服务器基本环境部署

1、引入HA概念

HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。

HA 启用备份服务器(backup)

备份服务器:

冷备 服务器不启用(域名不解析),使用的时候再开启,需要手动切换

热备 服务器在等待状态(监控主服务器状态),一旦主宕机,备就接管,自动切换

实现热备,引入VIP的切换

正常来说,VIP绑定在主服务器(master),业务访问的master

master宕机了,VIP就会绑定在备份服务器(backup),业务被切换到备份服务器

让用户无感知,影响较小

VIP 决定了,用户被分发请求到哪个业务服务器

克隆复制虚拟机

server01 WEB服务器 master 192.168.17.100

server02 数据库服务器 192.168.17.102

server03 WEB服务器 backup 192.168.17.104

  1. FQDN配置
  2. 网络配置和检测

以上操作按照之前的步骤进行即可

三、高可用服务搭建

1、keepalived介绍

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件

   Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

使用keepalived进行VIP的实现

安装keepalived

使用yum方式安装

master和backup都需要进行安装

shell > yum -y install keepalived

使用目录

3、keepalived配置部署

keepalived的部署配置文件在/etc/keepalived/keepalived.conf

Mater机器配置(server01)

Backup机器配置(server02)

相关配置简单说明

keepalived中基本设置单位是 vrrp_instance [名称] 代表一个池子

vrrp_instance VI_1 给这个池子起个唯一名称

在两台服务器上都配置 同一个vrrp_instance VI_1后,就意味着两台服务器都加入了同一个池子

在vrrp_instance{}中执行服务器的工作模式,两台机器中一台作为state MASTER,一台作为state BACKUP

在vrrp_instance{}中还需指定使用的网卡,interface eth0 绑定VIP的网卡

另外还需注意的是一个vrrp_instance{}中还必须有一个唯一的virtual_router_id(这个经常在面试中被问到)

在virtual_ipaddress{}中必须有一个VIP(虚拟机ip地址)

virtual_ipaddress{

192.168.17.200

}

启动keepalived服务

通过yum方式安装的keepalived,直接使用service命令进行管理

如果是通过源码包安装的可以使用keepalived -D 参数启动

查看主备服务器网卡信息

master的网卡信息

通过keepalived的主备模式,实现默认VIP绑定到了master服务器

master服务器宕机了(关机,断电了,网线断了),VIP会飘移到了backup

抢占模式:

当主服务器恢复之后,VIP会继续回到主服务器

四、实现服务器HA

1、解析域名到VIP

把域名解析到VIP,通过VIP访问到提供服务的服务器

模拟宕机实现服务切换

真是业务环境下,可能是服务器整机没有宕机,nginx服务宕机了,监控nginx服务,如果nginx服务宕机,就关闭keepalived。

①分别上传nginx检测服务是否启动脚本

②赋予脚本执行权限,配置keepalived

注意master和backup都要上传修改

当nginx宕机之后,关闭keepalived,VIP进行飘移

Tip:

非抢占模式:

1> 在vrrp_instance块下两个节点各增加了nopreempt指令,表示不争抢vip 
2> 节点的state都为BACKUP 
两个keepalived节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。