linux下利用Haproxy和keepalived实现简单负载均衡

架构拓扑图如下:

haproxy
VIP:  192.168.1.150
Master:192.168.1.10
Slave: 192.168.1.11
多台realServer之间用keepalived实现HA.
webserver1:192.168.1.101
webserver2:192.168.1.102
webserver3:192.168.1.103
webserver4:192.168.1.104

1.下载:

#wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.14.4.tar.gz

2.解压安装

#tar zxvf haproxy-1.3.14.4.tar.gz
#mv  haproxy-1.3.14.4  haproxy
#cd haproxy
#make TARGET=linux26
默认安装路径为/usr/local/haproxy目录里. Continue reading

负载均衡工具haproxy安装,配置,使用

一,什么是haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

二,安装haproxy

下载列表地址http://haproxy.1wt.eu

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz

#tar zxvf haproxy-1.4.8.tar.gz
#cd haproxy-1.4.8
#uname -a           //查看linux内核版本
#make TARGET=linux26 PREFIX=/usr/local/haproxy
#make install PREFIX=/usr/local/haproxy Continue reading

网络七层协议及负载均衡

根据OSI模型把网络通信的工作分为七层.一至四层被认为是低层,这些层与数据移动密切相关.五至七层是高层,包含应用程序级的数据.每一层负责一项具体的工作,然后把数据传送到下一层.由低到高具体分为:物理层.数据链路层,网络层,传输层,会话层,表示层和应用层.

OSI模型的最低层或第一层:物理层

物理层包含物理连网网媒介,实际上就是布线,光纤,网卡和其它用来把两台网络通信设备连接在一起的设施.它规定了激活,维持,关闭通信端之间的机械特性,电气特性,功能特性及过程特性.虽然物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率.

OSI模型的第二层:数据链路层

数据链路层的主要作用是控制网络层与物理层之间的通信.它保证了数据在不可靠的物理线路上进行可靠的传递.它把从网络层接收到的数据侵害成特定的可被牧师层传输的帧,保证了传输的可靠性.它的主要作用包括:物理地址寻址,数据的成帧,流量控制,数据的栓错,重发等.它是独立于网络层和物理层的,工作时无须关心计算机是否在运行软件还是其它操作.
数据链路层协议主要有:SDLC,DHLC,PPP,STP,帧中继等.

OSI模型的第三层:网络层

很多用户经常混淆第二层和第三层的界限,简单来说,如果你在谈论一个与IP地址,,路由协议或者地址解析协议)ARP)相关的问题,那么这就是第三层的问题.

网络层负责对子网间的数据包进行路由选择,它通过综合考虑发磅仁德权,网络拥塞程度,服务质量及可选路由的花费来决定一个网络中两个节点的最佳路径.另外,它还可以实现拥塞控制,网际互联等功能.

网络层协议有:IP,IPX,RIP,OSPF等.

OSI模型第四层:传输层

传输层是OSI模型中最重要的一层,它是两台计算机经过网络进行数据通信时,第一个端到端的层次,起到缓冲作用.当网络层的服务质量不能满足要求时,它将提高服务,以满足高层的要求;而当风纪支服务质量较好时,它只段进行很少的工作.另外,它还要处理到的差错控制和流量控制等问题,最终为会话提供可靠的,无误的传输.

传输层协议主要有:TCP,UDP,SPX等.

在IP协议栈中第四层是TCP(传输控制协议)和UDP(用户数据报协议)所在的协议层.TCP和UDP包含端口号,它可以唯一区分每个数据包追念哪些应用协议((如HTTP,TCP,TELNET等).TCP/UDP端口号提供的附加信息可以为网络交换机所利用,四层交换机利用这种信息来区分包中的数据,这是第四层交换的基础.

OSI模型第五层:会话层

会话层负责在网络中两节点之间建立和维持通信,并保持会话同步,它还决定通信是否中断,以级通信中断时决定从何处重新发送.

OSI模型的第六层:表示层

表示层的作用是管理数据的解密与加密,如常见的系统口令处理,当您的账户数据在发送前被加密,在网络的另一端,表示层将对接收到的数据解密.另外表示层还要对图片和文件格式信息进行解码和编码.

OSI模型第七层:应用层

简单来说,应用层就是为操作系统或者网络应用程序提供访问网络服务接口,包括文件传输,文件管理及电子邮件等的信息处理.

应用层协议有:TELNET FTP HTTP SNMP等.

负载均衡产品有:

工作在第四层产品有:LVS

工作在第七层的产品有:

软件的七层负载均衡大多基于HTTP反向代理方式,代表产品有nginx, l7sw(layer swiithing), haproxy等.

nginx的反向代理负载均衡能够很好地支持虚拟主机,可配置性很强,可以按轮询,IP哈希,URL哈希,权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查.对于使用nginx的负载均衡实例见:http://blog.haohtml.com/archives/6573

ipvsadm+keepalived 实现高可用负载均衡

一.使用系统Red Hat Enterprise Linux Server release 5.4

二.安装环境

1.说明

realserver:192.168.1.11

realserver:192.168.1.12

lvs控制机 MASTER:192.168.1.100

BACKUP:192.168.1.101

虚拟VIP:192.168.1.200

其中:realserver上只需要简单的安装apache即可

lvs控制机需要安装:ipvsadm,keepalived

2.lvs控制机安装,主备机分别安装ipvsadm

实现LVS/DR最重要的两个东西是ipvs内核模块和ipvsadm工具包,现在的系统已经包含ip_vs模块

1)检查内核模块,看一下ip_vs 是否被加载

# lsmod |grep ip_vs

ip_vs    35009    0

如果没有显示,则说明没有加载,执行命令 modprobe ip_vs 就可以把ip_vs模块加载到内核 Continue reading

nginx与lvs做负载均衡的比较

lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。

首先提醒,做技术切不可人云亦云,我云即你云;同时也不可太趋向保守,过于相信旧有方式而等别人来帮你做垫被测试。把所有即时听说到的好东西加以钻研,从而提高自己对技术的认知和水平,乃是一个好习惯。

下面来分析一下两者:

一、lvs的优势:

1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和cpu方面基本无消耗。

2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体是非常稳定的。 Continue reading

基于LVS的集群配置

转自:http://itbbs-arch.pconline.com.cn/topic.jsp?tid=6354059

集群(Cluster)
所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

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

基于LVS的Linux负载均衡技术实现

最近在网络上看到不少人热衷于Linux集群的部署和配置。但是配置的思路和具体的步骤实在不敢恭维。
为了解决一些新手在这方面存在的问题,特将本人原创的几个文档贡献出来。希望高手指正,也希望给新手一些帮助。

在调度器的实现技术中,IP负载均衡技术效率最高。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation),大多数商品化的IP负载均衡调度器产品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的方法VS/TUN(Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下:

Virtual Server via Network Address Translation(VS/NAT)
通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端真实服务器;真实服务器的响应报文通过调度器时,报文源地址被重写再返回给客户,完成整个负载调度过程。 Continue reading

Windows 2003上网络负载均衡的实现

以前一直研究的都是基于Linux/FreeBSD下的负载均衡架构,在我另外一篇负载均衡文章里面专门提到过相关的内容,今天无意中看到一篇文章 谈到在window 2003 server上实现负载均衡,这还是第一次看到,实现的方式类似Linux的LVS软件方式,之前在Windows 2000和XP中都没有类似的功能,感觉挺有意思,搜集过来大家分享。

[原文如下]

在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。
那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。 Continue reading

LVS集群中的IP负载均衡技术

本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三 种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)的工作原理,以及它们的优缺点。

1.前言

在前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出 IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR 技术是LVS集群中实现的三种IP负载均衡技术,我们将在文章中详细描述它们的工作原理和各自的优缺点。 Continue reading

我所熟悉的网站负载均衡技术[原创]

DNS轮循
DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显 的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算 机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器 多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。 Continue reading