企业级网络服务平台的搭建

上传人:d****1 文档编号:189697630 上传时间:2023-02-23 格式:DOCX 页数:30 大小:416.47KB
返回 下载 相关 举报
企业级网络服务平台的搭建_第1页
第1页 / 共30页
企业级网络服务平台的搭建_第2页
第2页 / 共30页
企业级网络服务平台的搭建_第3页
第3页 / 共30页
点击查看更多>>
资源描述
宣城职业技术学院毕业设计(论文)企业级网络服务平台的搭建黄亚会班 级09计算机网络技术班专 业计算机网络技术教学系 信息工程系指导老师刘训星焦小平完成时间2011年10月9日至2011年11月20日目_录一、前言3(一)选题的背景与意义3(二)国内外的研究现状4二、高可用集群5(一)集群的定义5(二)集群的分类5(三)高可用集群架构5(四)常用架构模型7(五)高可用集群的设计及实现7(六)主服务器的设置8(七)从服务器的设置9(八)测试效果10三、LINUX虚拟服务器集群10(一)负载均衡架构10(二)LINUX VIRTUAL SERVER11(三)LVS-NAT12(四)LVS-NAT集群的设计及实现13(五)LVS-DR集群架构的设计与实现及测试结果14(六)LVS-TUN17(七)LVS持久性18四、LVS+HEARTBEAT构建高并发、高可用集群22(一)LVS + HEARTBEAT三层架构的设计22(二)LVS + HEARTBEAT三层架构的实现23(三)Primary/Standby 实现高可用24(四)结果验证27【结束语】28【参考文献】29企业级网络服务平台的搭建宣城职业技术学院09网络(2 )班设计方案【摘要】当今计算机技术已经进入以网络为中心的时代。互联网的高速发展,用户数量及网 络流量的迅速增长使得越来越多服务器显得负担沉重,对网络服务器的可扩展性和可用 性提出了更高的要求。简单的提高硬件性能并不能真正解决这个问题。为此,必须采用 多服务器和负载均衡技术才能满足大量并发访问的需要。集群技术就是将多台计算机组 织起来进行协同工作来模拟一台功能更强大的服务器的技术。本文首先对现有服务器集群系统的技术进行了分析,介绍了几个典型的集群系统, 重点讨论了负载均衡集群(LVS)和高可用集群(HA)的工作原理和实现技术。然后将负 载均衡集群和高可用集群整合在一起,结合Linux NFS共享存储技术实现了三层构架 的WWW服务器集群,以较低的价格达到了昂贵的商业硬件存储解决方案所实现的效 果。因此,本系统的意义在于,为企业提供一个高可用、高并发、易于扩展的廉价的解决方案。【关键字】Linux;负载均衡集群;高可用集群、前言(一)选题的背景与意义当今计算机技术已进入以网络为中心的计算时代。由于客户/服务器模型的简单性、易 管理性和易维护性,客户/服务器计算模式在网上被大量采用。在九十年代中期,万维网(Worldwide Web)的出现以其简单操作方式将图文并茂的网上信息带给普通大众,Web正 在从一种内容发送机制成为一种服务平台,大量的服务和应用(如新闻服务、网上银行、电 子商务等)都是围绕着Web进行。这促进Internet用户剧烈增长和Internet流量爆炸式地 增长。大部分网站都需要提供每天24小时、每星期7天的服务,对电子商务等网站尤为突出, 任何服务中断和关键性的数据丢失都会造成直接的商业损失。例如,根据阿里巴巴发布的信 息显示,其旗下的淘宝网2010年交易额达4000亿元人民币,一个小时的服务中断都会造成 巨大的损失。所以,这对网络服务的可靠性提出了越来越高的要求。现在Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能有较 高要求。未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等,需要服务 器具有更强的CPU和I/O处理能力。例如,通过HTTPS(Secure HTTP)取一个静态页面需要 的处理性能比通过HTTP的高一个数量级,HTTPS正在被电子商务站点广为使用。所以,网 络流量并不能说明全部问题,要考虑到应用本身的发展也需要越来 越强的处理性能。(二)国内外的研究现状九十年代末期,Linux操作系统不断走向成熟,它的功能性不断增强,并且提供7GNU 软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通PC机上提供了对高性能网 络的支持,这样就大大推动了基于Linux的集群系统的发展。在国内,包括中国科学院在内的 许多大学与研究机构早在20世纪90年代就开始了基于Linux集群研究,联想、浪潮等国内许多 公司都有Linux集群产品和解决方案。Google、Baidu和阿里巴巴后台均采用Linux集群,其 中Google在2010年就达到了上千万台,不仅如此,Linux集群大量在金融、证券、电信以及 IT行业使用。名为High-Availability Linux的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、可用性(availability)和可服务性(serviceability (RAS)的群集解决方案。Linux-HA项目得到了广泛的应用,是很多有趣的高可用性解决方 案的重要组成部分。LVS是中国章文嵩博士发起和领导的优秀的集群解决方案许多商业的集群产品,比如 RedHat的Piranha等,都是基于LVS的核心代码的。HA和LVS的不足主要有:HA集群一般都是以两个节点的形式出现的,单机处理能力有 限,所以当服务器压力较大时,想扩容服务器的处理能力往往得把以前的服务器淘汰掉,费 了以前的投资;LVS集群的真实服务器都是靠前端IP负载器进行调度分配的,所以存在单 点故障,如果IP负载器宕机,整个集群系统就会瘫痪。所以必须把册和LVS整合在一起。 真实服务器的数据源所涉及的共享存储一般都是利用商业的硬件解决方案,如SAN网络区域 存储,对于小型集群系统来说,投入非常高昂,完全可以利用Linux的软件RAID5技术和NFS 网络文件系统来实现。二、高可用集群(一)集群的定义集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些 单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群 系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管 理员可以随意增加和删改集群系统的节点。集群计算机通常用来改进单个计算机的计算速度 和/或可靠性。一般情况下集群计算机比单个计算机,工作站或超级计算机性能价格比要高 得多。(二)集群的分类集群计算机按功能和结构的不同可以分成:高可用性集群(High-availabilityclusters,简称HA) 负载均衡集群(Load balancing clusters) 高性能计算集群(High-performance clusters,简称HPC)等几类:1. 高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移 到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整 个集群的运行。2. 负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端 的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为 服务器群(Server Farm)。一般高可用性集群和负载均衡集群会使用类似的技术,或同时 具有高可用性与负载均衡的特点。3. 高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而 主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成 并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库,比如专为科学计算设计的MPI库。 HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点 的中间结果或影响到其它节点计算结果的情况。(三)高可用集群架构如图2-1所示,高可用集群主要由以下几部分组成。图2-1高可用集群主要由以下几部分组成(1) 共享信息层在基础架构上实现心跳信息探测。双方节点可以随时探测到对方的心跳信息,以实现对 对方主机工作状态的探测。三类控制信息:心跳(Heartbeats),集群事务信息(Cluster Transition Messages),重传信息(Retransmission Request)。配置文件:/etc/ha.d/ha.cf。 各节点间域共享密钥,实现节点间互相通信的认证。加密方式:MD5、HMAC-SHA1。常用实 现软件:HeartBeat、keepalived、ultramonkey、openais/corosync。红帽官方提供的集群 套件RHCS底层使用的通信机制就是openais/corosync。(2) 资源分配子层在资源分配上定义资源种类,界定资源归属,每个服务需要哪些资源及这些资源之间的 前后次序。集群资源管理器(CRM,常用软件pacemaker),管理双方向外提供服务所需用到的资源, 包括IP地址、Web服务、共享存储等等。而这些资源需要依靠集群信息库CIB(XML文件) 来定义,同时还必须保证一旦某个节点上的XML文件更新,即刻通知其他节点上的XML也要 及时更新。策略引擎(PE Policy Engine):定义法定人数以及根据法定人数所做出的动作等等本 地资源管理器(LRM Local Resource Manager):监控本地某个资源的工作状况。(3) 资源层本地资源代理(Resource Agent),脚本文件,一旦集群资源管理器发现某个资源工作异常, 立即通知本地资源代理重启服务。常用方法:(1)Heartbeat v1(2)使用脚本LSB scripts (Linux Standards Base)(3)OCF Open Cluster Format 开放集群格式(四)常用架构模型1. 一主一从架构。2. 互为主从架构。两台主机分别提供两种不同的服务,互为提供热备。3. 多主机架构N台主机组成一个集群,分别提供不同的服务,一台服务器空闲做备节点。或者全部处 于工作状态,一台服务器出故障,立刻将服务转移到其他主机上。各节点之间需要以多播的 形式将自己的健康情况发送给其他主机。故障转移域,即如果一台主机发生故障,会将主机上的服务转移到域内的另一台主机上。 法定人数(Quorum) 一般指一个设定值,集群超过这个值会正常工作,低于这个值会停止工作, 同时也避免出现资源争用的情况。脑裂和仲裁:在某种情况下,由于底层通知错误,或者传递信息的介质出现故障,会出 现资源争用的情况,称之为脑裂。此时,每个部分都想取得对集群资源的控制权,以保证集 群的高可用,这将破坏集群资源的完整性和一致性,导致整个集群瘫痪,硬件被破坏等严重 后果。为防止脑裂的放生,将由仲裁协议即法定代表人数来决定哪个部分取得对集群资源的 控制权。STONITH (Shoot The Other Node In The Head ):避免出现资源争用的情况,为了防 止错误操作的节点对集群资源进行破坏性控制和操作,使其不断重新启动或关机,从而使其 无法取得对集群资源的控制权。(五)高可用集群的设计及实现主从架构模式如图2-2所示,环境搭建如下。图2-2主从架构模式Primary eth0 192.168.0.39ethl 192.168.10.10 /心跳测试提供Web服务,测试页内容为Web1Standby eth0 192.168.0.27eth1 192.168.10.11 /心跳测试提供Web服务,测试页内容为Web2向外提供Web 服务IP: 192.168.0.100(六)主服务器的设置Heartbeat所需软件包如图2-3所示,直接使用yum本地安装。E heartbeat-2.1.4-9el5.1386.rpmLibnet-1.1.4-3.et5138&.rpmheartbeat 11$ - 2 14-161336 . rpm perl-MallTools-lyv-le-lS.nioarcfi. rpmheartbeat-ston!th 2 1.4-16 el5.1336,rpm图2-3 Heartbeat所需软件包rootstation39 Heartbeat2# yum localinstall ./* -nogpgcheckHeartbeat依靠服务器的主机名来识别服务器,因此使用hostname命令得到的结果必须 与uname -n结果保持一致。rootstation39 Heartbeat2# vim /etc/sysconfig/network /修改主机名称;HOSTNAME=rootstation39 Heartbeat2# hostname rootstation39 # vim /etc/hosts /修改主机地址映射192.168.0.39 primary192.168.0.27 standbyrootstation39 Heartbeat2# hwclock -s / 同步服务器时间rootstation39 Heartbeat2# cd /etc/ha.d/rootstation39 ha.d# cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./ rootstation39 ha.d# cp /usr/share/doc/heartbeat-2.1.4/authkeys ./ rootstation39 ha.d # cp /usr/share/doc/heartbeat-2.1.4/haresources ./ rootstation39 ha.d# vim ha.cf /定义各节点之间Heartbeat 进程如何通信 keepalive 2 /设定heartbeat之间的时间间隔为2秒 deadtime 30 /在30秒后宣布节点死亡; warntime 10 /在日志中发出late heartbeat警告之前等待的时间,单位为秒 udpport 694 /使用端口694进行bcast和ucast通信,默认参数 bcast eth1 /在 eth1 接口上使用广播 heartbeat node /定义节点 node /定义节点rootstation39 # dd if=/dev/urandom bs=512 count=1 | openssl md5 /生成 节点间域共享密钥d0f6e811a30607ec3783826d8d70ba25rootstation39 ha.d# vim authkeys /定义心跳探测包使用哪种加密方式 auth 11 sha1 d0f6e811a30607ec3783826d8d70ba25rootstation39 ha.d# chmod 600 authkeys /仅允许管理员修改文件 rootstation39 ha.d# cp /etc/init.d/httpd /etc/ha.d/resource.d/ rootstation39 ha.d# vim resource.d/haresources /定义资源; 192.168.0.100/24/eth0/192.168.0.255 httpd(七)从服务器的设置从服务器的主机名称为,设置方法同主服务器一致。/etc/hosts文件、 Heartbeat的配置文件也必须与主机保持一致。因此这里采用将Primary上的配置文件直接 远程复制过来的方法: rootstation26 # cd /etc/ha.d/ rootstation26 ha.d# scp 192.168.0.39:/etc/ha.d/ha.cf ./ rootstation26 ha.d# scp 192.168.0.39:/etc/ha.d/authkeys ./ rootstation26 ha.d# scp 192.168.0.39:/etc/ha.d/haresources ./ rootstation26 ha.d# cp /etc/init.d/httpd /etc/ha.d/resource.d/rootstation26 ha.d# chmod 600 authkeys(八)测试效果配置完成,此时,启动主从节点上的heartbeat服务。使用浏览器访问http : /192.168.0.100,可以看到图测试结果一所示,说明此时是Primary主机在工作。我们使 用Heartbeat本身自带的测试命令使Primary宕机,稍等片刻之后,再访问http : /192.168.10.100就会发现出现如图测试结果二所示,说明Standby已经在工作。测试结 果一如图2-4所示IL3 l .2.访可短多堤新尧玺河址大至Webl图2-4测试结果一rootstation39 ha.d# cd /usr/lib/heartbeat/ rootstation39 heartbeat# ./hb_standby 测试结果二如图2-5所示图2-5测试结果二我们这里是为了方便测试故意将两台服务器上的Web服务的页面显示出不同的内容,真 实的环境中两台服务器的提供Web服务应该是一模一样的,因此当服务器发生宕机的情况下 用户能够正常地访问网站,丝毫感觉不到服务宕机的情况三、LINUX虚拟服务器集群(一)负载均衡架构在负载均衡架构中,Director(dispatcher)负责接收客户端请求,并将请求按照某种算法分发到后台真正提供服务的服务器上。既可以基于硬件F5)来实现,也可以基于软件 来实现。基于软件实现的又分为四层交换:基于IP地址和端口号组合起来对服务做重定向 (LVS)。七层交换:通常指的是反向代理proxy),例如squid等。而真正提eb服务 的服务器称为Real Server,每个服务器称为一个节点。(二) LINUX VIRTUAL SERVERLVS类似于iptables的架构,在内核中有一段代码用于实时监听数据包来源的请求, 当数据包到达端口时做一次重定向,这一系列的工作必须在内核中实现。在内核中实现数据 包请求处理的代码叫做ipvs。ipvs仅仅提供了功能框架,还需要自己手动定义是数据对哪 个服务的请求,而这种定义需要通过写规则来实现,写规则的工具就称为ipvsadm。LVS的目标:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具 有很好的可伸缩性(Scalability)、可靠性(Reliability) 和可管理性 (Manageability)。图3-1 LVS 负载均衡架构图3-1负载均衡架构关于几个IP地址的解释:Virtual IP(VIP): Director用来向客户端提供服务的IP地址Real IP (RIP):集群节 点(后台真正提供服务的服务器)所使用的IP地址Directors IP (DIP): Director用来 和D/RIP进行通信的地址Client computers IP (CIP):公网IP,客户端使用的IP地址。根据前端Director和后台Real Server的通信方式将LVS分为三类:NetworkAddress Translation ( LVS-NAT)、Director routing ( LVS-DR)、IP tunneling(LVS-TUN):1. Virtual Server via Network Address Translation (LVS-NAT)通过网络地址转换,Director重写请求报文的目标地址,根据预设的调度算法,将请 求分派给后端的Real Server; Real Server的响应报文通过Director时,报文的源地址被 重写,再返回给客户,完成整个负载调度过程。2. Virtual Server via Direct Routing (LVS-DR)通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直 接返回给客户。同LVS-TUN技术一样,LVS-DR技术可极大地提高集群系统的伸缩性。这种 方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但要 求Director与Real Server都有一块网卡连在同一物理网段上。3. Virtual Server via IP Tunneling (LVS-TUN)采用NAT技术时,由于请求和响应报文都必须经过Director地址重写,当客户请求越 来越多时,Director的处理能力将成为瓶颈。为了解决这个问题,Director把请求报文通 过IP隧道转发至Real Server,而Real Server将响应直接返回给客户,所以Director只 处理请求报文。由于一般网络服务应答比请求报文大许多,采用LVS-TUN技术后,集群系统 的最大吞吐量可以提高10倍。(三) LVS-NAT目标地址转换,即所有客户端的请求都被Director根据访问请求和算法被定向到后台 的Real Server上,后台的Real Server回应客户端的数据包也要经过Director返回给客户 端。如负载均衡架构图3-2所示,数据包地址转换过程: S:CIP D:VIPDirectorS:CIP D:RIPReal Server Real ServerS:RIP D:CIPDirectorS:VIP D:CIP图3-2负载均衡架构LVS-NAT 特性: Director和Real Server必须在同一个网段中 一般情况下,RIP是私有地址,只用于集群内部节点间通信 Director会响应所有的请求在客户端和Real Server之间,所承担的负载较大 所有的Real IP网关必须指向DIP以响应客户端请求 Director可以重映射网络端口,即前端使用标准端口,后端使用非标准端口 后台的Real Server可以使用任何操作系统 Director可能会成为系统瓶颈(四)LVS-NAT集群的设计及实现LVS-NAT网络架构如图3-3所示,环境搭建如下:CIP =LRIP; 192-10.31111192. 156_0_127Real Ser-e-r 1R.IP7 36;虻羹图3-3 LVS-NAT网络架构Director : VIP 192.168.0.127 桥接DIP 192.168.10.1 仅主机Real Server 1: RIP 192.168.10.2 仅主机网关指向:192.168.10.1提供Web服务,测试页内容为Web1Real Server 2: RIP 192.168.10.3 仅主机网关指向:192.168.10.1提供Web服务,测试页内容为Web2Client: 192.168.0.1 物理机Real Server 1:rootstation39 html# ifconfig eth0 192.168.10.2 / 为 eth0 设置 IP 地址rootstation39 html# route add default gw 192.168.10.1 /添加网关Real Server 2:rootstation26 html# ifconfig eth0 192.168.10.3 /同上rootstation26 html# route add default gw 192.168.10.1 /|同上;Director:rootserver27 # ifconfig eth1 192.168.10.1 /为Director 设置DIProotserver27 # echo 1 /proc/sys/net/ipv4/ip_forward /开启内核路由功能rootserver27 # vim /etc/sysctl.conf /修改内核参数,确保永久有效 net.ipv4.ip_forward = 1rootserver27 # sysctl -p /查看内核参数net.ipv4.ip_forward = 1准备工作已经配置完毕,开始LVS-NAT的配置rootserver27 # yum install ipvsadm -y /安装1?vsadm 工具rootserver27 # ipvsadm -A -t 192.168.0.127:80 -s rr /定义服务,设定算法 为服务添加Real Server并设置权重rootserver27 # ipvsadm -a -t 192.168.0.127:80 -r 192.168.10.2 -m -w 2rootserver27 # ipvsadm -a -t 192.168.0.127:80 -r 192.168.10.3 -m -w 5rootserver27 # ipvsadm -Ln /查看服务状态- RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.0.127:80 rr- 192.168.10.3:80 Masq 5 0 16- 192.168.10.2:80 Masq 2 0 15(五)LVS-DR集群架构的设计与实现及测试结果直接路由就是客户端请求经过Director分发给Real Server后,Real Server直接回 应客户端。如图所示,数据包地址转换过程:S:CIP D:VIPDirectorS:CIP D:RIP Real Server S:VIP D:CIP图3-5 LVS-DR架构图3-5 LVS-DR架构1. LVS-DR 特性: Real Server上必须配置VIP切需要隐藏起来,只有在响应客户端请求时才使用VIP 作为源地址,除此之外并不使用此VIP 集群节点和Director必须在同一个网络中 RIP不要求为私有地址 Director仅处理所有进来的请求 Real Server不能以DIP作为网关,而是以公网上的某台路由器作为网关 Director不能再使用端口重映射 大多数操作系统可以被用来作为Real Server,windows除外 LVS-DR模式可以处理比LVS-NAT更多的请求LVS-DR为实际生产环境中最常用的一种方式,因为RIP为公网地址,管理员可以远程 连接Real Server来查看工作状态;一旦Director宕机,可以通过修改DNS记录将A记录 指向RIP继续向外提供服务。Director分发到Real Server的过程中,数据包的源地址和目标地址都没有发生改变, Director仅仅是将目标mac地址转换成某台Real Server的mac地址,源mac地址改为 Director内网网卡的mac地址。2. 解决的两个技术难题:1. Real Server要避免回应客户端发来的对VIP的arp地址解析请求;解决方法:(1) 修改内核的两个参数:arp_announce, arp_ignore;1 arp_announce :定义不同级别:当ARP请求通过某个端口进来是否利用这个接口来 回应;0默认级别,利用本地的任何地址,不管配置在哪个接口上去响应ARP请求1避免使用另外一个接口上的mac地址去响应ARP请求2尽可能使用能够匹配到ARP请求的最佳地址。2 arp_ignore:当ARP请求发过来后发现自己正是请求的地址是否响应0默认级别,利 用本地的任何地址,不管配置在哪个接口上去响应ARP请求1哪个接口上接受ARP请求,就 从哪个端口上回应。(2) Red Hat系统提供了arptables工具,利用arp防火墙也可以实现。2. 当Real Server内网网卡响应客户端请求时,要以VIP作为源地址,不能以RIP作 为源地址。解决方法:添加一条路由route add -host 192.168.0.127 dev lo:0使客户端访问VIP,就让VIP来响应客户端。这样避免了使用RIP作为源地址。3.5.1 LVS-DR集群架构的设计与实现图3-6 LVS-DR网络架构LVS-DR网络架构如图3-6所示,环境搭建如下。Director : eth0:0 VIP 192.168.0.127eth0 DIP 192.168.0.10 桥接Real Server 1: eth0 RIP 192.168.0.12 桥接lo:0 VIP 192.168.0.127提供Web服务,测试页内容为Web1Real Server 2: eth0 RIP 192.168.0.13 桥接lo:0 VIP 192.168.0.127提供Web服务,测试页内容为Web2Client: 192.168.0.1 物理机Real Server 1:rootstation39 # vim /etc/sysctl.conf /修改内核参数,避免回应客户端发来的对VIP的arp地址解析请求net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_announce = 2rootstation39 # sysctl -p /显示内核参数rootstation39 # ifconfig eth0 192.168.0.12/24 /设置IP 地址RIProotstation39 # ifconfig lo:0 192.168.0.127 broadcast 192.168.0.127 netmask255.255.255.255 / 设置VIProotstation39 # route add -host 192.168.0.127 dev lo:0 /添加路由Real Server 2网卡eth0的地址为192.168.0.13,服务的设置方法同Real Server 1 一致。Director:rootserver27 # ifconfig eth0 192.168.0.10/24 /设置 DIProotserver27 # ifconfig eth0:0 192.168.0.127 broadcast 192.168.0.127netmask 255.255.255.255 /设置 VIProotserver27 # route add -host 192.168.0.127 dev eth0:0 / 添加路由rootserver27 # echo 1 /proc/sys/net/ipv4/ip_forward /开启内核路由功能rootserver27 # ipvsadm -C /清空规则;rootserver27 # ipvsadm -A -t 192.168.0.127:80 -s wlc /添加服务,设定调 度算法添加 Real Server:rootserver27 # ipvsadm -a -t 192.168.0.127:80 -r 192.168.0.12 -g -w 5rootserver27 # ipvsadm -a -t 192.168.0.127:80 -r 192.168.0.13 -g -w 8使用物理机浏览器访问http:/192.168.0.127,查看服务状态,就可以看到两台Real Server的非活动连接数之比近似于5:8,这是由分配的权重所决定的。rootserver27 # ipvsadm -Ln /查看服务状态- RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.0.127:80 wlc- 192.168.0.13:80 Route 8 0 18- 192.168.0.12:80 Route 5 0 11(六)LVS-TUN如图3-7所示,LVS-TUN模式与LVS-DR的网络结构一样,但Director和Real Server 可以在不同的网络当中,可以实现异地容灾的功能。数据包从Director到Real Server过程 中是基于隧道来传输,在数据包外层额外封装了S:DIP D:RIP的地址。图LVS-TUN架构图3-7 LVS-TUN模式与LVS-DR的网络结构LVS-TUN 特性: Director 和Real Server不需要在同一个物理网络中 RIP 一定不能是私有地址 Director只负责处理进来的数据包 Real Server直接将数据包返回给客户端,所以Real Server默认网关不能是DIP必须是公网上某个路由器的地址 Director不能做端口重映射 只有支持隧道协议的操作系统才能作为Real Server(七)LVS持久性尽管我们选择了LVS的分发方法,但是大多时候我们要保证返回给客户端的所有响应请 求必须来自于同一台Real Server,这里我们就要用到LVS Persistence (持久性)。当使用 SSL会话的时候,我们常常期望只交换一次密钥就可以建立永久连接,因此,LVS持久性在 SSL会话中经常被用到。使用LVS持久性的时候,Director在内部使用一个连接根据记录称之为“持久连接模 板”来确保所有来自同一个客户端的请求被分发到同一台Real Server上。LVS持久性类型 分为PCC、PPC、PNMP、混合类型:1. Persistent client connections来自同一客户端所有服务的请求都被重定向到同一台Real Server上,以IP地址为准。 PCC是一个虚拟服务没有端口号(或者端口号为0),以-p来标识服务。缺点是定向所有 服务,期望访问不同的Real Server无法实现。假设一个用户在访问购物网站时同时使用HTTP (80)和HTTPS (443)两种协议,就需要 这样定义:ipvsadm -A -t 192.168.0.220:0 -s rr -pipvsadm -a -t 192.168.0.220:0 -r 192.168.10.11 -mipvsadm -a -t 192.168.0.220:0 -r 192.168.10.11 -m2. Persistent port connections来自同一服务的请求都被重定向到同一台Real Server上,以端口号为准。例如:clientLVS(80,22)RS1clientLVS(23)RS2缺陷:期望访问不同的端口到同一台RS上,无法实现。3. Persistent Netfilter Marked Packet persistence根据iptables的规则,将对于某类服务/几个不同端口的访问定义为一类。具体过程是 先对某一特定类型的数据包打上标记,然后再将基于某一类标记的服务送到后台的 Real Server上去,后台的Real Server并不识别这些标记。由于LVS-DR模型作了网卡别名,所以并不适合PNMP,因此PNMP只能用在LVS-NAT模式 下:rootserver27 # iptables -t mangle -A PREROUTING -i eth0 -d 192.168.0.127-p tcp -dport 80 -j MARK -set-mark 2rootserver27 #ipvsadm-A-f2-swlc -p 3600rootserver27 #ipvsadm-a-f2-r192.168.10.2-m-w2rootserver27 #ipvsadm-a-f2-r192.168.10.3-m-w5图3-8服务状态roatQserver27 洋 ipvsadin -LnIIP Virtual Server version 1.2.1 LacatAddress:Port Schedule厂 FlagsRinateAdd广包Forward weight ActlveConn InActCormFWM 2 wlc persistent 3690a L92T168rl&.3;3时即5D78-a MA琏土 芝;&阉mq2日图 3-8 服务状态根据图可以明显看出,来自同一客户端的访问请求都被分发到192.168.10.3这台Real Server 上去了。将持久和防火墙标记结合起来就能够实现端口姻亲功能,只要是来自某一客户端的对某 一特定服务(需要不同的端口)的访问都定义到同一台Real Server上去。假设这样一种场景:一个用户在访问购物网站时同时使用HTTP (80)和HTTPS (443)两 种协议,我们需要将其定义到同一台Real Server上,而其他的服务不受限制,可以这样来 实现:Real Server 1:rootstation39 # cd /etc/pki/tls/certs/rootstation39 certs# make httpd.pem /做一个自签名证书,内容如 3-9 示 RS1 证书信 息Country Name (E Letter code GB:CNState or Province Name ffiiLL name) Berkshire : HALocality Name (egr city) Newbury:ZZOraanization Name Cea P company) IHy Coinpany Ltd : RHCEOrganizational Unit Name fegr section! :TECHCommon Mmraim egr your name or your server 5 hostname) :webl.a.coin Email Address :图3-9 RS1证书信息rootstation39 certs# mv httpd.pem /etc/httpd/ /将证书存放在httpd 目录下rootstation39 httpd# yum install mod_ssl -y /为Web 服务添加openssl 功能rootstation39 httpd# cd conf.d/rootstation39 conf.d# vim ssl.confSSLCertificateFile /etc/httpd/httpd.pem / 指定证书位置SSLCertificateKeyFile /etc/httpd/httpd.pem /指定密钥位置 重启httpd服务。rootstation39 # vim /etc/hosts /修改?地址到主机名的映射192.168.10.2 web1Real Server 2证书的配置过程同Real Server 1过程一样,在此不再赘述,证书内容如图所示。rootstation26 httpd# make -C /etc/pki/tls/certs httpd.pem图3-10 RS2证书信息Country Name 2 Letter code) GB:CN(State or Province NaiHG CfuLL naiHG) Berkshire:HALocality Name (egf city) Newbury:ZZOrganization Name (egr company) IHy Company Ltd:RHCEOrganizational Unit Name Cegr section) :TECHCommon Name Cegr your name or your servers hostname) :webZEmaiL Address :web2Qmimics: L2mwi.n口 口1.匚1:厂 图3-10 RS2证书信息rootstation26 # vim /etc/hosts / 修改IP 地址到主机名称的映射 192.168.10.3 web2Director:为客户端对http (80)服务、https (443)服务的访问打上标 记5: rootserver27 # iptables -t mangle -A PREROUTING -i eth0 -d 192.168.0.127-p tcp -dport 80 -j MARK -set-mark 5rootserver27 # iptables -t mangle -A PREROUTING -i eth0 -d 192.168.0.127-p tcp -dport 443 -j MARK -set-mark 5 rootserver27 # ipvsadm -A -f 5 -s wlc -p /定义服务;rootserver27 # ipvsadm -a -f 5 -r 192.168.10.2 -m -w 2 /忝加 Real Serverrootserver27 # ipvsadm -a -f 5 -r 192.168.10.3 -m -w 5 / 添加Real Server如图3-11所示非活动连接数rDotscrw&r27 # Ipvsdiri -Ln IP Virtual 5-erver verslan 1-2.1(山ME)Prpt山dd已寻与;P。*t 5chedul rf RemateAddress;PortForward Height ActiveConn InActConnFWM 5 wlc persistent 36Bf 192.16S,10.3:0Masq5S574M 蒂q2P图3-11非活动连接数使用Windows 客户端访问的时候要修改C:WINDOWSsystem32driversetchosts文件,添 加两条名称解析记录:192.168.0.127 192.168.0.127 使其能够解析192.168.0.127所对应的主机名。如图3-8、图3-9所示,此时客户端无论是访问192.168.0.127的http服务还是https 服务都会被定义到同一台Real Server上去。这里是为了演示效果,使用的不同的证书和不同的页面。实际环境中要求Web所提供的 服务必须是一致的。图3-12浏览结果4. FTP Connections众所周知FTP在被动模式下,所使用的数据传输的端口不是固定的,这就使我们在定义 持久性时无法为其打上标签。此时我们可以指定一个范围,将范围内的端口打上标记,然后 使VSFTPD在被动模式下不再使用随机端口,而是使用范围内的随机端口,从而实现FTP的 负载均衡。具体实现如下:(1) 修改vsftpd的主配置文件定义在被动模式下使用的端口的范围vim /etc/vsftpd.conf:pasv_min_port=10000pasv_max_port=20000(2) 必须保证在LVS-NAT集群模式下,服务端返回给客户端的数据包的源地址为VIP, 而不是Real Server的RIP,在vsftpd的主配置文件中添加一行vim /etc/vsftpd.confpasv_address=VIP(3) 在Director上使用iptables定义端口姻亲:iptables -t mangle -A PREROUTING -p tcp -d VIP dport 21 -j MARKset-mark21iptables -t mangle -A PREROUTING -p tcp -d VIP dport 10000:20000 -j MARK-set-mark 21四、LVS+HEARTBEAT构建高并发、高可用集群(一)LVS + HEARTBEAT三层架构的设计由于HA集群只是提供了高可用的运行环境,并没有提高单台服务器的并发能力,而LVS 的前端Director存在单点故障,所以提出了基于LVS+Heartbeat的解决方案。图4-1 LVS + Heartbeat架构拓扑图图4-1 LVS + Heartbeat架构拓扑图Primary: eth0 192.168.0.39ethl 192.168.10.10 /提供心跳测试Standby: eth0 192.168.0.27eth1 192.168.10.11 / 提供心跳测试Real Server 1: eth0 RIP 192.168.0.121 桥接lo:0 VIP 192.168.0.100提供Web服务Real Server 2: eth0 RIP 192.168.0.122 桥接lo:0 VIP 192.168.0.100提供Web服务Real Server 3: eth0 192.168.0.123lo
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!