




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
近期配了几个lvs 一是给自己个小结二是 所查网上lvs 大多陈旧 或语焉不详 所以补个较新的 有不对之处请大家指正vip :98虚拟ipmaster:96主分发服务器slave:97备份分发服务器real1:91响应服务器1real2:92响应服务器2实现以下目的一)配置基于DR模式简单Lvs集群配置基于隧道模式Lvs二)集群配置基于高可用Lvs+heartbeat三)双机lvs-ha 一、配置基于DR模式Lvs集群1、下载ipvsadm管理程序ipvsadm-*.tar.gztar zxvf ipvsadm-*.tar.gzcd ipvsadm-*make & make install注意在make时可能会出现很多错误的信息,请按照如下操作就可以心编译正常ln -s /usr/src/kernels/2.6.9-22.EL-i686/usr/src/linuxcd ipvsadm-*make & make install我机器是centos4所以我yum安装yum -y install ipvsadm# ipvs管理器yum -y installlibnet # 库文件yum -y install e2fsprogs# 库文件 yum -y installheartbeat# linux-hayum y installheartbeat-ldirectordcp/usr/share/doc/heartbeat-2.1.*/ha.cf /etc/ha.d/cp/usr/share/doc/heartbeat-2.1.*/authkeys /etc/ha.d/cp/usr/share/doc/heartbeat-2.1.*/haresources /etc/ha.d/cp /usr/share/doc/heartbeat-ldirectord-2.1.*/ldirectord.cf/etc/ha.d/2、配置VIP脚本rootct1 # more/etc/init.d/lvsdr-basic#!/bin/sh# This script willbe executed *after* all the other init scripts.# You can put yourown initialization stuff in here if you dont# want to do thefull Sys V style init stuff.VIP=98RIP1=91RIP2=92# ifconfig a #/sbin/ifconfigeth0:0 $VIP broadcast $VIP netmask 55 up#/sbin/route add-host $VIP dev eth0:0#echo 1 /proc/sys/net/ipv4/ip_forward/etc/rc.d/init.d/functionscase $1in start) echo startLVS of DirectorServer#Set the Virtual IPAddress /sbin/ifconfigeth0:1 $VIP broadcast $VIP netmask 55 up /sbin/route add-host $VIP dev eth0:1 #Clear IPVS Table /sbin/ipvsadm -C #Set Lvs /sbin/ipvsadm -A -t$VIP:80 -s rr /sbin/ipvsadm -a -t$VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t$VIP:80 -r $RIP2:80 -g #Run Lvs /sbin/ipvsadm ; stop) echo closeLVS Directorserver /sbin/ipvsadm -C ; *)echo Usage:$0 start|stop exit 1 esac下例是其他类似的lvsdr配置文件more /etc/init.d/lvsDR #!/bin/sh# description: start LVS ofDirectorserverVIP=98RIP1=91RIP2=92. /etc/rc.d/init.d/functionscase $1 in start) echo start LVSofDirectorServer # set the VirtualIP Address /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask55 up /sbin/route add -host $VIP dev eth0:0 #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr(如果需要session保持添加-p 默认保持300秒) /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g #Run LVS /sbin/ipvsadm #end ; stop) echo close LVS Directorserver /sbin/ipvsadm -C ; *) echo Usage: $0 start|stop exit 1esac隧道模式(tun ) more /etc/init.d/tunlvs #!/bin/sh# description: start LVS ofDirectorserver VIP=98RIP1=91RIP2=92. /etc/rc.d/init.d/functionscase $1 in start) echo start LVSofDirectorServer # set the VirtualIP Address /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask55 up /sbin/route add -host $VIP dev tunl0 #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i #Run LVS /sbin/ipvsadm #end ; stop) echo close LVS Directorserver ifconfig tunl0 down /sbin/ipvsadm -C ; *) echo Usage: $0 start|stop exit 1esac(-s rr 是使用了轮叫算法,可以自行选择相应的算法,更改rr就可以了,ipvsadm -h查看帮助。-g 是使用lvs工作DR直接路由模式,也可自行修改)如果有多个realserver直接添加就可以了,之后启动此脚本就可以了。NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)。如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REAL SERVER的IP地址并发至此REALSERVER,而REAL SERVER则在处理完成后把数据经过DR主机发回给客户端,DR在这个时候再把数据包的原IP地址改为DR接口上的IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过DR。隧道模式则类似于VPN的方式,使用网络分层的原理,在从客户端发来的数据包的基础上,封装一个新的IP头标记(不完整的IP头,只有目的IP部)发给REAL SERVER,REAL SERVER收到后,先把DR发过来的数据包的头给解开,还原其数据包原样,处理后,直接返回给客户端,而不需要再经过DR。直接路由模式比较特别,很难说和什么方面相似,前2种模式基本上都是工作在网络层上(三层),而直接路由模式则应该是工作在数据链路层上(二层)。其原理为,DR和REAL SERVER都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REALSERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的REAL SERVER,把目的MAC地址改为REAL SERVER的MAC并发给这台REALSERVER。这时REAL SERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于DR要对二层包头进行改换,所以DR和REALSERVER之间必须在一个广播域,也可以简单的理解为在同一台交换机上。 本帖最后由 gunguymadman 于 2008-7-31 10:00 编辑 cluster.JPG (27.07 KB) 2008-7-2 15:12 3、配置realserver脚本#!/bin/bash#description : start realserver VIP=98/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 55 up/sbin/route add -host $VIP dev lo:0echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/all/arp_announce sysctl -p#end此脚本使realserver不响应arp请求,将此脚本分别在realserver上执行就可以了。Ok后写入rc.local测试:分别启动realserver上的httpd服务在realserver1 执行echo 191/var/www/html/index.html在realserver2 执行echo 192/var/www/html/index.html打开浏览器输入98应该可以分别看到:191 和 192.以上是最简单的lvs 。一个dr ,2个real 。 2个配置文件,几个rpm包。我们需要的是高可用,主备dr,master down后 bak自动接管, master启动后bak交出管理权。现在我们开始配置这样的lvs。二)集群配置基于高可用Lvs+heartbeat主服务器配置:1- 修改/etc/hosts文件96 ct197 ct291 xxx92 xxxx1- 修改haresources文件 ct1 IPaddr:98 lvsdr-basic ldirectord a. 定义主服务器和主服务器eth0虚拟ip,b. 定义heartbeat启动监控的服务 ,ldirectord, lvsdr-basic3- 修改authkeys文件修改权限 chmod 600 authkeys auth 1 1 crc4- 修改ha.cf debugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0deadtime 20initdead 20#bcast eth1 在eth1上发送心跳广播ucast eth1 0auto_failback onnode ct1node ct2ping_group group1 96 97respawn root /usr/lib/heartbeat/ipfail apiauth ipfail gid=root uid=rootauthkeys这个配置文件非常简单,就是在auth选择一个值。每个值对应一种算法,这个算法是在主节点和从节点间数据校验用的。这个配置文件权限必须是0600。chmod 0600 authkeys配置文件的值如下:auth 31 crc#2 sha1 HI!#3 md5 Hello!haresources这个文件配置的是节点要管理的资源也就你的高可用服务,这些资源在主节点down调时候,从节点就会开启这些资源。Heartbeat认为你配置资源名称 start/stop就可以开启/停止这些资源。所以让你的资源支持start/stop。其实这你只需要对你的应用服务作个脚本,脚本接受start参数就会启动应用服务,接受stop参数就会停止服务。个人建议,你什么都不要做,就把应用程序名当作资源名就可以了,启动资源名的时候就自动启动你的服务了。而在down机的时候,所有的程序都死了,根本就不需要heartbeat调用你配置资源名称stop命令来结束程序。在文件中找到:#node70 Filesystem:/dev/sda1:/data1:ext2这一项,去掉#号,根据格式配置你的资源。第一字段(Node1):主节点名称(必须uname n的保持一致);第二字段(70):对外虚拟服务IP;第三字段(Filesystem:/dev/sda1:/data1:ext2):Filesystem表示资源名称,/dev/sda1表示资源启动时的第一个参数,/data1表示第二个参数,/ext2表示第三个参数,依此类推。ha.cf这个配置文件比较复杂。我只配了关键的几项:debugfile /var/log/ha-debug说明:调试日志文件文件,取默认值logfile /var/log/ha-log说明:系统运行日志文件,取默认值logfacility local0说明:日志等级,取默认值keepalive 1说明:心跳频率,自己设定。1:表示1秒;200ms:表示200毫秒deadtime 10说明:节点死亡时间阀值,就是从节点在过了10后还没有收到心跳就认为主节点死亡,自己设定warntime 5说明:发出警告时间,自己设定udpport 28855说明:心跳信息传递的udp端口,自己设定#bcast eth0 # Linux说明:采用udp广播播来通知心跳,建议在副节点不只一台时使用ucast eth0 xxx说明:采用网卡eth0的udp单播来通知心跳,eth0的IP#mcast eth0 694 1 0说明:采用udp多播播来通知心跳,建议在副节点不只一台时使用auto_failback off说明:主节点重启成功后,资源是自动拿回到主节点还是等到副节点down调后拿回资源node heartbeat1说明:主节点名称,与uname n保持一致。排在第一的默认为主节点,所以不要搞措顺序node heartbeat2说明:副节点名称,与uname n保持一致watchdog /dev/watchdog说明:看门狗。如果本节点在超过一分钟后还没有发出心跳,那么本节点自动重启以上这些是我个人认为必配项,下面这些是可选项。stonith baytech /etc/ha.d/conf/stonith.baytech说明:主/副等所有节点的一种校验。respawn userid /path/name/to/run说明:和heartbeat必须一起启动的本地服务ping 54说明:伪节点IP,伪节点就是其失效时主/副节点不会正常工作但本身不是主/副节点之一。respawn hacluster /usr/lib/heartbeat/ipfail说明:与ping选项一起使用,取默认值。baud 19200说明:串口波特率,与serial一起使用。serial /dev/ttyS0# Linux说明:采用串口来传递心跳信息。ldirectord.cf checktimeout=3checkinterval=1autoreload=nologfile=/var/log/ldirectord.logquiescent=novirtual=98:80 real=91:80 gate real=92:80 gate service=http / 服务名称http request=test.html /lvs服务器测试代码 receive=Test / scheduler=sh / 按照source hash 调度 protocol=tcp 在192,191机器apache htdocs里建立test.html文件 输入Test 确保web页面可访问checktimeout=3(一个真实的服务器被认为出错所需的时间间隔)checkinterval=1 (发出检查的时间间隔)#autoreload=no (自动重载,默认值是no,选yes时配置文件发生变化后就会自动载入)#callback=配置文件的路径(用来重载配置文件)fallback=:80 (当所有的真实服务器出错时,web服务重定向的地址)#logfile=/var/log/ldirectord.log (日志文件的目录)#logfile=local0#execute=”configuration”(为这个配置文件启动ldirectord的实例)quiescent=yes(当选择yes时,一台真实服务器down以后,并不是把它从lvs的表中删除,而是把它的权值设为0,新的链接将不可达)virtual=98:80(虚拟的ip和端口号)real=91:80 gate ( 真实的服务器)real=92:80 gatefallback=:80 gatechecktype=negotiate(检测类型,默认为negotiate)service=http checkport:80 (检查的端口号)request=test.html (负载平衡机将查询实际server的服务目录下面是不是 有该文件,如果有说明server还是在服务的,没有将认为它已经出错)receive=Test scheduler=rr(调度算法)#persistent=600#netmask=55protocol=tcp (协议)3. 启动 输入 ldirectord start 启动服务,ldirectord stop停止服务,ldirectord rload 重新载入配置信息。同样bak服务器也配置如上。另外,bak服务 cd /etc/ha.d ln s tmp/harc ./etc/rc.d/rc.local 中写入 /etc/init.d/heartbeat start主服务器rc.local 中写入 /etc/init.d/lvsdr-basic start /etc/init.d/heartbeat start内网服务器可关闭iptables公网服务器最好是heartbeat通讯口专用iptables相对应的网口过滤 Ok 到此为止 高可用配完下面做双机cluster三)双机lvs-ha 主服务器+真实的web服务器 :8备服务器+ 真实的web服务器:0Lvs director 配置在主服务器上,根据源地址分配服务器。集群的虚拟ip为60.*.165,初始分配在主服务器的eth0, 主服务器宕机后,ip由备份服务器接管,分配在备份服务器的eth0. 二、集群软件安装 主服务器安装: yum -y install ipvsadm # ipvs管理器 yum -y install libnet # 库文件yum -y install e2fsprogs# 库文件 yum -y install heartbeat # linux-hayum y install heartbeat-ldirectord# connector of linux-ha and lvs 【备份服务器不用安装】 2- 拷贝配置文件cp /usr/share/doc/heartbeat-2.1.*/ha.cf /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.*/authkeys /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.*/haresources /etc/ha.d/cp /usr/share/doc/heartbeat-ldirectord-2.1.*/ldirectord.cf /etc/ha.d/【备份服务器不用】三、集群配置主服务器配置:1- 修改/etc/hosts文件8 name10 name22- 修改haresources文件 liuyuxi IPaddr:60.*.165 lvsdr-basic ldirectord 3- 修改authkeys文件修改权限 chmod 600 authkeys auth 1 1 crc4- 修改ha.cf debugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0deadtime 20initdead 20ucast 0auto_failback onnode name1node name2ping_group group1 8 0respawn root /usr/lib/heartbeat/ipfail apiauth ipfail gid=root uid=root5- ldirectord.cf checktimeout=3checkinterval=1autoreload=nologfile=/var/log/ldirectord.logquiescent=novirtual=60.*.165:80 real=60.*.171:80 gate real=60.*.164:80 gate service=http request=test.html receive=Test scheduler=sh protocol=tcp 6- lvsdr-basic/etc/init.d/lvsdr-basic #!/bin/sh# This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you dont# want to do the full Sys V style init stuff.VIP=60.*.165RIP1=60.*.171RIP2=60.*.164# ifconfig a #/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 55 up#/sbin/route add -host $VIP dev eth0:0echo 1 /proc/sys/net/ipv4/ip_forward备份服务器配置: 1- 修改/etc/hosts文件同主服务器2- 修改haresourc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古呼伦贝尔农垦集团有限公司招聘笔试题库及答案详解(名校卷)
- 教师招聘之《小学教师招聘》综合练习附参考答案详解【研优卷】
- 2025年内蒙古呼伦贝尔农垦牙克石莫拐免渡河农牧场有限公司招聘笔试参考题库附答案详解(黄金题型)
- 教师招聘之《幼儿教师招聘》考前冲刺训练试卷附参考答案详解【b卷】
- 教师招聘之《小学教师招聘》考试押题密卷附答案详解【培优b卷】
- 教师招聘之《幼儿教师招聘》考前冲刺练习题及参考答案详解(培优)
- 2025年教师招聘之《小学教师招聘》练习题包含答案详解【培优b卷】
- 2025年教师招聘之《幼儿教师招聘》题库及答案详解(网校专用)
- 2025年教师招聘之《小学教师招聘》题库检测试卷及完整答案详解(典优)
- 教师招聘之《小学教师招聘》检测卷讲解【夺分金卷】附答案详解
- 医疗损害责任界定-洞察及研究
- 2025年海南省社区工作者招聘考试笔试试题(含答案)
- (2025年标准)监控维护维修协议书
- 国务院部署实施“人工智能+”行动的意见解读
- 2025海南省通信网络技术保障中心招聘事业编制人员(第2号)考试备考题库及答案解析
- 2025年全国中学生天文知识竞赛考试题库(含答案)
- 2025年人工智能训练师(三级)职业技能鉴定理论考试题库(含答案)
- 2025年发展对象考试题库附含答案
- 基层医院如何做好临床科研课件
- 核电质量保证培训讲义课件
- 九年级英语全册单元测试题全套带答案(人教版新目标)
评论
0/150
提交评论