姚博文 LVS

LVS(Linux Virtual Server)
工作模式:
1)Virtual server via NAT(VS-NAT)
 LVS 的可能会成为一个系统瓶颈问题
2)Virtual server via IP tunneling(VS-TUN)
3)Virtual Server via Direct Routing(VS-DR)
 LVS 的VIP 和 realserver 必须在同一个网段
 所有的realserver 都必须绑定VIP的IP地址
 Director接收用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserver直接回复给用户。

 

1. yum -y install ipvsadm piranha

(1/5): ipvsadm-1.26-2.el6.x86_64.rpm    
(2/5): php-5.3.3-27.el6_5.x86_64.rpm       
(3/5): php-cli-5.3.3-27.el6_5.x86_64.rpm     
(4/5): php-common-5.3.3-27.el6_5.x86_64.rpm 
(5/5): piranha-0.8.6-4.el6_5.2.x86_64.rpm 

安装成功

[root@***~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

2. vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #把原来的0改成1
sysctl -p

3. 设置piranha的管理密码

piranha-passwd
New Password:123456

4. /etc/init.d/piranha-gui start
http://IP:3636/
login:piranha/123456

####/usr/sbin/httpd -f /etc/sysconfig/ha/conf/httpd.conf
####cat /etc/sysconfig/ha/lvs.cf


测试环境
lvs-1服务器:192.168.19.9
lvs-2服务器:192.168.19.10 (作为内网的转发IP 点)
VIP:192.168.19.11 (真实的对外网的IP,给用户访问的IP)

Real server:
192.168.19.194和192.168.19.195安装了httpd服务。

1. vim /etc/hosts
192.168.19.9    lvs-1
192.168.19.10   lvs-2

2.http://IP:3636/
 1> 主服务器信息配置 , 点击菜单:GLOBAL SETTINGS
  Primary server public IP:192.168.19.9 主服务器用于与应用服务器(Real Server)连接的IP。
  Primary server private IP:192.168.19.9 主服务器用于与备用服务器连接的心跳IP。
  TCP timeout (seconds):300
  TCP FIN timeout (seconds):15 这是处于TIME_WAIT状态的连接在回收前必须等待的最小时间。改小它可以加快回收(默认值为 60 )
  UDP timeout (seconds):300
  Use Network Type:tunnel 所选用的LVS模式。
 
 2> 单击"REDUNDANCY" 后通过单击"ENABLE"来启用备用LVS服务器。
  Redundant server public IP:   192.168.19.10  备用服务器用于与主服务器连接的心跳IP
  Heartbeat interval (seconds):   6  备用服务器对主服务器进行心跳检测的轮询时间
  Assume dead after (seconds):   18  如果主服务器在指定时间内没有恢复心跳,则宣告服务器失效并进行接管
  Heartbeat runs on port:   539   使用心跳来检测所使用的端口
  Monitor NIC links for failures:   选中  是否检测网卡的连接状态
  Use sync daemon:    开启LVS 状态同步
  Sync daemon interface:  
  Sync daemon ID:  

 3> 单击"VIRTUAL SERVERS"进行服务器集群配置,单击"ADD"添加一个虚拟服务器


  Name:定义虚拟服务器的名称。
  Application port:指定此目标应用服务的端口。
  Protocol:目标应用服务的网络协议,TCP或UDP。
  Virtual IP Address:定义目标应用所使用的虚拟IP。
  Virtual IP Network Mask:定义目标应用所使用的虚拟IP的子网掩码。
  Firewall Mark:当目标应用要使用多个IP端口时,结合IPTABLE设定防火墙标记。
  Device:虚拟IP所挂接的网卡设备名。
  Re-entry Time:当发现一个Real Server故障后,LVS Route对这个Server的检测间隔时间。
  Server timeout:LVS Route对Real Server发送指令后,若超过此时间没有响应则认为服务器发生故障。
  Quiesce server:一旦有Real Server加入或恢复,则所有负载队列记录均归"0"并重新进行分配。
  Load monitoring tool:在Real Server中通过ruptime或rup命令获得系统负载,以结合相应用的Scheduling算法进行调度计算。
  Scheduling:此虚拟服务器使用的调度算法。
  Persistence:同一客户端长连接的保持时间。
  Persistence Network Mask:长连接保持的子网掩码(网段)范围。
  Load monitoring tool要求Real Server安装有ruptime或rup,并要求LVS服务器可以使用root账号在不需要密码的情况下通过SSH连接到Real Server。
  Scheduling中包括以下8种调度策略:
  Round-Robin Scheduling:轮询策略,IP分发时逐个地对Real Server进行轮询。
  Weighted Round-Robin Scheduling:加权轮询策略,配合权值进行轮询策略计算。
  Least-Connection:最小连接优先策略,将新的IP请求分发到访问队列较短的Real Server。
  Weighted Least-Connections:加权最小连接优先策略,配合权值进行最小连接优先策略计算。
  Locality-Based Least-Connection Scheduling:以下简称LBLCS,根据目标IP地址找出最近使用的服务器,若该服务器可用并且没有超载(系统压力未达到一半),就将请求发送到该服务器,否则使用最小连接优先策略。此策略主要针对的是Cache网关服务器。
  Locality-Based Least Connections with Replication Scheduling:与LBLCS类似,在LBLCS的基础上加入复制调度策略,使得"热门"网站使用时尽量Cache在同一台网关服务器中,进一步避免了在多台服务器中保存相同的Cache信息。此策略主要针对的边是Cache网关服务器。
  Destination Hashing Scheduling:通过对目标地址的Hash计算来确定目标服务器。此策略主要针对的是Cache网关服务器。
  Source Hashing Scheduling:通过对源地址的Hash计算来确定目标服务器。此策略主要针对的是Cache网关服务器。

 4> 单击"REAL SERVER"并通过单击"ADD"来添加两个Real Server。

Weight:设置此Real Server的权值,当各Real Server的性能不相同时可设定性能较高的服务器得到较高的权值。

5>  再次单击"REAL SERVER",依此选中两个Real Server并分别单击"(DE)ACTIVATE",将两个Real Server的状态设置为"UP"。

 

6> 单击"MONITORING SCRIPTS",配置LVS使之检查Real Server中对目标应用的规则,这里我选“blank expect”。

Sending Program:通过程序实现Real Server中对应用服务可用性的判断(不能与Send同时使用)。

Send:直接通过VIRTUAL SERVER中指定的端口发送指令。

Expect:Sending Program或Send后的返回值,如果与此返回值匹配,则表明此应用服务在当前Real Server中运行正常。

Treat expect string as a regular expression:将Expect中的值作为正则表达式与返回值进行比对。

注意:

此处的功能主要用于判断Real Server中的目标服务运行是否正常,如果发现服务失效,则主动在此VIRTUAL SERVER中隔离该Real Server。

至此,LVS服务配置完成。通过Piranha进行配置实际上就是修改/etc/sysconfig/ha/lvs.cf文件。

 

7> real server 配置

在2台real server中运行以下指令,通过iptables实现Real Server的目标地址重定向:

iptables -t nat -A PREROUTING -p tcp -d 192.168.19.11 --dport 80 -j REDIRECT

etc/init.d/iptables save

chkconfig iptables on


8>  在server1及server2中分别通过以下指令启动或停止LVS服务: 


/etc/init.d/pulse start  


停止LVS服务  


/etc/init.d/pulse stop  


自动启动LVS服务  


chkconfig pulse on 


9> 监控


ipvsadm
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正则表达式<br>lucene索引合并<br>探查Weblogic JDBC Multipool 问题 <br>struts通用Exception处理 <br>Grails中默认数据库HSQLDB点滴<br>从request获取各种路径总结<br>DIV实现的表格自动伸张与收缩<br>java 邮件服务<br>从Hibernate的映射谈编程思想<br>COBOL 式死亡,Java 是否真的即将被取代?<br>Java 6 RowSet 使用完全剖析<br>结合Spring2.0和ActiveMQ进行异步消息调用<br>struts+hibernate增删改查(一)<br>AXIS 布署问题<br>struts+hibernate增删改查(二)<br>MySQL中如何实现Top N及M至N段的记录查询?<br>ext学习笔记一<br>小试iBatis<br>RIA(Rich Internet Application)的现状和未来<br>Java应用中域名解析不过期的解决方法<br>Java编程那些事儿45—数组使用示例1<br>一步步熟悉OFBiz<br>用Java做客户端调用.NET写的 Web Services<br>WatiJ简历上的露体美女!<br>DFS文件读写<br>网络爬虫之Spider<br>Java正则表达式的总结关键词: Java正则表达式 <br>批量上传--采集 (多个文件夹)<br>The Agile Way<br>hibernate mapping文件中的标记详解:关系标记<br>ANT 安装使用及build.xml文档模板<br>inverse和cascade在关联更新中的作用<br>hibernate mapping文件中的标记详解:映射标记<br>Java的“静态库链接”<br>博文 集成ACEGI 进行权限控制 <br>SWT可交互式Browser控件<br>JDK配置(注意)<br>RIA简介(第一部分)<br>在 Eclipse 中嵌入 NASA World Wind Java SDK,<br>用3DES加密解密 BadPaddingException<br>Web Service 打包生成aar文件<br>什么是反射机制?<br>JDOM和数据库<br>DB封装<br>菜鸟编程那点事<br>JPA中的集合查询示例<br>EL表达式<br>彩金狮王I代46倍 <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值