集群(Cluster):根据某种形式把服务器连上去来完成一种特定的任务,提升服务器的响应能力。scaleon在单台主机上提升服务器性能scaleout降低服务器的数目来提升,负载均衡的集群
集群有三种:1LB(LoadBalancing)负载均衡后端有个分发器(Director)负责接收顾客端的恳求分发服务到前端的realserver上(或则Dispatcher都是分发器)2HA(HightAvailability)高可用集群(7x2499.999%;时时在线的提供服务,只有一个在线服务,另外的做备份)3HP(hightPerformance)高性能集群,把任务分片发给集群服务器,之后把结果搜集,估算速率十分快DIrector,(分发器可以通过软件或则硬件实现)靠软件实现的分发器有二种:基于OSI模型四层和七层交换四层交换负载均衡是通过ip+端口转发实现,实现不同的服务访问用LVS软件实现七层交换实现负载均衡,(squid,反向代理)负载均衡技术,须要特定的合同
LVS,:LinuxVirtualServer:开源的负载均衡,作者中国章文嵩,目前在阿里巴巴,首席科学家,LVS是软件形式实现负载均衡,构架类似iptabless/netfilterLVSipvsadm(工具)/ipvs(内核代码)如今的内核都外置了ipvs内核代码,从Linux内核版本2.6起,ip_vscode早已被整合进了内核中,为此linux操作系统简介,只要在编译内核的时侯选择了ipvs的功能,您的Linux即能支持LVS。Linux2.4.23之后的内核版本也整合了ip_vscode,但若果是更旧的内核版本,您得自己自动将ip_vscode整合进内核反码中,并重新编译内核方可使用lvs。
Virtualserver:是后端分发器Realserver:作为前端的主机,真正响应顾客端恳求VIP:VirtualIPaddress向顾客端提供服务的ip地址,临时性的RIP:RealIPaddresss作为集群节点的地址DIP:Director'sIPaddress拿来与directory通讯的ipCIP:Clientcomputer'sIPaddress作为一个顾客端来源来访问集群服务器LVS集群有三种类型:LVS-NAT:LVS地址转换类型,就是目标地址转换集群节点必须在同一个网路中,可以将端口映射到不同端口linux服务器搭建,directory可能成为系统困局,通常工作在负载20台左右的服务器,不能作为小型的服务
LVS-DR:(directoryrouting)直接路由类型,linux集群用的最多的一种DR要求每一个集群节点要与dirctor在同一个网路中,RIP不要求都是私有地址,VIP必须是网段iplinux 集群服务器,接受进来的恳求,对出去的恳求不做管理,Rserver的网段不指向Directory,Directory不能重新映射端口,大多数操作系统都可以做Reserver,但windown不能做,支持更多的主机服务器,管理员可以直接远程对服务器管理.缺点:服务器地址直接面向顾客端,不安全
lVS-TUNLVS隧洞模式;和DR网路模型一样,而且Director和Reserver可以不再同一网关中,可以实现异地容灾的功能.Directory和Reserver通讯是构建一个隧洞,在二台主机直接构建一个管线,RIP不能使用私有地址,不能做端口映射,跟DR一样,只有支持隧洞合同的操作系统能够作为ReserverLVS调度方式,算法10种:当顾客端恳求时,Directory要按照算法把恳求重定向到后台服务器上响应静态的固定算法(不考虑Realserver上实际存活的数量)1Round-robinRR(转储)当一个新的联接恳求抵达时,director只是次序的选择一个下realserver上2WeightedRound-RobinWRR:加权协程linux 集群服务器,给每一个reserver一个权重来确定下一个恳求给谁,权重越大分到恳求越多3DestinationHashingDH(目标散列)相当于DNAT,来自同一个ip的恳求都重定向到同一个Realserver起来,保证目标地址不变4SourcehashingSH(源散列)相当于SNAT,算法恰好与目标地址散列调度算法相反,当来自同一个服务器的响应。
还通过同一个路由器出去响应给顾客端,保证源地址不变,在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的惟一出入口动态调度算法(通过检测服务器当前联接的活动状态决定怎样进行调度)5LC(最少联接)新的联接恳求将被分配至当前联接数最少的RealServer上;最小连接调度是一种动态调度算法,它通过服务器当前所活跃的联接数来恐怕服务器的负载情况。调度器须要记录各个服务器已完善联接的数量,当一个恳求被调度到某台服务器,其联接数加1;当联接终止或超时,其联接数减一6WLC(加权最少联接)在原有的最少联接的基础上给realserver一个权重,是比较理想的算法7SED:最短期望延后,对wlc的改进,8NQ:永不排队,对sed简单改进,还检测当前服务器有没有联接9LBLC:基于本地的最少联接,动态的DH,除了检测是不是请求是不是同一个ip还检测当前有没有联接10LBLCR:带复制的最少联接,对lblc的改进,当第二个realserver上的全部恳求断掉,准许第一个realserver上的恳求复制到第二个realserver上响应,减少第一个realserver上的负担
ipvsadm用法:grep-iip_vs/boot/config-2.6.18-164.e15查看系统内核有没有ipvsyuminstallipvsadm若没有则安装ipvsadm工具ipvsadm是一个工具用于写规则ipvsadm-Lcn查看当前的所有联接,或则cat/proc/net/ip_vs_conn查看虚拟服务和RealServer上当前的联接数数据包数和字节数的统计值,则可以使用下边的命令实现:ipvsadm-l--stats查看包传递速度的近似精确值,可以使用下边的命令:ipvsadm-l--rateipvsadm-Ln查看定义的服务ipvsadm-A定义服务,-a加入realserver–s指定算法–t服务类型–f防火墙标记–rrealserver实际服务器–g或则–m指定lvm类型,-m指定lvm类型为nat,-g指定lvm类型为路由,默认的-i表示隧洞–m指定伪装–w指定权重–E修改算法类型ipvsadm-D删掉服务ipvsadm–d删掉某一个realserveripvsadm-Z清空计数器ipvsadm-C清空规则ipvsadm-S>/root.a.ipvs保存规则到一个位置ipvsadm–S>/etc/sysconfig/ipvs-config=ipvsadm-save保存规则ipvsadm–R
本文转自张玉坡51CTO博客,原文链接: