zoukankan      html  css  js  c++  java
  • 服务器集群

    目录

    集群

    LVS

    LVS-NAT  

    LVS-DR 

    LVS-TUN

    LVS的调度算法


    集群

    计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。 集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。 集群计算机通常用来改进单个计算机的计算速度和可靠性。 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务。

    为什么要使用集群?

    • 高性能performance:一些需要很强的运算处理能力比如天气预报,核试验等。这就不是几台计算机能够搞定的。这需要上千台一起来完成这个工作的
    • 价格有效性:通常一套系统集群架构,只需要几台或数十台服务器主机即可,与动则上百万的专用超级计算机相比具有更高的性价比
    • 可伸缩性: 当服务器负载压力增长的时候,系统能够扩展来满足需求,且不降低服务质量 
    • 高可用性: 尽管部分硬件和软件发生故障,整个系统的服务必须是7*24小时运行的

    集群分类:

    • 负载均衡集群(Loadbalancingclusters)简称LBC 
    • 高可用性集群(High-availabilityclusters)简称HAC 
    • 高性能计算集群(High-perfomanceclusters)简称HPC 
    • 网格计算(Gridcomputing)

    负责均衡集群的作用:

    • 提供一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载带宽、增加吞吐量,加强网络数据处理能力、提高网络的灵活性和可用性
    • 把单台计算机无法承受的大规模的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,提升用户体验
    • 单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高
    • 7*24小时的服务保证,任意一个或多个设备节点设备宕机,不会影响到业务。在负载均衡集群中,所有计算机节点都应该提供相同的服务,集群负载均衡获取所有对该服务的如站请求

    负载均衡设备:

    • 常用的负载均衡开源软件有 Nginx、LVS、Haproxy
    • 商业的硬件负载均衡设备Cisco的 LocalDirector、F5 的 Big/IP 和  Alteon 的 ACEDirector

    LVS

    LVS (Linux Virtual Server) 即 Linux 虚拟服务器,将多台虚拟主机组织起来满足同一个需求。是一个虚拟的服务器集群系统。本项目在 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。 LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为 调度层、Server集群层 和 共享存储。

    LVS的组成

    • ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
    • ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)

    LVS相关术语

    • DS:Director Server。指的是前端负载均衡器节点。
    • RS:Real Server。后端真实的工作服务器。
    • VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
    • DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
    • RIP:Real Server IP,后端服务器的IP地址。
    • CIP:Client IP,访问客户端的IP地址。

    LVS的工作原理

    LVS的工作模式

    • LVS/NAT模式(Network address translation)
    • LVS/TUN模式(tunneling)
    • LVS/ DR模式(Direct routing) 

    LVS-NAT  

    LVS-NAT原理和特点

    LVS-NAT模型的特性

    • RS应该使用私有地址,RS的网关必须指向DIP 
    • DIP和RIP必须在同一个网段内 
    • 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈 
    • 支持端口映射 
    • RS可以使用任意操作系统 
    • 缺陷:对Director Server压力会比较大,请求和响应都需经过director server 

    LVS-DR 

    LVS-DR的原理和特点

    LVS-DR的模型和特性

    • 保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS
    • RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问
    • RS跟Director Server必须在同一个物理网络中
    • 所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
    • 不支持地址转换,也不支持端口映射    
    • RS可以是大多数常见的操作系统
    • RS的网关绝不允许指向DIP(因为我们不允许他经过director)
    • RS上的lo接口配置VIP的IP地址
    • 缺陷:RS和DS必须在同一机房中 

    LVS-TUN

    LVS-TUN的原理和特点 

    LVS-TUN模型特性

    • RIP、VIP、DIP全是公网地址
    • RS的网关不会也不可能指向DIP
    • 所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
    • 不支持端口映射
    • RS的系统必须支持隧道

    LVS的调度算法

    针对不同的网络服务需求和服务器配置,IPVS调度器实现了如下八种负载调度算法:
    1、轮叫(Round Robin)简称RR
    这种算法是最简单的,就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的,调度器会将所有的请求平均分配给每个真实服务器,不管后端 RS 配置和处理能力,非常均衡地分发下去
    2、加权轮叫(Weighted Round Robin) 简称WRR
    这种算法比 rr 的算法多了一个权重的概念,可以给 RS 设置权重,权重越高,那么分发的请求数越多,权重的取值范围 0 – 100。主要是对rr算法的一种优化和补充, LVS 会考虑每台服务器的性能,并给每台服务器添加要给权值,如果服务器A的权值为1,服务器B的权值为2,则调度到服务器B的请求会是服务器A的2倍。权值越高的服务器,处理的请求越多
    3、最少链接(Least Connections)简称LC
    这个算法会根据后端 RS 的连接数来决定把请求分发给谁,比如 RS1 连接数比 RS2 连接数少,那么请求就优先发给 RS1
    4、加权最少链接(Weighted Least Connections)简称WLC
    这个算法比 lc 多了一个权重的概念。
    5、基于局部性的最少链接(Locality-Based Least Connections)简称LBLC
    这个算法是请求数据包的目标 IP 地址的一种调度算法,该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器
    6、带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)简称LBLCR
    记录的不是要给目标 IP 与一台服务器之间的连接记录,它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。
    7、目标地址散列调度(Destination Hashing)简称DH
    该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器
    8、源地址散列调度(Source Hashing)简称SH
    与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源

  • 相关阅读:
    为sublime text2 添加SASS语法高亮
    下拉框点链接js
    [JavaScript] 初中级Javascript程序员必修学习目录
    判断页数及切换
    切换加上延迟加载js代码
    jquery 简单弹出层(转)
    左右滑动删除ListView条目Item--第三方开源--SwipeToDismiss
    使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
    从一个URL下载原始数据,基于byte字节,得到byte数组
    动画气泡指示当前滑动值--第三方开源--DiscreteSeekbar
  • 原文地址:https://www.cnblogs.com/csnd/p/11807986.html
Copyright © 2011-2022 走看看