如何实现服务器均衡负载技术。 (服务器均衡负载技术)

如何实现服务器均衡负载技术

在当今互联网时代,服务器的负载问题是网站运营中不可避免的问题。俗话说得好,“物极必反”,也就是说,一个服务器在负载量达到一定程度时,它的性能也会受到相应的影响。因此,为了让网站能够保持高性能和可用性,实现服务器的均衡负载技术是非常重要的。

什么是均衡负载技术?

均衡负载技术是指通过对多个服务器之间的请求分配,以实现对服务器的负载平衡的一种技术。这种技术可以大大提高服务器的性能和可用性,并且对系统的健壮性有着很好的保障。

如何实现服务器均衡负载技术?

1. 硬件均衡负载技术

硬件均衡负载技术是通过硬件来实现对服务器的负载平衡的。这种技术的特点是:能够处理大量的请求,而且有着非常高的性能和可用性。硬件均衡负载技术可以通过以下两个方面来实现:

(1)硬件负载均衡器

硬件负载均衡器是一种特殊的网络设备,它能够将所有请求分配到不同的服务器上去,并且还能够根据不同的请求类型进行优化处理。硬件负载均衡器的优点是:具有强大的处理能力,能够承载大量的流量,并且有着非常高的性能和可用性。不过,硬件负载均衡器的价格相对较高,对于一些小型网站可能不太适用。

(2)交换机负载均衡

交换机负载均衡是通过交换机来实现对服务器的负载平衡的。这种技术的特点是:价格相对较低,实现起来比较简单,但是其处理能力和可用性都不如硬件负载均衡器。这种技术主要适用于小型网站和初创公司中。

2. 软件均衡负载技术

软件均衡负载技术是通过软件来实现对服务器的负载平衡。这种技术的特点是:便宜,易于实现和维护,对大多数网站和企业来说非常适用。软件均衡负载技术可以通过以下两种方式来实现:

(1)DNS负载均衡

DNS(域名系统)负载均衡是通过 DNS 服务器来实现对服务器的负载平衡。具体来说,每个 DNS 服务器都会将请求分配到不同的 IP 地址上去,从而实现负载均衡。不过,这种技术比较简单,不能对不同的请求类型进行优化,服务器的负载平衡效果也相对较差。

(2)软件负载均衡器

软件负载均衡器是通过软件程序来实现对服务器的负载平衡。这种技术的主要优点是:价格便宜,易于实现和维护。一些软件负载均衡器,如 LVS、Nginx 等,已经得到了广泛应用,并且在大型网站和企业中得到了广泛使用。

在实现服务器的均衡负载技术时,需要根据网站自身的特点选择适合的方案。对于大型网站和企业来说,硬件负载均衡器是比较好的选择;对于小型网站和初创公司来说,软件负载均衡器是比较好的选择。无论采用哪种方式,建立负载均衡的基础是可用性和可靠性。只有在这些条件的保障下,才能保证网站的平稳运行和用户的体验。

相关问题拓展阅读:

如何配置Web服务器实现负载均衡

网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。

以四台服务器为例实现负载均衡:

安装配置LVS

1. 安装前准备:

(1)首先说明,LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载状况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表:

Srv Eth0 Eth0:0 Eth1 Eth1:0

vs1 10.0.0.1 10.0.0.2 192.168.10.1 192.168.10.254

vak 10.0.0.3 192.168.10.102

real1 192.168.10.100

real2 192.168.10.101

其中,10.0.0.2是允许用户访问的IP。

(2)这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的real1,real2,然后由real1,real2分别处理。

Client为客户端测试机器,可以为任意操作系统。

(3)所有OS为redhat6.2,其中vs1 和vak 的核心是2.2.19, 而且patch过ipvs的包, 所有real

server的Subnet mask 都是24位, vs1和vak 的10.0.0. 网段是24 位。

2.理解LVS中的相关术语

(1) ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。

(2) 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr;weighted

Round-robin,简称wrr;每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc;weighted

Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。

(3) Persistent client

connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,之一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有25%的Internet

可能具有相同的IP地址。

(4) Persistent port

connection调度算法:在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、

wrr、lc、wlc具备pcc的属性)。在设置时,如果你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port

connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。

(5)Load Node Feature of Linux Director:让Load balancer 也可以处理users 请求。

(6)IPVS connection synchronization。

(7)ARP Problem of LVS/TUN and LVS/DR:这个问题只在LVS/DR,LVS/TUN 时存在。

3. 配置实例

(1) 需要的软件包和包的安装:

I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster设定工具);

II. piranha-0.4.12-2*.rpm;

III. ipchains-1.3.9-6lp*.rpm (架设NAT)。

取得套件或mount到光盘,进入RPMS目录进行安装:

# rpm -Uvh piranha*

# rpm -Uvh ipchains*

(2) real server群:

真正提供服务的server(如web

server),在NAT形式下是以内部虚拟网域的形式,设定如同一般虚拟网域中Client端使用网域:192.168.10.0/24

架设方式同一般使用虚拟IP之局域网络。

a. 设网卡IP

real1 :192.168.10.100/24

real2 :192.168.10.101/24

b.每台server均将default gateway指向192.168.10.254。

192.168.10.254为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server 。

c.每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real

server读取网页的情形。

d.每台server都开启rstatd、sshd、rwalld、ruser、rsh、rsync,并且从Vserver上面拿到相同的lvs.conf文件。

(3) virtual server:

作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重。

a.IP设置:

对外eth0:IP:10.0.0.1 eth0:0 :10.0.0.2

对内eth1:192.168.10.1 eth1:0 :192.168.10.254

NAT形式下仅virtual server有真实IP,real server群则为透过virtual server.

b.设定NAT功能

# echo 1 >; /proc/sys/net/ipv4/ip_forward

# echo 1 >; /proc/sys/net/ipv4/ip_always_defrag

# ipchains -P forward MASQ

c.设定piranha 进入X-window中 (也可以直接编辑/etc/lvs.cf )

a).执行面板系统piranha

b).设定“整体配置”(Global Settings) 主LVS服务器主机IP:10.0.0.2, 选定网络地址翻译(预设) NAT路径名称:

192.168.10.254, NAT 路径装置: eth1:0

c).设定虚拟服务器(Virtual Servers) 添加编辑虚拟服务器部分:(Virtual

Server)名称:(任意取名);应用:http;协议: tcp;连接:80; 重入时间:180

(预设);服务延时:10 (预设);加载监控工具:ruptime (预设);调度策略:Weighted least-connections; 持续性:0

(预设); 持续性屏蔽: 255.255.255.255 (预设); 按下激活:实时服务器部分:(Real Servers); 添加编辑:名字:(任意取名);

地址: 192.168.10.100; 权重:1 (预设) 按下激活

另一架real server同上,

d). 控制/监控(Controls/Monitoring)

控制:piranha功能的激活与停止,上述内容设定完成后即可按开始键激活piranha.监控器:显示ipvsadm设定之routing table内容

可立即更新或定时更新。

(4)备援主机的设定(HA)

单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual

server的故障而使对外服务工作终止;备份主机随时处于预备状态与virtual server相互侦测

a.备份主机:

eth0: IP 10.0.0.3

eth1: IP 192.168.10.102 同样需安装piranha,ipvsadm,ipchains等套件

b.开启NAT功能(同上面所述)。

c.在virtual server(10.0.0.2)主机上设定。

a).执行piranha冗余度 ;

b).按下“激活冗余度”;

冗余LVS服务器IP: 10.0.0.3;HEARTBEAT间隔(秒数): 2 (预设)

假定在…秒后进入DEAD状态: 5 (预设); HEARTBEAT连接埠: 539 (预设)

c).按下“套用”;

d).至“控制/监控”页,按下“在当前执行层添加PULSE DEAMON” ,按下“开始”;

e).在监控器按下“自动更新”,这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real

server联机情形,若real server故障,该主机亦会从监视窗口中消失。

d.激活备份主机之pulse daemon (执行# /etc/rc.d/init.d/pulse start)。

至此,HA功能已经激活,备份主机及virtual server由pulse daemon定时相互探询,一但virtual

server故障,备份主机立刻激活代替;至virtual server 正常上线后随即将工作交还virtual server。

LVS测试

经过了上面的配置步骤,现在可以测试LVS了,步骤如下:

1. 分别在vs1,real1,real2上运行/etc/lvs/rc.lvs_dr。注意,real1,real2上面的/etc/lvs

目录是vs2输出的。如果您的NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到real1,real2上,然后分别运行。确保real1,real2上面的apache已经启动并且允许telnet。

2. 测试Telnet:从client运行telnet 10.0.0.2,

如果登录后看到如下输出就说明集群已经开始工作了:(假设以guest用户身份登录)

$——说明已经登录到服务器real1上。

再开启一个telnet窗口,登录后会发现系统提示变为:

$——说明已经登录到服务器real2上。

3. 测试http:从client运行iexplore

因为在real1 和real2 上面的测试页不同,所以登录几次之后,显示出的页面也会有所不同,这样说明real server 已经在正常工作了。

服务器均衡负载技术的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于服务器均衡负载技术,如何实现服务器均衡负载技术。,如何配置Web服务器实现负载均衡的信息别忘了在本站进行查找喔。


数据运维技术 » 如何实现服务器均衡负载技术。 (服务器均衡负载技术)