华子目录
LVS前言
集群
与分布式
系统性能扩展
- Scale UP:向上扩展,
加硬件
增强 - Scale Out:向外扩展,
加设备
增强,但是需要注意调度流量的分配问题
,Cluster集群
集群cluster
Cluster
:集群
,是为了解决某个特定问题将服务器
组合起来形成的单个系统
Cluster
常见的三种类型:
-
LB
:LoadBalancing
(负载均衡
)由多个主机
组成,每个主机只承担一部分访问
-
HA
:High Availiablity
(高可用
)SPOF(single Point Of failure
)(单点失效
)MTBF
:Mean Time Between Failure
平均无故障时间
,正常时间
MTTR
:Mean Time To Restoration
(repair
)平均恢复前时间
,故障时间
A=MTBF/(MTBF+MTTR)
属于(0,1)
:99%, 99.5%, 99.9%, 99.99%, 99.999%
,A的值越高,服务器性能越好
-
HPC
:High-performance computing
(高性能计算
,国家战略资源,不在课程范围内)
分布式
- 分布式
存储
:Ceph,GlusterFs,FastDFS,MogileFs
- 分布式
计算
:hadoop,Spark
分布式常见应用
- 分布式应用:服务按照
功能
拆分,使用微服务
- 分布式静态资源:静态资源放在不同的存储集群上
- 分布式数据和存储:使用key-value缓存系统
- 分布式计算:对特殊业务使用分布式计算,比如Hadoop集群
集群与分布式的区别
- 集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的
- 分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务
- 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率
- 对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败。
LVS
(Linux virtual server
)
lvs
简介
LVS
:Linux Virtual Server
,负载调度器
,linux内核集成
,由中国章文嵩
创作,阿里的四层SLB
(Server LoadBalance
)是基于LVS+keepalived
实现LVS
官网: http://www.linuxvirtualserver.org/
lvs
相关术语
VS
:Virtual Server
,负责调度
的lvs
服务器RS
:RealServer
,负责真正提供服务
的服务器CIP
:Client IP
,客户端的ipVIP
:Virtual serve IP
lvs调度器外网的ipDIP
:Director IP
lvs调度器内网的ipRIP
:Real server IP
真正提供服务的服务器ip
流量访问流程
- 来时流量:
CIP --> VIP == DIP --> RIP
- 回时流量:
CIP <-- VIP == DIP <-- RIP
lvs集群体系架构
工作原理
VS
根据请求报文
的目标IP
和目标协议及端口
将其调度转发
至某RS
上,VS
会根据调度算法
来挑选RS
lvs集群的类型
- lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
- lvs-dr:操纵封装新的MAC地址
- lvs-tun:在原请求IP报文之外新加一个IP首部
- lvs-fullnat:修改请求报文的源和目标IP
lvs-nat
lvs-dr
lvs-tun
lvs-fullnat(了解)
lvs的调度算法
lvs调度算法类型
ipvs scheduler
调度器:根据其调度
时是否考虑
各RS
当前的负载状态
被分为两种
:静态方法
和动态方法
静态方法
:仅根据算法本身进行调度,不考虑RS
的负载情况动态方法
:主要根据每台RS
当前的负载状态
及调度算法
进行调度overhead value
负载值较小
的RS将被调度
lvs静态调度算法
rr
:roundrobin
轮询RS
分别被调度,当RS
配置有差别时不推荐
wrr
:Weighted RR
,加权轮询
,根据RS
的配置进行加权调度
,性能差
的RS
被调度
的次数少
sh
:Source Hashing
,源地址哈希
,实现(session sticky
)会话绑定
,对源IP地址进行hash
;将来自于同一个IP地址的请求
始终发往第一次挑中的RS
,从而实现会话绑定
dh
:Destination Hashing
;目标地址哈希
,第一次轮询调度至RS
,后续将发往同一个目标地址
的请求
始终转发至第一次挑中的RS
,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商
lvs动态调度算法
主要根据RS
当前的负载状态
及调度算法
进行调度,Overhead value
负载值较小
的RS会被调度
lvs部署命令介绍
lvs软件相关信息
- 程序包:
ipvsadm
- 服务名:
ipvsadm.service
- 主程序:
/usr/sbin/ipvsadm
- 规则保存工具:
/usr/sbin/ipvsadm-save
- 规则重载工具:
/usr/sbin/ipvsadm-restore
- 配置文件:
/etc/sysconfig/ipvsadm-config
ipvs
调度规则文件:/etc/sysconfig/ipvsadm
ipvsadm命令
核心功能:
- 集群
服务管理
:增、删、改
- 集群服务的
RS管理
:增、删、改
规则查看
lvs集群中的增删改
管理集群服务中的增删改
[root@lvs ~]# ipvsadm -A|E -t|u|f VIP [-s scheduler] [-p [timeout]]
参数 | 说明 |
---|---|
-A | 添加 |
-E | 修改 |
-t | tcp服务 |
-u | udp服务 |
-s | 指定调度算法,默认为WLC |
-p | 设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver |
-f | firewall mask 火墙标记,是一个数字 |
实例
管理集群中RealServer的增删改
[root@lvs ~]# ipvsadm -a|e -t|u|f VIP:port -r RIP:port [-g|i|m] [-w weight]
参数 | 说明 |
---|---|
-a | 添加real server |
-e | 更改real server |
-t | tcp协议 |
-u | udp协议 |
-f | 防火墙标签 |
-r | real server地址 |
-g | 直连路由模式 |
-i | ip隧道模式 |
-m | nat模式 |
-w | 设置权重 |
-z | 清空计数器 |
-C | 清空lvs策略 |
-L | 查看lvs策略 |
-n | 不做解析 |
--rate | 输出速率信息 |