搭建集群负载均衡系统_第1页
搭建集群负载均衡系统_第2页
搭建集群负载均衡系统_第3页
搭建集群负载均衡系统_第4页
搭建集群负载均衡系统_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、搭建集群负载均衡系统作者:jxinter(jxinter)RedHat 9.0 LVS安裝手冊:1前言:RedHat 在9.0以后,就将ipvsadm这些套件去除,因此如果想使用LVS(Linux Virtual Server), 就得自已重新编译内核(Kernel)。首先简单介绍一下LVS到底是什么东西,其实他是一种集群(Cluster)的技术,透过支援IPVS的IPVS的Kernel,来达到LVS/Direct Routing(DR),LVS/IP Tunnel,LVS/NAT的功能。详细内容请看LVS官方网站。LVS详细参考资料。http:/linux.vbird.idv.tw/ 鳥哥的

2、Linux私房菜(Linux基本常識)http:/www.adj.idv.tw/server/linux_lvs.php 在RedHat 7.3上架設LVS/ LVS的官方網站 LinuxAid說明(上) LinuxAid說明(下) Alex的網站,重要的patch都從這兒抓取负载均衡集群是在应用服务器高负载的情况下,由多台节点提供可伸缩的,高负载的服务器组以保证对外提供良好的服务响应;而LVS就是实现这一功能的技术.实际上LVS是一种Linux操作系统上基于IP层的负载均衡调度技术,它在操作系统核心层上,将来自IP层的TCP/U

3、DP请求均衡地转移到不同的服务器,从而将一组服务器构成一个高性能、高可用的虚拟服务器。图1 LVS实现集群系统结构简图图1显示一台名为Director的机器是前端负载均衡器,运行LVS,目前只能在Linux下运行.可以针对web、ftp、cache、mms甚至mysql等服务做load balance;后端机器称之为Real Server,是需要负载均衡的服务器,可以为各类系统,Linux、Solaris、Aix、BSD、Windows都可,甚至Director本身也可以作为Real Server. · 集群技术主要分为三大类:o 高可用性(High Available Cluste

4、r),例:Linux-HA o 负载均衡(Load balancing Cluster),例:LVS、MOSIX o 高性能计算(High Performance Computing),例:Beowulf 我们这里使用RedHat 9.0,LVS,Linux-HA,Ldirectord,构造一个高可用的负载均衡集群系· 各层的作用:以WEB服务器为例Load Balancer(负载均衡器):Load Balancer是整个集群系统的前端,负责把客户请求转发到Real Server上。Backup是备份Load Balancer,当Load Balancer不可用时接替它,成为实际的L

5、oad Balancer。Load Balancer通过Ldirectord监测各Real Server的健康状况。在Real Server不可用时把它从群中剔除,恢复时重新加入。 o Server Array(服务器群):Server Array是一组运行实际应用服务的机器,比如WEB, Mail, FTP, DNS, Media等等。在实际应用中,Load Balancer和Backup也可以兼任Real Server的角色。 o Shared Storage(共享存储):Shared Storage为所有Real Server提供共享存储空间和一致的数据内容。 各服务器IP分配:Virt

6、ual IP:00Load Balancer:00Backup:22Real Server 1:24· IPVS· IPVS是LVS集群系统的核心软件,它的主要作用是:o 安装在Load Balancer上,把发往Virtual IP的请求转发到Real Server上。 IPVS的负载均衡机制有三种,这里使用IP Tunneling机制:o Virtual Server via NAT o Virtual Server via IP Tunneling o Virtual Server

7、 via Direct Routing IPVS的负载调度算法有十种:o 轮叫(Round Robin) o 加权轮叫(Weighted Round Robin) o 最少链接(Least Connections) o 加权最少链接(Weighted Least Connections) o 基于局部性的最少链接(Locality-Based Least Connections) o 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication) o 目标地址散列(Destination Hashing ) o 源地址散列(So

8、urce Hashing) o 最短期望延迟(Shortest Expected Delay) o 无须队列等待(Never Queue) IPVS安装主要包括三方面:o 在Load Banlancer上安装IPVS内核补丁 o 在Load Banlancer上安装IPVS管理软件 o 在Real Server上安装ARP hidden内核补丁 (一)在Load Banlancer和Backup上安装支持IPVS和ARP hidden内核补丁,所有文件都放在yiplinuxlvs目录中把linux-2.4.20.tar.gz解压到/usr/src/目录中,解压后得到linux-2.4.20,把

9、它连接ln s linux-2.4.20 linux。因为IPVS-1。0。9中的makeflie文件中默认指定的kernel source的路径为;KERNELSOURCE=/usr/src/linux把ipvs补丁Patch和ARP hidden内核补丁到内核源码中1把ipvs-1.0.9.tar.gz解压到某个目录,解压后得到ipvs-1.0.9,然后进入ipvs-1.0.9目录中,依次执行如下命令。Make patchkernel;make installsource.将ipvs的patch加载到kernel的source中。2再把下到内核相同的不版本的arp hidden修正包。hi

10、dden-2.4.20pre10-1.diff把hidden-2.4.20pre10-1.diff放到/usr/src/linux目录下。进入cd /usr/src/linux下执行命令;patch -p1 < hidden-2.4.20pre10-1.diff对kernel进行patch进入cd /usr/src/linux下依次执行,1 make mrproper为创建新的内和配置做好准备2 Make menuconfig 进行配置。Kernel Compile Options: Code maturity level options -> * Prompt for devel

11、opment and/or incomplete code/driversNetworking options -> * Network packet filtering (replaces ipchains) Network packet filtering debugging . IP: Netfilter Configuration -> IP: Virtual Server Configuration -><M> virtual server support (EXPERIMENTAL)* IP virtual server debugging(12) I

12、PVS connection table size (the Nth power of 2)- IPVS scheduler<M> round-robin scheduling<M> weighted round-robin scheduling<M> least-connection scheduling scheduling<M> weighted least-connection scheduling<M> locality-based least-connection scheduling<M> locality-

13、based least-connection with replication scheduling<M> destination hashing scheduling<M> source hashing scheduling- IPVS application helper<M> FTP protocol helperNetworking options ->里IP: Netfilter Configuration ->最后二项ipchains和ipfwadm不选其它全选中File systemsà里选中Ext3支持EXT3格式要不启

14、动时会报EXT3错误其它相关自行按需所配。再依次执行3. make dep; 检测是否有相关的软件包被使用4. make clean; 为新内核结构准备源目录树5. make bzImage创建内核引导映像6. make modules;make modules_install生成模块7. make install 安装新的内核到指定位置并重新配置grub.conf8. 进入grub.conf中修改vi /boot/grub/menu.lst# grub.conf generated by anaconda# Note that you do not have to rerun grub af

15、ter making changes to this file# NOTICE: You have a /boot partition. This means that# all kernel and initrd paths are relative to /boot/, eg.# root (hd0,0)# kernel /vmlinuz-version ro root=/dev/hda2# initrd /initrd-version.img#boot=/dev/hdadefault=1timeout=10splashimage=(hd0,0)/grub/splash.xpm.gztit

16、le Red Hat Linux (2.4.20) root (hd0,0) kernel /vmlinuz-2.4.20 ro root=LABEL=/ initrd /initrd-2.4.20.img#title Red Hat Linux (2.4.20-8smp)# root (hd0,0)# kernel /vmlinuz-2.4.20-8smp ro root=LABEL=/# initrd /initrd-2.4.20-8smp.img#title Red Hat Linux-up (2.4.20-8)# root (hd0,0)# kernel /vmlinuz-2.4.20

17、-8 ro root=LABEL=/会多出title Red Hat Linux (2.4.20) root (hd0,0) kernel /vmlinuz-2.4.20 ro root=LABEL=/ initrd /initrd-2.4.20.img把kernel /vmlinuz-2.4.20 ro root=LABEL=/中的root=LABEL=/去掉。要不新编的内核引导进不了系统出错。在Load Banlancer和Backup上安装IPVS管理软件:wget /software/kernel-2.4/ipvs-1.0

18、.10.tar.gztar zxf ipvs-1.0.10.tar.gzcd ipvs-1.0.10/ipvs/ipvsadmmake make install安装完成后,执行ipvsadm命令,如果有如下信息出现则说明安装成功了。 rootleon c# ipvsadmIP Virtual Server version 1.0.9 (size=65536)Prot LocalAddressort Scheduler Flags  -> RemoteAddressort           

19、;Forward Weight ActiveConn InActConn到现在为止,支持负载均衡功能的director就安装成功了· 配置IPVS(/etc/sysconfig/ipvsadm),添加Real Server:-A -t 00:80 -s rr-a -t 00:80 -r 22:80 -g-a -t 00:80 -r 23:80 -g-a -t 00:80 -r 24:80 -g· 注意事项:1. Kerne

20、l,IPVS,IPVSadm,ARP hidden之间的版本必须对应。2. 自己编译内核时,从/下载标准内核源文件,不要使用发行版的内核源文件。3. Kernel 2.4.28和2.6.10及以上版本已内置IPVS,有些Linux发行版也在其内核里编译了IPVS。4. ARP hidden可以用arp_ignore/arp_announce或者arptables代替 · HeartBeat HeartBeat是Linux-HA的高可用性集群软件,它的主要作用是:安装在Load Balancer和Backup上,运行于active/standby

21、模式。当Load Balancer失效时,Backup自动激活,成为实际的Load Balancer。 切换到active模式时,按顺序启动Virtual IP、IPVS和Ldirectord。切换到standby模式时,按顺序关闭Ldirectord、IPVS和Virtual IP。 HeartBeat串口线连接测试方法:在Load Balancer上:cat < /dev/ttyS0在Backup上:echo hello > /dev/ttyS0修改主机名(/etc/hosts):      

22、0;  localhost.localdomain localhost22    loadbalancer23    backup下面是具体的安装过程:1、安装heartbeat我们选择heartbeat1.0.4,它是2003/10/14更新的,也是当前最新的稳定版本。另外还有heartbeat-beta1.1.3,不过如果你是第一次安装,没有需要和以前的版本配合的话,就不要选这个。因为我们使用的操作系统是Red Hat 9.0,所以我们直接用相应版本的rpm包来安装。heart

23、beat 1.0.4 for RedHat 9.0主要包有以下4个:heartbeat-1.0.4-2.rh.9.i386.rpmheartbeat-ldirectord-1.0.4-2.rh.9.i386.rpmheartbeat-pils-1.0.4-2.rh.9.i386.rpmheartbeat-stonith-1.0.4-2.rh.9.i386.rpm不过这些包都依赖其它的一些包,它们可以在这里中找到:ipvsadm-1.21-1.rh.9.um.1.i386.rpmlibnet-1.1.0-1.rh.9.um.1.i386.rpmperl-Authen-SASL-2.03-1.rh

24、.9.um.1.noarch.rpmperl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpmperl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpmperl-ldap-0.2701-1.rh.9.um.1.noarch.rpmperl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpmperl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpmperl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpmperl-XML-

25、SAX-0.12-1.rh.9.um.1.noarch.rpm下面给出笔者的安装顺序所有文件都yipjxinterlinuxlvs里面groupadd -g 694 haclientuseradd -u 694 -g haclient haclusterrpm -ivh heartbeat-pils-1.0.4-2.rh.9.i386.rpmrpm -ivh heartbeat-stonith-1.0.4-2.rh.9.i386.rpmrpm -ivh heartbeat-1.0.4-2.rh.9.i386.rpmrpm -ivh ipvsadm-1.21-1.rh.9.um.1.i386.r

26、pmrpm -ivh perl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpmrpm -ivh perl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpmrpm -ivh perl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpmrpm -ivh perl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpmrpm -ivh perl-XML-SAX-0.12-1.rh.9.um.1.noarch.rpmrpm -ivh -nodeps perl-Authen

27、-SASL-2.03-1.rh.9.um.1.noarch.rpmrpm -ivh -nodeps perl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpm(注:以上两个包还有依赖关系,可以从上找到tar包安装,然后就用-nodeps强行安装)rpm -ivh perl-ldap-0.2701-1.rh.9.um.1.noarch.rpmrpm -ivh heartbeat-ldirectord-1.0.4-2.rh.9.i386.rpm2、配置heartbeatheartbeat的配置有以下三个文件,它们是:ha.cf主要配置文件ha

28、resources资源配置文件authkeys 关于认证信息前两个文件应该是所有人都可读的,而authkeys是只有root才可读可写的。· 主配置文件(/etc/ha.d/ha.cf):#debugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 120udpport 694udp eth1baud 19200serial /dev/ttyS0mcast eth0 694 1 0# 当主节点恢复后,是否自

29、动切回auto_failback on# stonith用来保证共享存储环境中的数据完整性#stonith baytech /etc/ha.d/conf/stonith.baytech# watchdog能让系统在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳。# 如果使用该特性,则在内核中装入"softdog"内核模块,用来生成实际的设备文件,输入"insmod softdog"加载模块。# 输入"grep misc /proc/devices"(应为10),输入"cat /proc/m

30、isc | grep watchdog"(应为130)。# 生成设备文件:"mknod /dev/watchdog c 10 130" 。#watchdog /dev/watchdognode loadbalancernode backup# 默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。# 所以当网络中断时,并不会进行Load Balancer和Backup之间的切换。# 可以通过ipfail插件,设置'ping nodes'来解决这一问题。详细说明参考hearbeat文档。#ping 17

31、ping_group group1 respawn root /usr/lib/heartbeat/ipfailapiauth ipfail gid=root uid=root# 其他一些插件可以在/usr/lib/heartbeat下找到#apiauth ipfail uid=hacluster#apiauth ccm uid=hacluster#apiauth cms uid=hacluster#apiauth ping gid=haclient uid=alanr,root#apiauth default gid=ha

32、client· 资源文件(/etc/ha.d/haresources):二台机器这个文件必需一样loadbalancer IPaddr:0/24/eth0 ipvsadm ldirectord· 认证文件(/etc/ha.d/authkeys),选取一种认证方式,这个文件的权限必须是600:auth 11 crc#2 sha1 sha1_any_password#3 md5 md5_any_password· Ldirectord 安装HeartBeat过程中,已经自动安装了Ldirectord,它的作用是:o 监测Real Server

33、,当Real Server失效时,把它从Load Balancer列表中删除,恢复时重新添加。 配置(/etc/ha.d/ldirectord.cf):# Global Directiveschecktimeout=3checkinterval=1fallback=:80autoreload=yeslogfile="/var/log/ldirectord.log"quiescent=yes# A sample virual with a fallback that will override the gobal settingvirtual=192.168

34、.0.100:80        real=22:80  gate        real=23:80  gate        real=24:80 gate         fallback=127.

35、0.0.1:80   gate        service=http        request="test.html"        receive="Test Page"        scheduler=rr&

36、#160;       #persistent=600        #netmask=55        protocol=tcp在每个Real Server的中添加监控页:echo "Test Page" >> /var/www/html/test.html Realserver(即24)上的设置象上面一样打ARP补丁。可以不用下载标准内核。直接用系统自带的内核再打上ARP把hidden-2.4.20pre10-1.diff拷贝到/usr/src/linux-2.4目录下。然后执行patch -p1 < hidden-2.4.20pre10-1.diff ;对kernel进行patch 进入/usr/src/linux-2.4目录,分别执行: make mrproper 为创建新的内和配置做好准备 make menuconfig 进行配置&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论