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
三种存储解决方案对比算法
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 架构图
图一:LVS-NAT 模型
玩笑1:NAT就像中国大妈CIP好不容易出国,在外国专卖店VIP专挑奢侈品买LV包,海关Director报高档税,结果回家一看,全都made in China.
图二:LVS-DR模型
玩笑2:中国大妈CIP跑到外国买达芬奇家具,老外忽悠大妈说原产地绝对是佛罗伦萨VIP,结果原产地是东莞DIP,在海关作个地址假装,直接从东莞发货。
图三: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
根据运算结果,把链接交给C 。
再也不考虑非活动链接个数,负载overhead = ( 当前活跃链接数 + 1 ) *256 / 权重,当初始负载值为零,选择权重值大的服务器作响应,但当前活跃链接数相同时,(0+1)/3和(0+1)/1 就不一致了。谁的负载小谁优先。但权重设置差异过大会引发全部链接指向权重大的本机愈来愈忙,权重小的反而愈来愈空。
6.最少队列调度(Never Queue Scheduling NQ)(NQ)
无需队列。若是有台 realserver的链接数=0就直接分配过去,不须要在进行sed运算