集群负载均衡系统讲解

上传人:我** 文档编号:114325889 上传时间:2019-11-10 格式:DOC 页数:17 大小:423KB
返回 下载 相关 举报
集群负载均衡系统讲解_第1页
第1页 / 共17页
集群负载均衡系统讲解_第2页
第2页 / 共17页
集群负载均衡系统讲解_第3页
第3页 / 共17页
集群负载均衡系统讲解_第4页
第4页 / 共17页
集群负载均衡系统讲解_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《集群负载均衡系统讲解》由会员分享,可在线阅读,更多相关《集群负载均衡系统讲解(17页珍藏版)》请在金锄头文库上搜索。

1、如何在RedHat 7.3/8.0/9.0上实现集群负载均衡系统摘要负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS就是实现这一功能的技术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能。(2004-06-21 21:43:44)By lanf, 出处:LinuxAID作者:崔涛 1前言 先来简单说说负载均衡集群, 它是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS就是实现这一功能的技

2、术,它通过使内核支持ipvs来实现LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能。由于本文的着眼点在于如何利用LVS构建一个负载均衡集群,所以关于负载均衡集群、LVS的详细内容就不在这里阐述了,如果大家有兴趣可参考如下信息: http:/www.linuxvirtualserver.org/ LVS的官方网站 http:/ LVS项目介绍 RedHat 7.3/8.0都把ipvs预先编译到了RedHat发行版的内核中,但使用的ipvs版本比较低是ipvs 0.9.7/1.0.4,从RedHat 9开始ipvs不再被预先编译到了RedHat发行版

3、的内核中,本文介绍了如何把最新版的ipvs Version 1.0.9编译到内核中并配置负载均衡集群的方法和一些技巧。 不论是在哪个版本的RedHat Linux上安装ipvs,工作大都可以分为如下几步: 图1给出了最简单的负载均衡集群的网络拓扑,这里需要指出的是以上提到的安装ipvs/ipvsadm的工作都是在Director上进行的。 图 1 2在RedHat Linux上实现ipvs 在RedHat 7.3/8.0已经预先打了ipvs的补丁,在预安装的内核中已将ipvs编译成模块,如果你能在目录/lib/modules/2.4.18-*/kernel/net/ipv4/ipvs中看到ip

4、_vs_*文件,就证明你的系统已经支持ipvs,可以通过如下步骤安装ipvsadm并配置转发方式。 但系统预编译的ipvs是比较早的版本(version 0.9.7/1.0.4),本文把它升级到最新的版本Version 1.0.9。 21得到内核源码和相关的软件包 这里需要强调的是由于RedHat 7.3/8.0的内核源码中已经预先打了ipvs的补丁,所以在安装ipvs时不能使用RedHat光盘中的Kernel Source,而是需要去下载标准的内核。对于RedHat 9.0,虽然内核中没有预编译ipvs,但我还是提倡使用standard kernel,因为所有的ipvs的补丁包都是为标准内核

5、开发的。从kernel ftp site得到standard kernel linux-2.4.18.tar.gz(RedHat 7.3/8.0), linux-2.4.20.tar.gz (RedHat 9.0), 从lvs homepage 得到ipvs-1.0.9.tar.gz、ipvsadm-1.21.tar.gz。(在下面的阐述中都以内核linux-2.4.18.tar.gz为例,对于内核linux-2.4.20.tar.gz做法是完全相同的) 22把ipvs补丁Patch到内核源码中 把linux-2.4.18.tar.gz解压到/usr/src目录,生成了/usr/src/lin

6、ux目录;如果生成的是/usr/src/linux-2.4.18*目录,则要在/usr/src下建立一个连接 ln s linux-2.4.18* linux,因为在ipvs-1.0.9中的makefile文件中默认指定Kernel Source的路径为:KERNELSOURCE = /usr/src/linux(当然,如果您直接修改makefile中的KERNELSOURCE值,使它指向源码的目录也可以)。 把ipvs-1.0.9.tar.gz解压缩到某个目录,如/usr/src/source,生成了/usr/src/source/ipvs-1.0.9目录;进入/usr/src/source

7、/ipvs-1.0.9,依次执行如下命令:make patchkernel、make installsource,将ipvs的Patch加载到kernel的source中。当然您也可以用linux-2.4.20-ipvs-1.0.9.patch.gz直接patch到内核中,在/usr/src执行 gzip -cd linux-2.4.20-ipvs-1.0.9.patch.gz,然后进入/usr/src/linux执行patch -p1 Networking options选项-IP:Virtual Server Configuration选项(如图2 图3) IP:Virtual Serve

8、r Configuration中的选项设定都用M make dep 检测是否有相关的软件包被使用 make clean 为新内核结构准备源目录树 make bzImage 创建内核引导映像 make modules、make modules_install 生成模块 图2 图3 注意的问题:如果使用Standard Kernel,在make menuconfig时可能在Networking options选项中找不到IP:Virtual Server Configuration选项,这是因为没有选中Network packet filtering选项,如图 4 图 4IP:Virtual Se

9、rver Configuration选项是基于Network packet filtering选项的。 技巧:在make menuconfig时,我们面对众多的选项常常不知道该如何选择,此时可以把安装时的配置文件copy到/usr/src/linux中:cp /boot/config-2.4.* /usr/src/linux/.config,再用make menuconfig编译,它会读取.config中原来的配置信息,这样只要对IP:Virtual Server Configuration中的新选项选择即可。 24启用新内核 mkinitrd /boot/initrd-2.4.18ipvs.

10、img 2.4.18 创建initrd映像 cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18ipvs cd /boot rm vmlinuz ln s vmlinuz-2.4.18ipvs vmlinuz cp /usr/src/linux/System.map /boot/System.map-2.4.18ipvs cd /boot rm System.map ln s System.map-2.4.18ipvs System.map vi /etc/lilo.conf 添加启动选项: image=/boot/vmli

11、nuz-2.4.18ipvs label=linux-ipvs initrd=/boot/initrd-2.4.18ipvs.img read-only root=/dev/hda3 lilo 然后重新启动,选择新内核就可支持最新的ipvs 25安装ipvs管理工具ipvsadm 当使用了支持ipvs的内核后,就可以安装ipvsadm,ipvsadm是设置ipvs转发方式和调度算法的工具 tar xzvf ipvsadm-1.21.tar.gz cd ./ipvsadm-1.21 make make install 安装完成后,执行ipvsadm命令,如果有如下信息出现则说明安装成功了。 到现

12、在为止,支持负载均衡功能的director就配置成功了,接下来我们可以通过ipvsadm来配置一个负载均衡集群。 3配置LVS,构建负载均衡集群 LVS提供了三种转发方式:VS/NAT、VS/DR 、VS/TUN, 而不同的转发方式对后端的realserver要求也不同(如表1) 表 1 构建负载均衡集群的工作主要涉及三个方面(如图5): 图 5 31修正realserver上可能的arp problem 注意的问题:这里所说的修正系统的arp problem主要是针对realserver使用linux操作系统,而且转发方式为VS/DR和VS/TUN的情况。这是因为在使用VS/DR和VS/TU

13、N的时候,会需要一块网卡上绑定两个IP的情况,但linux在kernel 2.2.14以后就将eth0:1的NOARP FLAG关闭,这使得eth0:1仅仅是eth0的别名,任何对eth0:1的操作都对eth0有效,因此如果此时使eth0:1 NOARP,则也使得eth0 NOARP,这样整个网卡都不会收到数据包,所以要修正系统的arp problem,使eth0:1不响应arp请求,同时eth0仍能接受数据包。有关Arp问题的详细内容请参见:LVS-HOWTO-arp problem。 由表1可以看出对应不同的转发方式,realserver上可以使用的操作系统也是不同的,而linux和win

14、dows 2000 server则是所有转发方式都支持的操作系统,作者在本文中也是分别以这两种操作系统为例予以介绍。 修正realserver上可能的arp problem时,根据转发方式和操作系统的不同分为如下几种情况: 311 VS/NAT方式 不论操作系统选择linux还是windows 2000 server,对系统不需要做任何修改。 312 VS/DR和VS/TUN方式 realserver使用linux操作系统,对系统的修改如下: 1) 下载所需的软件包 从kernel ftp site得到standard kernel linux-2.4.18.tar.gz,;从Julians

15、patches and software page得到hidden-2.4.5-1.diff 2)重新编译内核,修正arp problem 把linux-2.4.18.tar.gz解压倒/usr/src目录,生成了/usr/src/linux目录;(如果生成的是/usr/src/linux-2.4.18*目录,则要在/usr/src下建立一个连接 ln s linux-2.4.18* linux) 把hidden-2.4.5-1.diff放到/usr/src/linux下,用命令patch -p1 hidden-2.4.5-1.diff对kernel进行patch 进入/usr/src/linux目录,依次执行make

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号