Linux负载均衡软件LVS主讲人:高俊峰华章培训网、[]华章培训网版权所有Linux负载均衡软件LVS华章培训网、[]华章培训网版权所有内容概述LVS集群的体系结构以及特点通过LVS+Keepalived搭建高可用的负载均衡集群系统测试LVS+Keepalived高可用负载均衡集群Linux负载均衡软件LVS第二讲:通过LVS+Keepalived搭建高可用的负载均衡集群系统主讲人:高俊峰华章培训网、[]华章培训网版权所有华章培训、安装LVS软件(1)安装前准备操作系统:统一采用Centos5.3版本,地址规划如下:更详细的信息如下图所示:图中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR、TUN模式中,数据包是直接返回给用户的,所以,在DirectorServer上以及集群的每个节点上都需要设置这个地址。此IP在RealServer上一般绑定在回环地址上,例如lo:0,同样,在DirectorServer上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0。各个RealServer可以是在同一个网段内,也可以是相互独立的网段,还可以是分布在internet上的多个服务器.通过LVS+Keepalived搭建高可用的负载均衡集群系统第4页华章培训、安装LVS软件(1)安装前准备安装的LVS负载均衡集群拓扑图:通过LVS+Keepalived搭建高可用的负载均衡集群系统第5页华章培训、安装LVS软件(2)安装操作系统需要注意的事项Centos5.3版本的Linux,内核默认支持LVS功能,为了方便编译安装IPVS管理软件,在安装操作系统时,建议选择如下这些安装包:桌面环境:xwindowssystem、GNOMEdesktopenvironment。开发工具:developmenttools、xsoftwaredevelopment、gnomesoftware、development、kdesoftwaredevelopment。系统安装完毕,可以通过如下命令检查kernel是否已经支持LVS的ipvs模块:[root@localhost~]#modprobe-l|grepipvs/lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs.ko/lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了。通过LVS+Keepalived搭建高可用的负载均衡集群系统第6页华章培训、安装LVS软件(3)在DirectorServe上安装IPVS管理软件IPVS提供的软件包有源码方式的也有rpm方式的,这里介绍下源码方式安装IPVS,首先从下载对应版本的ipvs源码,由于我们这里采用的操作系统为Centos5.3版本,因此,下载对应的ipvsadm-1.24版本,接着进行安装:[root@localhost~]#tarzxvfipvsadm-1.24.tar.gz[root@localhost~]#cdipvsadm-1.24[root@localhost~]#make[root@localhost~]#makeinstall注意:在make时可能会出现错误编译信息,这是由于编译程序找不到对应内核的原因,按照如下操作就可以正常编译:[root@localhost~]#ln-s/usr/src/kernels/2.6.18-128.el5-i686//usr/src/linux也可以下载rpm安装包,通过rpm方式进行安装:[root@localhost~]#rpm–ivhipvsadm-1.24-6.1.i386.rpm然后执行:[root@localhost~]#ipvsadm--help如果看到帮助提示,表明IPVS已经成功安装。通过LVS+Keepalived搭建高可用的负载均衡集群系统第7页华章培训、安装LVS软件(4)ipvsadm的用法通过LVS+Keepalived搭建高可用的负载均衡集群系统第8页华章培训、安装LVS软件(4)ipvsadm的用法举例如下:[root@localhost~]#ipvsadm-A-t192.168.12.135:80-srr-p600以上表示在内核的虚拟服务器列表中添加一条192.168.12.135的虚拟服务器记录,并且指定此虚拟服务器的服务端口为80,然后指定此虚拟服务器的调度策略为轮询调度,并且在每个realserver上的持续服务时间为600秒,即10分钟[root@localhost~]#ipvsadm-A-t192.168.12.188:21-swlc以上表示在内核的虚拟服务器列表中又添加了一条192.168.12.188的虚拟服务器,此虚拟服务器的服务端口为21,即FTP服务。使用的调度策略为wlc,即加权最少链接算法。[root@localhost~]#ipvsadm-a-t192.168.12.135:80-r192.168.12.246:80–g[root@localhost~]#ipvsadm-a-t192.168.12.135:80-r192.168.12.237:80–g以上两条设置表示在虚拟服务器192.168.12.135中添加两条新的RealServer记录,两个RealServer的IP分别为192.168.12.246和192.168.12.237,参数“-g”指定了虚拟服务器的工作模式为直接路由模式,即DR模式。通过LVS+Keepalived搭建高可用的负载均衡集群系统第9页华章培训、开始配置LVS集群下面通过搭建服务的负载均衡实例,讲述基于DR模式的LVS集群配置。(1)DirectorServer的配置在DirectorServer上配置LVS负载均衡集群,有两种方法:通过ipvsadm命令行进行配置通过Redhat提供的工具piranha来配置LVS1)通过ipvsadm命令行方式配置LVS安装IPVS后,就可以配置LVS集群了,首先在DirectorServer上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:[root@localhost~]#ifconfigeth0:0192.168.12.135broadcast192.168.12.135netmask255.255.255.255up此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.12.135,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.12.135,需要特别注意的是,这里的子网掩码为255.255.255.255。然后给设备eth0:0指定一条路由,执行如下指令:[root@localhost~]#routeadd-host192.168.12.135deveth0:0[root@localhost~]#echo1/proc/sys/net/ipv4/ip_forward指令中,参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,而在NAT模式下此操作是必须的。通过LVS+Keepalived搭建高可用的负载均衡集群系统第10页华章培训、开始配置LVS集群下面通过搭建服务的负载均衡实例,讲述基于DR模式的LVS集群配置。(1)DirectorServer的配置在DirectorServer上配置LVS负载均衡集群,有两种方法:通过ipvsadm命令行进行配置通过Redhat提供的工具piranha来配置LVS1)通过ipvsadm命令行方式配置LVS然后开始配置ipvs,执行如下操作:[root@localhost~]#ipvsadm-C[root@localhost~]#ipvsadm-A-t192.168.12.135:80-srr-p600[root@localhost~]#ipvsadm-a-t192.168.12.135:80-r192.168.12.246:80-g[root@localhost~]#ipvsadm-a-t192.168.12.135:80-r192.168.12.237:80-g上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,第二行是添加一条新的虚拟IP记录。这个新的IP是192.168.12.135,同时指定持续服务时间为600秒。第三、四行是在新加虚拟IP记录中添加两条新的RealServer记录,并且指定LVS的工作模式为直接路由模式。最后,启动LVS服务,执行如下操作:[root@localhost~]#ipvsadm这样,LVS在DirectorServer上的配置就完成了.为了管理和配置的方便,可以将上面的操作写成一个脚本文件,脚本内容如下:通过LVS+Keepalived搭建高可用的负载均衡集群系统第11页华章培训、开始配置LVS集群通过LVS+Keepalived搭建高可用的负载均衡集群系统第12页#!/bin/sh#description:StartLVSofDirectorserverVIP=192.168.12.135RIP1=192.168.12.246RIP2=192.168.12.237./etc/rc.d/init.d/functionscase$1instart)echostartLVSofDirectorServer#settheVirtualIPAddressandsysctlparameter/sbin/ifconfigeth0:0$VIPbroadcast$VIPnetmask255.255.255.255upecho1/proc/sys/net/ipv4/ip_forward#ClearIPVStable/sbin/ipvsadm-C#setLVS/sbin/ipvsadm-A-t$VIP:80-srr-p600/sbin/ipvsadm-a-t$VIP:80-r$RIP1:80-g/sbin/ipvsadm-a-t$VIP:80-r$RIP2:80-g#RunLVS/sbin/ipvsadm;;stop)echocloseLVSDirectorserverecho0/proc/sys/net/ipv4/ip_forward/sbin/ipvsadm-C/sbin/ifconfigeth0:0down;;*)echoUsage:$0{start|stop}exit1Esac华章培训、开始配置LVS集群2)通过Redhat提供的工具piranha来配置LVSPiranha是REDHAT提供的一个基于Web的LVS配置软件,可以省去手工配置LVS的繁琐工作,同时,也可单独提供cluster功能,例如,可以通过Piranha激活DirectorServer的后备主机,也就是配置DirectorServer的双机热备功能。Piranha工具的安装非常简单,下载Piranha的rpm包,进行安装即可:[root@localhost~]#rpm–ivhpiranha-0.8.2-1.i386.rpmPiranh