一篇精通LVS

LVS前言

集群分布式

系统性能扩展

  • Scale UP:向上扩展,加硬件增强
  • Scale Out:向外扩展,加设备增强,但是需要注意调度流量的分配问题Cluster集群

集群cluster

  • Cluster: 集群,是为了解决某个特定问题将服务器组合起来形成的单个系统
Cluster常见的三种类型:
  • LBLoadBalancing负载均衡)由多个主机组成,每个主机只承担一部分访问

  • HAHigh Availiablity高可用)SPOF(single Point Of failure)(单点失效)

    • MTBFMean Time Between Failure 平均无故障时间正常时间
    • MTTRMean Time To Restorationrepair平均恢复前时间故障时间
    • A=MTBF/(MTBF+MTTR)属于 (0,1)99%, 99.5%, 99.9%, 99.99%, 99.999%,A的值越高,服务器性能越好
  • HPCHigh-performance computing高性能计算,国家战略资源,不在课程范围内)

分布式

  • 分布式存储Ceph,GlusterFs,FastDFS,MogileFs
  • 分布式计算hadoop,Spark
分布式常见应用
  • 分布式应用:服务按照功能拆分,使用微服务
  • 分布式静态资源:静态资源放在不同的存储集群上
  • 分布式数据和存储:使用key-value缓存系统
  • 分布式计算:对特殊业务使用分布式计算,比如Hadoop集群

集群与分布式的区别

  • 集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据和代码都是一样的
  • 分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起来,才是完整的业务
  • 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率
  • 对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败。

LVSLinux virtual server

lvs简介

  • LVSLinux Virtual Server负载调度器linux内核集成,由中国章文嵩创作,阿里的四层SLB(Server LoadBalance)是基于LVS+keepalived实现
  • LVS官网: http://www.linuxvirtualserver.org/

lvs相关术语

  • VSVirtual Server负责调度lvs服务器
  • RSRealServer负责真正提供服务的服务器
  • CIPClient IP,客户端的ip
  • VIPVirtual serve IP lvs调度器外网的ip
  • DIPDirector IP lvs调度器内网的ip
  • RIPReal 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静态调度算法

  • rrroundrobin 轮询RS分别被调度,当RS配置有差别时不推荐
  • wrrWeighted RR加权轮询,根据RS的配置进行加权调度性能差RS调度次数少
  • shSource Hashing源地址哈希,实现(session sticky)会话绑定,对源IP地址进行hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
  • dhDestination 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修改
-ttcp服务
-uudp服务
-s指定调度算法,默认为WLC
-p设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver
-ffirewall 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
-ttcp协议
-uudp协议
-f防火墙标签
-rreal server地址
-g直连路由模式
-iip隧道模式
-mnat模式
-w设置权重
-z清空计数器
-C清空lvs策略
-L查看lvs策略
-n不做解析
--rate输出速率信息
  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^~^前行者~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值