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

Centos5下配置 lvs DR

系统环境如下:

server1:192.168.1.206 vip server centos5
server2:192.168.1.210 apache centos5
server3:192.168.1.211 apache centos5

vip:192.168.1.208
port:80

============================================

下面的安装是在vip server上进行的

1、查看自己的操作系统的内核 #uname -a

2、这个内核已经包括了ipvs的补丁,进行如下的操作就可以

3、下面建立一个指向,为了保证ipvsadm安装

  1. modprobe ip_vs
  2. cat /proc/net/ip_vs

出现如下的提示

IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags Continue reading

nginx与lvs做负载均衡的比较

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

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

下面来分析一下两者:

一、lvs的优势:

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

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

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

三种LVS负载均衡模式

调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的。

LVS负载均衡模式—1.NAT模式

NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)。如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此REALSERVER,而REALSERVER则在处理完成后把数据经过DR主机发回给客户端,DR在这个时候再把数据包的原IP地址改为DR接口上的IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过DR。 Continue reading

lvs-可伸缩Web和媒体服务

基于LVS可伸缩Web和媒体服务的体系结构如图2.2所示:在前端是一个负载调度器,一般采用IP负载均衡技术来获得整个系统的高吞吐率;在第二层是服务器池,Web服务和媒体服务分别运行在每个结点上;第三层是数据存储,通过分布式文件系统使得每个服务器结点共享相同的数据。集群中结点间是通过高速网络相连的。
2.2:基于LVS的可伸缩Web和媒体集群
分布式文件系统提供统一的存储空间,这使得系统的维护工作比较方便,且系统运行比较高效。当所有服务器结点超载时,管理员可以很快地加入新的结点来处理请求,而无需将Web文档等复制到结点的本地硬盘上。Webmaster可以看到统一的文档存储空间,维护和更新页面比较方便,对分布式文件系统中页面的修改对所有的服务器都有效。大的媒体文件(如视频文件)分段存储在分布式文件系统的多个结点上,可以提高文件系统的性能和文件服务器间的负载均衡。 Continue reading

LVS集群的通用结构

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

图2.1:LVS集群的体系结构

为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。LVS集群的体系结构如图2.1所示,它有三个主要组成部分:

  • 负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。它可以是用IP负载均衡技术的负载调度器,也可以是基于内容请求分发的负载调度器,还可以是两者的结合。
  • 服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
  • 后端存储(backend storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。 Continue reading

Keepalived服务器状态监测

keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器

发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,…

相关keepalived实现的教程:

基于LVS的集群配置:http://blog.haohtml.com/archives/4502

利用LVS+Keepalived 实现高性能高可用负载均衡服务器:http://blog.haohtml.com/archives/5365

CentOS5.5环境下布署LVS+keepalived :http://blog.haohtml.com/archives/6348

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