《利用集群技术实现web服务器的负载均衡 集群和负载均衡的概念文库》由会员分享,可在线阅读,更多相关《利用集群技术实现web服务器的负载均衡 集群和负载均衡的概念文库(7页珍藏版)》请在金锄头文库上搜索。
1、利用集群技术实现利用集群技术实现 WebWeb 服务器的负载均衡服务器的负载均衡 集群和负载均衡的概念文集群和负载均衡的概念文库库集群和负载均衡的概念 集群(Cluster) 所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 负载均衡(Load Balance) 网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,
2、提高了网络的灵活性和可用性。 特点 (1)高可靠性(HA) 。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。 (2)高性能计算(HP) 。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。 (3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。 LVS 系统结构与特点 1. Linux Virtual Server:简称 LVS。是由中国一个 Linux 程序员章文嵩博士发起和领导的,基于 L
3、inux 系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的体系。许多商业的集群产品,比如 RedHat 的Piranha、Turbo Linux 公司的 Turbo Cluster 等,都是基于 LVS 的核心代码的。 2. 体系结构:使用 LVS 架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的 LAN 或分布在各地的 WAN 相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一 IP 地址的虚拟服务器。 3. LVS 的三种模式工作原理和优缺
4、点: Linux Virtual Server 主要是在负载均衡器上实现的,负载均衡器是一台加了 LVS Patch 的 22x 版内核的 Linux 系统。LVS Patch 可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。 负载均衡器可以运行在以下三种模式下: (1)Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法 IP 地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省 IP 地址,能对内部进
5、行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。 (2)Virtual Server via IP Tunneling (VS-TUN):用 IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将 IP 包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的 VPN,也可使用租用专线。 集群所能提供的服务是基于 TCP/IP 的 Web 服务、Mail 服务、News服务、DNS 服务、Proxy 服务器等等 (3)Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算
6、机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。 以四台服务器为例实现负载均衡: 安装配置 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 vsbak 10.0.0.3 192.168.10.10
7、2 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 和 vsbak 的核心是2.2.19, 而且 patch 过 ipvs 的包, 所有 real server 的 Subnet mask 都是 24 位, vs1 和 vsb
8、ak 的 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,简称
9、pcc, (持续的客户端连接,内核 2.2.10 版以后才支持) 。所有来自同一个 IP 的客户端将一直连接到同一个物理服务器。超时时间被设置为 360 秒。Pcc是为 https 和 cookie 服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有 25的 Internet 可能具有相同的 IP 地址。 (4) Persistent port connection 调度算法:在内核2212 版以后,pcc 功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演
10、变成为了一个开关选项(你可以让 rr、 wrr、lc、wlc 具备 pcc 的属性) 。在设置时,如果你没有选择调度算法时,ipvsadm 将默认为 wlc 算法。 在 Persistent port connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的 80 端口与 443 端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用 cookies 时将出问题,因为 http 是使用 80 端口,然而 cookies 需要使用 443 端口,这种方法下,很可能会出现 cookies 不正常的情况。 (5)Load Node Feature of
11、 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-0412-2*rpm (GUI 接口 cluster 设定工具); II piranha-0412-2*rpm; III ipchains-139-6lp*rpm (架设 NAT)。 取得套件或 mount 到光盘,进入 RPM
12、S 目录进行安装: # 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
13、.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: 作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但
14、因为在 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 forwar
15、d 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;地址:10.0.0.2;装置:eth0:0; 重入时间:180
16、 (预设);服务延时:10 (预设);加载监控工具:ruptime (预设);调度策略:Weighted least-connections; 持续性:0 (预设);持续性屏蔽:255.255.255.255 (预设); 按下激活:实时服务器部分:(Real Servers); 添加编辑:名字:(任意取名); 地址:192.168.10.100; 权重:1 (预设) 按下激活 另一架 real server 同上,地址:192.168.10.101。 d). 控制/监控(Controls/Monitoring) 控制:piranha 功能的激活与停止,上述内容设定完成后即可按开始键激活 piranha监控器:显示 ipvsadm 设定之 routing table 内容 可立即更新或定时更新。 (4)备援主机的设定(HA) 单一 virtual server 的 cluster 架构 virtual server 负担