集群基础知识

 

1.共享存储,前端

      在web1和web2之间有一个NFS服务器,正常web1挂载读写,当web1宕机时,web2挂载读写。但NFS是文件服务器,让2台web服务器读写的效率很低。文件级别共享。这种存储架构叫NAS。
      DAS(Direct Attached Storage—直接链接存储)是指将存储设备经过SCSI接口或光纤通道直接链接到一台计算机上。
     NAS存储是(Network Attached Storage)的简称,中文称为网络附加存储。NAS存储做用相似于一个专用的文件服务器。NAS技术是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不一样主机和应用服务器进行访问的技术。
     SAN是Storage Area Network的缩写,即“存储区域网络”。SAN专一于企业级存储的特有问题。当前企业存储方案所遇到的两个问题是:数据与应用系统紧密结合所产生的结构性限制,以及目前小型计算机系统接口(SCSI)标准的限制。SAN中,存储设备经过专用交换机到一群计算机上。在该网络中提供了多主机链接,容许任何服务器链接到任何存储阵列,让多主机访问存储器和主机间互相访问同样方便,这样无论数据置放在那里,服务器均可直接存取所需的数据。同时,随着存储容量的爆炸性增加,SAN也容许企业独立地增长它们的存储容量。 web

 

三种存储解决方案对比算法

wKiom1MOjzPzvApIAAGMKJjE1Hk635.jpg

 

2.LVS:Linux Virtual Server Linux 虚拟服务器,架构的前端是一台director/load balancer负载均衡器负责转发, 后端是好几台服务器realserver提供服务,director根据Linux内核的补丁代码ipvs调度后端realserver任务。后端

       LVS相似iptables/netfilter两段式管理,管理工具ipvsadm实际执行的内核补丁代码ipvs,ipvadm管理后台每一个realserver的ip地址和提供的服务,director空间分为用户空间和内核空间,用户请求通过网卡进入到内核空间的TCP/IP栈,要通过路由器进行路由,集群服务的定义在ipvs的代码里,ipvs代码识别用户请求是集群服务的话,即便地址指向director本身,也不会转发到本身的用户空间,而是向外转发到对应的realserver ip地址。ipvs只是框架,自己不会转发任何请求,依赖ipvsadm定义的集群服务才能转发。不是ipvs服务的数据包直接丢弃。缓存

 

3.LVS的用途
   1.For higher throughout 更高的吞吐率,大并发
   2.For redundancy 冗余,提供部分高可用,但不彻底是高可用
   3.For adaptability 更灵活适应性,简单地增长或缩减服务器数量就能适应规模的扩张和缩减。服务器

   4.就是一个四层交换机/四层路由器。根据用户请求的ip address+port进行转发。port是在OSI模型的第四层传输层。转发的基础/标准是用户定义的转发调度方法。网络

 

4.LVS专用的地址
  1.Virtual IP(VIP) address: 直接向用户提供服务的,调度器的外网卡地址,
  2.Real IP (RIP) address:后端服务器网卡真实IP地址
  3.Director's IP (DIP) address: 调度器链接realserveer的内网卡地址
  4.Client computer's IP (CIP) address:客户端地址架构

 

5. 3种LVS架构对比并发

类型负载均衡

属性

LVS-NAT(最简单)

网络地址转换

LVS-DR(最经常使用)

直接路由

LVS-TUN

IP隧道

realserver和director是否可在同一网络中

在同一子网中

在同一物理网络中       (基于MAC地址转发)

可在不一样的物理网络中,也能够在不一样的地域

RIP是私有地址仍是公网地址

通常来讲是私有地址

公网地址

必定不是私有地址

director是否同时处理入站和出站数据

同时处理入站和出站数据

只处理入站请求

只处理入站请求

realserver的网关是否指向DIP

realserver的网关指向DIP

realserver的网关不能指向DIP

realserver的网关不能指向DIP

是否支持端口映射

支持端口映射

不支持端口映射

不支持端口映射

realserver是否能够是任意操做系统

能够是任意的OS

能够是大多数的操做系统(OS支持一个网卡配置多个IP,隔离realserver广播)

仅但是那些支持IP隧道协议的OS

其余方面

director很容易成为系统瓶颈

性能优于LVS-NAT

 

6. 3种LVS 架构图

wKioL1MOkyiAPReeAANGK15gTEc972.jpg

图一:LVS-NAT 模型

 玩笑1:NAT就像中国大妈CIP好不容易出国,在外国专卖店VIP专挑奢侈品买LV包,海关Director报高档税,结果回家一看,全都made in China.

wKioL1MOlYnAwc63AARlxPDoLzo292.jpg

图二:LVS-DR模型

玩笑2:中国大妈CIP跑到外国买达芬奇家具,老外忽悠大妈说原产地绝对是佛罗伦萨VIP,结果原产地是东莞DIP,在海关作个地址假装,直接从东莞发货。

wKioL1MOmGaggXGpAATxDlnf36c654.jpg

图三:LVS-TUN 模型

玩笑3:中国大妈总代CIP跑到新西兰团购VIP全国的奶粉,用IPTUNNEL集装箱滚装船往回运,出了海关Director再用快递ROUTER分发到全国各地。

 

7.Director的调度算法 LVS Scheduling Methods

Fixed Scheduling固定调度:Director在选取下一个realserver时,不会考虑那个realserver自己有多少个链接个数和链接状态,仅仅按调度算法断定和分配。

     1.轮叫调度(Round Robin(简称rr)

    调度器经过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而无论服务器上实际的链接数和系统负载。

     2.加权轮叫(Weighted Round Robin)(简称wrr)

   调度器经过“加权轮叫”调度算法根据真实服务器的不一样处理能力来调度访问请求。这样能够保证处理能力强的服务器能处理更多的访问流量。调度器能够自动问询真实服务器的负载状况,并动态地调整其权值。

    计算负载overhead’ =(活跃个数 * 256+非活跃个数) / 权重,谁的负载小谁优先。

    3.目标地址散列(Destination Hashing(DH)

“目标地址散列”调度算法根据请求的目标IP地址,做为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,不然返回空。对同一个服务器IP的访问原路返回,有助于提升Squid代理的缓存命中率。

    4.源地址散列(Source Hashing(SH)

  “源地址散列”调度算法根据请求的源IP地址,做为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,不然返回空。在一个网络中有多个网络出口(防火墙或路由器),来自于同一个客户端IP的访问原路返回,有助于监控/防火墙得到状态值。

       Dynamic Scheduling动态调度:相反。Director在选取下一个realserver时,考虑那个realserver自己有多少个活跃链接个数和链接状态Established,甚至多少个非活跃的链接(发起过链接但如今非Established),以此做为标准按调度算法断定和分配,越空闲越优先。

     1.最少连接(Least Connections(LC)

调度器经过“最少链接”调度算法动态地将网络请求调度到已创建的连接数最少的服务器上。若是集群系统的真实服务器具备相近的系统性能,采用“最小链接”调度算法能够较好地均衡负载。

    每当新链接进入,Director查看每一个realserver的活跃链接数和非活跃链接数,

    计算负载overhead= 活跃个数 * 256+非活跃个数。

    2.加权最少连接(Weighted Least Connections(WLC)

    在集群系统中的服务器性能差别较大的状况下,调度器采用“加权最少连接”调度算法优化负载均衡性能,具备较高权值的服务器将承受较大比例的活动链接负载。调度器能够自动问询真实服务器的负载状况,并动态地调整其权值。

    3.基于局部性的最少连接(Locality-Based Least Connections(LBLC)

   “基于局部性的最少连接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工做负载,则用“最少连接”的原则选出一个可用的服务器,将请求发送到该服务器。

     4.带复制的基于局部性最少连接(Locality-Based Least Connections with Replication(LBLCR)

“带复制的基于局部性最少连接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不一样之处是LBLCR要维护从一个目标 IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小链接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小链接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以下降复制的程度。

按“最小链接”原则选中的缓存服务器没有用户请求的内容就去查找临近的兄弟、父子服务器去复制来内容,依靠ICP (Internet Cache Protocol) Internet缓存协议。

     5. 最短的指望的延迟(Shortest Expected Delay Scheduling SED(SED)

     基于wlc算法。这个必须举例来讲了

       ABC三台机器分别权重123 ,链接数也分别是123。那么若是使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算

A(1+1)/1

B(1+2)/2

C(1+3)/3

根据运算结果,把链接交给

    再也不考虑非活动链接个数,负载overhead = ( 当前活跃链接数 + 1 ) *256 / 权重,当初始负载值为零,选择权重值大的服务器作响应,但当前活跃链接数相同时,(0+1/3和(0+1/1 就不一致了。谁的负载小谁优先。但权重设置差异过大会引发全部链接指向权重大的本机愈来愈忙,权重小的反而愈来愈空。

     6.最少队列调度(Never Queue Scheduling NQ(NQ)

   无需队列。若是有台 realserver的链接数=0就直接分配过去,不须要在进行sed运算

相关文章
相关标签/搜索