LVS集群

一、集群

1、集群:为解决某个特定问题将多个计算机组合起来形成一个单系统

2、目的:为了解决系统的性能瓶颈

3、发展

(1)垂直扩展(向上扩展):增强单个机器的性能,升级硬件是有瓶颈

(2)水平扩展(向外扩展):增加设备,并行运行多个服务,主要是通过网络和算法来调度服务分配的问题(目前使用)

4、类型

(1)负载均衡集群(LB-load blance):多个主机组成,每个主机只承担一部分访问的请求,靠负载均衡算法来实现

(2)高可用集群(HA-availiablity):避免SPOF(single point of failure)单点故障,系统当中有一部分组件出现故障,可以保障整个系统继续运行

①高可用集群的特点:实现主从、同步(某些特定的服务需要)、负载均衡

(3)HPC(high performance computing)快速转发、快速响应(用于大型网站)

目前使用类型:负载均衡+高可用

5、集群的可靠性指标

(1)MTBF(mean time between failure):系统在正常运行期间无故障的平均时间,一般用小时或者天数来表示。MTBF值越高,系统的可靠性越高,出现故障的概率也越小

(2)MTTR:系统从发生故障到恢复正常运行的平均时间(解决问题花费的时间),一般用小时或者天数表示。MTTR值越小,表示系统恢复故障的能力越强

(3)A:系统可靠性指标,A值越高越好

(4)三者之间的关系:A=MTBF/(MTBF+MTTR)

99.9%

1年=365天=8760小时

故障时间=8760*0.1%=8.76小时

(5)停机时间

①计划内停机:预定时间内的维护或者检修时间,自定义时间。

②计划外停机(运维人员主要关注

6、设计集群的原则

(1)可扩展性:集群要有随时可以添加或者删除设备的能力(动态的扩缩容)

(2)可靠性:集群中如果有节点发生故障,可以快速检测并且自动切换

(3)负载均衡:合理的分配负载,避免单个节点过载,影响整体的性能

(4)可维护性:能够方便的进行配置、部署、维护和监控,从而降低成本

(5)安全性:防止恶意攻击,以及数据泄密、数据丢失

(6)易用性:相关的工作人员,可以方便的进入集群,能够快速的开发、部署、测试等等

二、LVS集群(Linux virtual server)

(一)LVS的相关概念

1、LVS:是一个部署在Linux系统上通过内核层面实现负载均衡的软件

2、主要作用:多个后端服务器组成一个高可用、高性能、负载均衡的高性能集群,通过负载均衡的算法将客户端请求发送到后端服务器

阿里的SLB 基于lvs+Keepalived实现的

(二)LVS集群中的术语

1、VS(virtual server):lvs服务的逻辑名称,外部访问lvs集群时提供的一个虚拟ip地址和端口

2、DS(director server):lvs集群当中的主服务器,也是调度器,使整个lvs集群的核心,接受客户端的请求转发到后端RS(real server)

3、RS(real server):lvs后端的真实服务器,接受DS的请求之后,返回响应结果

4、CIP(client ip):客户端的ip地址

5、VIP(virtual ip):对外提供访问的统一虚拟ip地址

6、DIP(director ip):调度器在lvs内部使用的ip地址,用于和真实服务器进行通信

7、RIP(real ip):后端真实服务器的ip地址

(三)LVS访问流程

1、客户端访问都是访问VIP

2、DS接受到请求,根据调度算法(负载均衡算法)选择好后端服务器(rs)、把请求发送给RS

3、RS处理请求并把响应发送给DS

4、DS把RS的响应包装成自己的响应,发送到客户端

客户端既不知道请求的真实服务器,也不知道响应的服务器是谁

(四)lvs负载均衡的方式

1、NAT(最常用)

2、DR(最常用)

3、TUN

(五)NAT模式(地址转换)

1、NAT模式:是最常用的lvs负载方式之一

2、NAT模式的访问流程

(1)在调度器上配置双网卡,一个指内,一个指外

(2)配置一个可以和公网进行通信的VIP

(3)配置转发策略,如果访问VIP,就会把请求的数据转发到后台的RS

请求的格式:报文。调度器会修改请求的目标ip地址和端口

12.0.0.1:80  192.168.233.30:80

(4)RS处理完请求之后响应客户端,先到调度器,调度器进行地址转换,把内网地址转换成公网地址,响应给用户

192.168.233.30:80——调度器——nat转换——12.0.0.1:80——客户端

3、总结

(1)数据请求进入调度器,做的是请求报文中ip地址的修改

(2)数据响应进入调度器,根据NAT配置进行地址转换

(3)调度器的内网ip地址和RS的ip地址要在同一网段

4、NAT模式的特点

(1)对于客户端来说请求地址始终不变,客户端不需要修改任何配置,转发由调度器通过算法来完成,后端服务器只管接受响应,也不需要修改任何配置

(2)会有性能损失和单点故障

(六)DR模式(直接路由)

1、特点:请求由调度器完成,响应客户端由RS直接响应,不需要通过调度器

2、优点:性能高,可以配置VIP地址的高可用,不存在单点故障

(七)TUN模式——基本不用

1、通过隧道协议,把请求转发到后端服务器,需要在后端服务器配置隧道协议(VPN)

三、ipvsadm工具

ipvsadm工具:管理ipvs内核模块的命令行工具,可用于配置和管理lvs集群

(一)ipvsadm的命令选项

选项

含义

-A

添加虚拟服务器

-D

删除整个虚拟服务器

-s

指定负载调度的算法

-a

添加真实服务器

-d

删除真实服务器

-t

指定VIP地址的端口号

-r

指定RIP地址的端口号

-m

表示使用nat模式

-g

表示使用DR模式

-i

表示使用TUN模式

-w

设置真实服务器的权重

-p

设置连接保持的时间60秒,默认不带

-ln

以数字以及列表形式查看lvs的配置信息

(二)算法

1、静态调度(固定调度)

(1)rr:默认算法,轮询

(2)wrr:加权轮询

(3)dh:目的地址hash(类似于ip_hash)

(4)sh:源地址hash

dh和sh根据ip地址查找静态hash表,获取需要的真实RS地址

2、动态调度

(1)lc:最小连接数调度

(2)wlc:加权最小连接数调度

(权重高的转发的就多,为了避免性能瓶颈,加上最小连接数分配,可以把请求往连接数量较小的服务器继续转发)

(3)lblc:基于地址的最小连接数调度(将来自同一个目的地址的请求分配给RS,如果这台服务器尚未满负荷,把请求分配给连接数最小的RS,而且在下一次转发时,会优先考虑这台RS,类似于url_hash)

四、NAT模式配置

负载调度器:配置双网卡

20.0.0.10(内网)

12.0.0.1(外网 ens36)

二台后端web真实服务器:20.0.0.11  20.0.0.12

一台NFS共享服务器:20.0.0.70

一台客户端:20.0.0.20

LVS集群_第1张图片

(一)配置共享服务(基于nginx服务配置)

1、操作nginx1、nginx2、test7

2、配置test7

LVS集群_第2张图片

LVS集群_第3张图片

3、配置nginx1和nginx2

LVS集群_第4张图片LVS集群_第5张图片

(1)安装nginx

LVS集群_第6张图片

(2)挂载

LVS集群_第7张图片

LVS集群_第8张图片

LVS集群_第9张图片

(3)配置网卡

LVS集群_第10张图片LVS集群_第11张图片

5、调度器配置

LVS集群_第12张图片

(1)修改网卡

LVS集群_第13张图片

(2)添加虚拟网卡

LVS集群_第14张图片

(3)配置地址转换

4配置调度器的VIP地址

LVS集群_第15张图片

(5)打开服务器的转发功能

LVS集群_第16张图片

6、配置客户端、测试

LVS集群_第17张图片LVS集群_第18张图片

你可能感兴趣的:(lvs)