高可用负载均衡实战

1.服务器安装

我们选择目前大部分生产环境使用的rhel7操作系统

在虚拟机中安装:


2.服务器初始化

关闭selinux

vi /etc/sysconfig/selinux

稍后重启

关闭火墙

停用NetworkManager

配置yum源

将光驱设置为开机自动连接

mount /dev/cdrom /media/

挂载在/media目录

vi /etc/yum.repos.d/dvd.repo

yum install -y vim net-tools

#安装vim和net-tools网络工具

vim /etc/fstab

配置网络

vim /boot/grub2/grub.cfg

#添加内核参数,修改网卡命名  net.ifnames=0

reboot重启生效

vim ifcfg-eth0

一般情况下使用静态网络,手动设置ip,较稳定

vim ifcfg-eth0

修改主机名

yum install -y bash-*

#安装后支持shell界面命令的tab键补齐

vim /etc/hosts

#添加本地解析,为后续实验准备

时间同步

yum install -y chrony

#安装软件

vim /etc/chrony.conf

systemctl restart chronyd

#重启服务

同步成功 

虚拟机封装好以后直接关机,后面不要再启动了,新建虚拟机只需要克隆此虚拟机即可


拍摄快照

克隆

克隆到第二台主机时,将修改主机名和ip,以此类推

server2:

用MobaXterm软件远程连接使用


3.技术架构简介

C/S架构

B/S架构

再克隆一台主机,修改主机名为server3,ip192.168.145.13

11作为调度器,12、13作后端服务器


4.LVS负载均衡集群

分摊流量,流量从调度器自动负载到后端

yum install -y ipvsadm

#安装ipvsadm包

ipvsadm -ln

#查看LVS调度策略

lsmod

#查看linux内核模块

添加vip地址

ip addr add 192.168.145.100/24 dev eth0

添加lvs策略

ipvsadm命令

ipvsadm -A -t 192.168.145.100:80 -s rr

#-t 添加tcp服务,-s 调度算法,rr轮调制度

ipvsadm -a -t 192.168.145.100:80 -r 192.168.145.12:80 -g

ipvsadm -a -t 192.168.145.100:80 -r 192.168.145.13:80 -g

#往tcp服务中-r添加real server后端服务器地址,-g 直连网关

yum install -y httpd

systemctl enable --now httpd

#在后端服务器中安装测试服务apache并设置开机自启

echo server2 > /var/www/html/index.html

echo server3 > /var/www/html/index.html

#设定测试页

当访问vip服务时,会自动将流量均摊到真实服务器上

再克隆一个主机作为测试服务器server4

访问失败原因是服务器未处理用户需求

real server也需添加vip

禁用arp

须屏蔽real server的vip响应

禁用arp协议

yum install arptables

#安装软件包,管理arp协议,类似于iptables

测试

使用windows浏览器不会轮换,因为有缓存功能


5.LVS工作原理

工作原理

1)当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间

2) PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链

3) IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链

4) POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器

LVS相关术语

1、 DS:Director Server。指的是前端负载均衡器节点。

2、 RS:Real Server。后端真实的工作服务器。

3、 VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。

4、 DIP:Director Server IP,主要用于和内部主机通讯的IP地址。

5、 RIP:Real Server IP,后端服务器的IP地址。

6、 CIP:Client IP,访问客户端的IP地址

三种模式及原理

NAT原理和特点

多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发

1.当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

2. PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3. IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP

4. POSTROUTING链通过选路,将数据包发送给Real Server

5. Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP

6. Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP

NAT模式的特性

(1) RS应该和DIP应该使用私网地址,且RS的网关要指向DIP;

(2) 请求和响应报文都要经由director转发;极高负载的场景中,director可能会成为系统瓶颈;

(3) 支持端口映射;

(4) RS可以使用任意OS;

(5) RS的RIP和Director的DIP必须在同一IP网络;

缺陷:对Director Server压力会比较大,请求和响应都需经过director server

DR原理和特点

通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;

DR模式

1、当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

2、PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3、 IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址

4、 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。

5、 RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP

6、 响应报文最终送达至客户端

DR模式的特性

(1) 确保前端路由器将目标IP为VIP的请求报文发往Director:

(a) 在前端网关做静态绑定;

(b) 在RS上使用arptables;

(c) 在RS上修改内核参数以限制arp通告及应答级别;

修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

(2) RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;

(3) RS跟Director要在同一个物理网络;

(4) 请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client;

(5) 不支持端口映射;

缺陷:RS和DS必须在同一机房(vlan)中

TUNNEL原理和特点

在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP)

TUN原理

1、当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP 。

2、 PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3、IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。然后发至POSTROUTING链。 此时源IP为DIP,目标IP为RIP

4、 POSTROUTING链根据最新封装的IP报文,将数据包发至RS(因为在外层封装多了一层IP首部,所以可以理解为此时通过隧道传输)。 此时源IP为DIP,目标IP为RIP

5、 RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆除掉最外层的IP后,会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通过lo接口送给eth0网卡,然后向外传递。 此时的源IP地址为VIP,目标IP为CIP

6、响应报文最终送达至客户端

TUNNEL模式的特性

(1) DIP, VIP, RIP都应该是公网地址;

(2) RS的网关不能,也不可能指向DIP;

(3) 请求报文要经由Director,但响应不能经由Director;

(4) 不支持端口映射;

(5) RS的OS得支持隧道功能;

企业中最常用的是 DR 实现方式,而 NAT 配置上比较简单和方便


6.高可用负载均衡集群

master配置

yum install -y keepalived

在调度器上安装软件keepalived

vim /etc/keepalived/keepalived.conf

#编辑配置文件

ip a d 192.168.145.100/24 dev eth0

#删除原有vip地址

systemctl restart keepalived

#重启服务

cat /var/log/message

#查看日志

正常运行

测试:

后端服务器出现问题

systemctl stop httpd

#停用服务器server2的apache服务

在调度器中:

yum install -y mailx

故障服务自动从列表清除

将server3的httpd也停用

再次启动两台后端服务器apache服务

恢复的RS自动添加到调度列表

拥有健康检测功能

backup配置

server4:

yum install keepalived -y

#安装keepalived软件

在server4中修改:

systemctl enable --now keepalived

#启动并设置开机自启

yum install ipvsadm -y

查看日志

调度器出现故障

tail -f /var/log/message

#监控BACKUP日志

systemctl stop httpd

#关闭MASTER的apache服务

重启MASTER的keepalived服务

重新接管

反观BACKUP机:

若MASTER机关机,BACKUP也会自动接管

当MASTER重新启动,keepalived服务开启,又会重新接管服务

但切换过程中是有一定损失的,比较小,服务可用性可以达到99.999%

一般云计算环境容忍度比较大,可达到99.9%-99.99%

去IOE运动

所谓去“IOE”,是对去IBM小型机、Oracle数据库、EMC存储设备的简称,三者均为海外IT巨头,其中IBM代表硬件以及整体解决方案服务商,Oracle代表数据库,EMC代表数据存储。去“IOE”策略更广泛的理解是对一些核心领域要求其IT系统及设备做到自主可控,比如金融、电信、能源等领域,在这些领域,“IOE”为代表的国外IT厂商占据绝对优势,其中尤以IBM大型服务器垄断地位尤为明显,业内人士估计在该领域IBM市场占有率高达70%。 2012年6月25日,美国国际贸易委员会25日宣布对中国大陆及台湾多家企业生产的电子成像设备发起“337调查”,以确定是否存在专利侵权行为,其中包括中国内地的华为技术有限公司、中兴通讯股份有限公司。这为中国去IOE提供了前科。 2013年6月,棱镜门事件爆发,“棱镜”事件泄密人斯诺登披露,自2009 年以来,美国国家安全局一直在侵入中国内地和中国香港的电脑系统,一时间舆论哗然。“棱镜”事件为国家信息安全敲响了警钟,尤其是政府、大型金融机构和大型国有企业尤为重视。 2013年7月,受“棱镜”事件影响,部分银行开始做去“IOE”筹划,准备在三到五年内逐步淘汰外资,在银行IT系统和办公系统实现中资化。银行“核心系统”是记录保存银行客户信息和存贷款操作等银行最关键、最敏感的业务数据。


7.LVS工作模式

LVS没有健康检测功能和解决自身冗余的功能,所以借助keepalived软件实现

但keepalived只解决了高可用问题,因为调度器总是单独工作的(MASTER和BACKUP不会同时工作),并没有对调度器本身做横向扩展

DR模式不足

1.调度器和后端服务器必须在同一个vlan内

2.RS上绑定VIP,风险大(未做noarp的情况下,客户端会直接去找real server)

NAT模式不足

使用 DNAT(目标地址转换,改变的是目标地址) 和 SNAT(源地址转换,改变的是源地址) 技术完成报的转发

调度器和真实服务器不在一个网络

RS不需设置VIP,数据原路径返回,需设置策略路由,运维复杂度升高

TUNNEL不足

解决方法

FULLNAT模式

操作系统默认不支持,需编译内核

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值