版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 RedHat5+lvs实现负载均衡一、Linux Virtual Server概述Linux Virtual Server (LVS)是一套完整的基于IP的负载均衡的集群软件。LVS运行在一对有相似配置的计算机上:一个作为活动LVS Router(Active LVS Router),一个作为备份LVS Router(Backup LVS Router)。活动LVS Router服务有两个角色:* 均衡负载到真实服务器上。* 检查真实服务器提供的服务是否正常。备份LVS Router用来监控活动的LVS Router,以备活动的LVS Router失败时由备份LVS Router接管。
2、60;Pulse进程运行在活动LVS Router和备份LVS Router上。在备份LVS Router上,pulse发送一个心跳(heartbeat)到活动LVS Router的公网接口上以检查活动LVS Router是否正常。在活动LVS Router上,pulse启动lvs进程并响应来自于备份LVS Router的心跳。lvs进程调用ipvsadm工具去配置和维护IPVS路由表,并为每一个在真实服务器上的虚拟服务启动一个nanny进程。每一个nanny进程去检查真实服务器上的虚拟服务状态,并将故障情况通知lvs进程。假如一个故障被发现,lvs进程通知ipvsadm在IPVS路由表中将此
3、节点删除。如果备份LVS Router未收到来自于活动LVS Router的响应,它将调用send_arp将虚拟IP地址再分配到备份LVS Router的公网接口上。并在公网接口和局域网接口上分别发送一个命令去关掉活动LVS Router上的lvs进程。同时启动自己的lvs进程来调度客户端请求。下面是一个两层结构的LVS架构: 下面是一个三层结构的LVS架构: 两层结构的LVS架构适合于Real Server上的数据变化不是很频繁的情况,如果Real Server上的数据变化很频繁应该考虑使用三层结构的LVS架构,将数据放到一个共享文件系统(GFS)上供所有的Real Se
4、rver同时读写。你可以使用VS/NAT、VS/TUN和VS/DR来实现IP负载均衡:* 使用VS/NAT方法:客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。同时,调度器在连接Hash表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务器。
5、当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。当使用VS/NAT方法时,如果有大量的响应数据经过调度器,调度器将成为整个集群的瓶颈。 * 使用VS/TUN方法:VS/TUN的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为VIP的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求
6、,然后根据路由表将响应报文直接返回给客户。 * 使用VS/DR方法:调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的HUB相连。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的
7、MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。二、本实验拓扑图 在实际环境中可修改00、0、1为真IP。三、LVS在RedHat 5上的安装1、需要的安装包:操作系统:RedHat 5LVS安装包:php-common-5.1.6-5.el5.i386.rpmphp-cli-5.1.6-5.el5.i386.rpmphp-5.1.6-5.el5.i386.rpmipvs
8、adm-1.24-8.1-i386.rpmpiranha-0.8.4-7.el5.i386.rpm如果系统中没有安装Apache还需要Apache的安装包。 2、在Active LVS Router上安装PHPShell # rpm -ivh php-common-5.1.6-5.el5.i386.rpmShell # rpm -ivh php-cli-5.1.6-5.el5.i386.rpmShell # rpm -ivh php-5.1.6-5.el5.i386.rpmShell # vi /etc/httpd/conf/httpd.conf查找AddType applicati
9、on/x-compress .ZAddType application/x-gzip .gz .tgz在其下加入:AddType application/x-tar .tgzAddType application/x-httpd-php .phpAddType image/x-icon .ico修改DirectoryIndex 行,添加index.php修改为DirectoryIndex index.php index.html index.html.var# vi /var/www/html/test.php添加以下行:/php标记(用<代替)?php
10、; phpinfo();?wq保存退出。Shell # /etc/init.d/httpd restart /重新启动Apache打开浏览器进行测试,输入http:/localhost/test.php,如果能够成功显示PHP变量则说明PHP安装成功。 3、在Active LVS Router上安装LVS所需要的包Shell # rpm -ivh ipvsadm-1.24-8.1-i386.rpmShell # rpm -ivh piranha-0.8.4-7.el5.i386.rpm 4、在Active
11、LVS Router上配置VIP虚拟IP和主机路由安装IPVS后,就可以配置LVS集群了,首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:Shell #ifconfig eth0:0 00 broadcast 00 netmask 55 up此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是00,也就是上面我们规划的IP地址,然后指定广播地址也为00,需要特别注意的是,这里的子网掩码为255.25
12、5.255.255。然后给设备eth0:0指定一条路由,执行如下指令:Shell #route add -host 00 dev eth0:0 5、在Active LVS Router上打开数据转发Shell # vi /etc/sysctl.conf找到下面行:net.ipv4.ip_forward = 0将0 改成1,net.ipv4.ip_forward = 1执行如下命令来应用:sysctl -p声明服务,添加服务器# ipvsadm -A -t 01:80 -s rr# ipvsadm -a -t 192.168.1.
13、101:80 -r 00 -g# ipvsadm -a -t 01:80 -r 01 g保存Service ipvsadm save6、在Backup LVS Router上重复2、3、4、5步。 6、在Active LVS Router上初始化piranha的密码Shell # piranha-passwd输入两遍密码即可。在Active LVS Router上启动需要的服务Shell # /etc/init.d/piranha-gui start在Active LVS Router上配置LVS (两种方法实现pir
14、anha的配置)一:通过编译文件来进行piranha的配置Piranha安装完毕后,会产生/etc/sysconfig/ha/lvs.cf文件,默认此文件是空的,可以通过Piranha提供的web界面配置此文件,也可以直接手动编辑此文件,编辑好的lvs.cf文件内容类似如下,注意,“#”号后面的内容为注释。rootlocalhost # more /etc/sysconfig/ha/lvs.cfserial_no = 18 #序号。prim
15、ary = 6 #指定主Director Server的真实IP地址,是相对与有备用的Director Server而言的,也就是给Director Server做HA Cluster。service = lvs #指定双机的服务名。backup_active = 0 #是否激活备用D
16、irector Server。“0”表示不激活,“1”表示激活。backup = #这里指定备用Director Server的真实IP地址,如果没有备用Director Server,可以用“”代替。heartbeat = 0 #是否开启心跳,1表示开启,0表示不开启。heartbeat_
17、port = 539 #指定心跳的UDP通信端口。keepalive = 5 #心跳间隔时间,单位是秒。deadtime = 10 #如果主Director Server在deadtime(秒
18、)后没有响应,那么备份DirectorServer就会接管主Director Server的服务。network = direct #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUNL模式。debug_level = NONE #定义debug调试信息级别。virtual
19、60; #指定虚拟服务的名称。active = 1 #是否激活此服务。address = 00 eth0:0 #虚拟服务绑定的虚拟IP以及网络设备名。port = 80 #虚拟服务的端口。send = "GET / HTTP/1.0rnrn&
20、quot; #给real server发送的验证字符串。expect = "HTTP" #服务器正常运行时应该返回的文本应答信息,用来判断real server是否工作正常。use_regex = 0 # expect选项中是否使用正则表达式,0表示不使用
21、,1表示使用。load_monitor = none #LVS中的Director Server能够使用 rup 或 ruptime 来监视各个real server的负载状态。该选项有3个可选值,rup、ruptime和none,如果选择rup,每个real server就必须运行rstatd服务。如果选择了ruptime,每个real server就必须运行 rwhod 服务。scheduler = rr
22、0; #指定LVS的调度算法。protocol = tcp #虚拟服务使用的协议类型。timeout = 6 #real server失效后从lvs路由列表中移除失效real server所必
23、须经过的时间,以秒为单位。reentry = 15 #某个real server被移除后,重新加入lvs路由列表中所必须经过的时间,以秒为单位。quiesce_server = 0 #如果此选项为1.那么当某个新的节点加入集群时,最少连接数会被重设为零,因此LVS会发送大量请求到此服务节点,造成新的节点服务阻塞
24、,建议设置为0。server RS1 #指定real server服务名。address = 32 #指定real server的IP地址。active = 1
25、60; #是否激活此real server服务。weight = 1 #指定此real server的权值,是个整数值,权值是相对于所有real server节点而言的,权值高的real server处理负载的性能相对较强。server RS2 address = 44active = 1weight = 1编辑完成,然后启动pulse服务,即启动lvs服务
26、rootlocalhost #service pulse start同理,此种方式下也要启用系统的包转发功能:rootlocalhost #echo "1" >/proc/sys/net/ipv4/ip_forward到此为止,Piranha工具方式配置Director Server完毕。二:图形界面配置piranha首先在浏览器中输入http:/localhost:3636打开piranha,输入用户名:piranha,密码:上面设置的密码。 登录后将看到监视屏幕。 配置Global Settings(是对Active LVS Rou
27、ter的配置),点击Direct Routing,然后输入公网IP,和局域网IP。点击ACCEPT按钮保存设置。 配置Redundancy(是对Backup LVS Router的配置),输入公网IP,和局域网IP。点击ACCEPT按钮保存设置。 点击ADD按钮添加一个服务。 按下面配置添加的服务。配置完成后不要忘记点击ACCEPT按钮保存设置。 点击REAL SERVER连接,配置Real Server。 点击ADD按钮添加一个节点,点击EDIT按钮编辑节点,点击(DE)ACTIVATE按钮激活
28、节点。点击MONITORING SCRIPTS连接修改监控设置,在此保持默认。 点击VIRTUAL SERVERS连接,然后点击(DE)ACTIVATE按钮激活上面设置的服务。 7、在Active LVS Router上启动pulse进程Shell # /etc/init.d/pulse startShell # chkconfig -level 2345 piranha-gui onShell # chkconfig -level 2345 pulse on拷贝配置文件到Backup LVS Router。Shell # scp /etc/sysconfig/ha/lvs.cfg root
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年十大试点城市数据确权规则差异对比:北京 上海 深圳 贵阳 杭州经验
- 放疗病人心理干预护理
- 2026年经营范围变更营运证申请指南
- 护理技能实操评估标准
- 植物护肤药膳调理
- 2026年小学生交通安全知识
- 2026年消防水带使用培训
- 通航建筑物施工技术的工程特点和要求
- 2026年网络安全防范宣传
- 2026年生产安全风险评估培训
- 2026年安徽冶金科技职业学院单招职业技能考试题库附答案详解(黄金题型)
- 2025年山东高考思想政治真题试卷完全解读(含试卷分析与备考策略)
- 2026年黑龙江林业职业技术学院单招综合素质考试题库及答案1套
- 2026年湖北省公务员考试试题及答案
- 信息论与编码期末考试试题
- (高清版)DZT 0004-2015 重力调查技术规范(150 000)
- 光纤传感监测技术
- 加油站防雷应急预案
- 换季衣物收纳整理课件
- 人教版八年级数学下册 (勾股定理)课件
- 配电线路及设备巡视
评论
0/150
提交评论