ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:636.45KB ,
资源ID:8937469      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8937469.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(37LVS集群.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

37LVS集群.docx

1、37LVS集群37_01_Linux集群系列之四LVS DR详解及配置演示37_02_Linux集群系列之五脚本实现LVS后端服务健康状态检查37_03_Linux集群系列之六LVS持久连接第一章:LVS,DR详解以及配置演示Ipvs一旦发现是集群的服务,本来数据包到达input之后进入用户空间,不会经过forward链,而是直接到了postrouting链LVS监听在INPUT链IPNUT-postrouting,不经过forwardIpvsadm:管理服务:-A,-E,-D 管理RS:-a,-e,-d 查看:-L | -l -n;-stat,-rate,-timeout,-sort,-da

2、emon 规则管理 -C;-S,-RCIP/VIP CIP/VIPDirector:主管,领导,导演 到达DR后,DR不会修改原有的tcp首部以及ip首部, 也就是:CIP/VIP都没有动,以及tcp首部端口都没有动通过封装新的帧首部(源MAC为Director的MAC,目标MAC为挑选出的RS的MAC)完成调度。RS和DR都有VIP,而请求进入时必须最先发送给DR,所以,在DR类型中,首先通过ARP广播确认DR主机,其他RS主机不响应,这就确定了哪一个是DR主机但是在linux主机中,IP地址不属于网卡而是属于内核,就是说无论一个linux主机有多少个IP地址,它在接入的各个网络中都会公布它

3、拥有的所有地址,这就给ARP广播的响应制造了困难,所以就需要修改内核参数来保证router发出ARP广播时,DR会响应RS不予响应,这里所说的内核参数分别为:#arp_announce:定义arp通知级别;0:默认级别,在各个网络中通告本机所含有的所有地址1:尽量不在各个网络中通告本机中含有的不属于该网络的地址 / 尽可能仅向目标网络通告与其目标网络匹配的地址2:不在各个网络中通告本机中含有的不属于该网络的地址 /仅仅将与本地借口匹配的网络地址通告,只通告直连的,#arp_ignore:定义arp忽略arp请求或arp通告的级别;0:(默认值):回应任何网络接口上对任何本地IP地址的arp查询

4、请求1:只回答目标IP地址是来访网络接口本地地址的ARP查询请求 /目标i ip相同2:只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在p和income借口该网络接口的子网段内3:不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应4-7:保留未使用8:不回应所有(本地地址)的arp查询实现vip解析方法: 一:在路由器上绑定VIP的mac为director的mac,这样,就直接发送给director VIP:MAC(DVIP),前提:路由设备必须能够操作 二Arptables,定义arptables规则,即可,在real-server上定义,请求本机的v

5、ip,不予响应 三使用内核参数,arp_ignore,arp_announce,定义而,响应arp和通告arp的参数 一般使用第三种方式,可以把rip:eth0,Lo:vip 有人请求vip地址的时候,real的lo对应vip,会用自己的mac,一定会通过eth0进行响应, 可以这样配置, /可以配置,从eth0进来的,请求的地址不是eth0对应的地址,不予响应, Arp_ignore对此,1:代表目标ip进来的ip即eth0, 2:和1一样,但是必须在同一个网络中 Arp_announce:向别人告诉自己的,mac和ip,通告级别 默认 0 /尽可能响应或通告Arp_ignore:接收到ar

6、p请求时的响应级别; 默认 0注意:默认情况下,real-s响应报文的源地址为流出的接口的地址,即eth0,不是lo /添加一条路由即可 VIP一定是公网地址,rip和dip可以是内网地址,r1,r2,r3的vip对外是不可见得, 响应的时候DR可以使用vip响应,然后转发个rip,封装新的MAC首部,源mac是自己的,目标mac是real的 Real返回的时候,VIP和CIP都没有变,使用real自己的mac(eth0)进行返回,路由器需要解析real的mac,解析出来的ip是rip,但是real得ip和client的ip不在同一个网段,这样是出不去的 解决方法:使用另外一个路由器,或者网关

7、出去 或者: 路由器的黑色接口一定适合VIP是在同一个网段的,而和rip不在同一个网段 Rip的网关是路由器的白色接口 VIP和rip一定不在同一个网段, Vip和路由器对外的接口都是公网地址,可以对外通信的实验拓扑: 三台主机,都只需要一个网卡就可以了;三个网卡都在同一个网络中,都是用的是桥接 Rip必须先配置,arp_anounce,和arp_ignore以后才能配置vip 使用setup配置,rs1,rs2,以及director地址,rs1和rs2只配置eth0配置rs1: Cd /proc/sys/net/ipv4/conf/ Ls all,目录,ls eth0目录,ls lo目录 S

8、ysctl -w net.ipv4.conf.eth0.arp_anounce=2 /配置eth0,只通告属于本网络的地址 Sysctl -w net.ipv4.conf.all.arp_anounce=2 Echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore /目标接口必须和进来的接口相同 Echo 1 /proc/sys/net/ipv4/conf/eth0/arp_ignore Ifconfig lo:0 172.16.100.1 使用window主机ping 172.16.100.1能够ping通,arp -a/查看对应mac地址 /只有direc

9、tor响应,配置rs2: Echo 2 /proc/sys/net/ipv4/conf/all/arp_announce Echo 2 /proc/sys/net/ipv4/conf/eth0/arp_announce Echo 1 /proc/sys/net/ipv4/conf/ath0arp_ignore Echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore Ifconfig lo:0 172.16.100.1/16 Windows必须能够ping通任何一台主机 Windows测试;arp d * 删除arp,进行ping后,arp a查看还是dire

10、ctor的mac地址配置:Real-server回应的时候使用vip: Rs1: Ifconfig lo:0 172.16.100.1 broadcast 172.16.100.1 netmask 255.255.255.255 up Route add -host 172.16.100.1 dev lo:0 /目标地址是vip的通过lo:0出去 Rs2: Ifconfig lo:0 172.16.100.1 broadcast 172.16.100.1 netmask 255.255.255.255 up Route add -host 172.16.100.1 dev lo:0 Direc

11、tor: Route add -host 172.16.100.1 dev eth0:0配置ipvs 前提:在director:上使用curl可以访问,rs1,和rs2 在director上: Ipvsadm C /清空规则 Ipvsadm At 172.16.100.1:80 s wlc Ipvsadm a t 172.16.100.1:80 -r 172.16.100.7 g w 2 Ipvsadm a t 172.16.100.1:80 -r 172.16.100.8 g w 1 Ipvsadm L n /查看规则, 在windows上进行访问,http:/172.16.100.1测试查

12、看权重比例 Ipvsadm L -n问题: 模拟rs2损坏 Iptables A INPUT p tcp dport 80 j REJECT 在windows上刷新访问httpd服务,会出现错误,卡在一个页面 Rs2,损坏,但是director并不知道,没有办法做健康状况检查 LVS添加一个模块后可以实现,检查状况,但是ldirectord,但是这个是在ipvs做高可用的时候才能用到或者开发一个在director上始终运行的一个脚本 测试rs是否在线,不在线,就在lvs列表中删除 错误:得不到mac地址,原因,实际网关的子网掩码,和实验掩码不同,也就是说,其实他们不在同一个网络中 刷新,多次可

13、以看到r1和r2之间的切换第二章:实验1:实现director上提供web服务,不推荐,因为director比较忙,DR: Vip:192.168.10.3 Dip:192.168.10.5Rs1: 192.168.10.7Rs2: 192.168.10.8可不可以在direcotor上的web服务器也启用,当做一个real-server使用启动director上的httpd服务,写入一个index.html文件,进行测试Ipvsadm -a -t 172.16.6.101:80 -r 127.0.0.1 -g -w 3Ipvsadm L n /测试即可看到效果/只有在所有主机都宕机了,这时候

14、director提供一个页面,告诉用户,已经宕机,实现集群自动配置DR类型中,director和real-server的配置脚本示例 DR脚本,real-server脚本,以及状况检查脚本RS=(192.168.10.7 192.168.10.8) /数组Echo $a0 /数组:一片连续的内存空间,类型相同,array,element元素 Echo $#a* /元素个数, Echo $#a0 /第0个元素的字符个数, Echo $a* /列出所有元素第三章: LVS持久链接, 无论使用何种算法,LVS持久都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的RS。 持久链接模板(内存缓

15、冲区),以前记录,并且灭有超时,就是用原来的连接 ipvsadm -L -persistent-conn /持久链接信息 ipvsadm -A|E -t|u|f service-address -s scheduler -p timeout -M netmask /只需要在指定服务的时候使用 -p 指定持久链接的时长,默认300s /给予ssl的回话中经常使用持久链接,来自于同一个客户端的,不光是同一个服务http,还有ftp服务都定位到同一个客户端,假如后面的集群同时启用了多个服务持久链接类型: PPC:持久端口链接:同一个cip同一个集群服务,始终定向到一个rip PCC:持久客户端链接:

16、将同一个cip对所有端口的请求,始终定向到一个rip PNMPP:Persistent Netfilter Marked Packet persistence /持久防火墙标记链接, 实验:LVS的PPC持久链接ipvsadm -E -t 172.16.6.101:80 -s rr -p 30ipvsadm -L -n -persistent-conn在windows上进行测试实验:PCC测试,telnet和http测试 分别在r1和r2上添加用户,并分配密码, 分别启动telnet服务,并检查是否启用,服务 netstat tunlp | grpe 23 并测试,r1和r2的telnet是否

17、能够使用 添加集群服务:使用的vip还是上一个服务的同一个vip ipvsadm -A -t 172.16.6.101:23 -s rr ipvsadm -a -t 172.16.6.101:23 -r 172.16.6.107 -g -w 1 ipvsadm -a -t 172.16.6.101:23 -r 172.16.6.107 -g -w 2 telnet登录测试 / ipvsadm Ln 查看效果 ipvsadm E -t 172.16.6.101:23 s rr p 3600 /持久链接,实现PPC ipvsadm C /清空所有请求,重新创建实现PCC: /把所有的端口都定义位集

18、群服务,一律像real-server转发,不仅仅包括,http和telnetrootlocalhost # ipvsadm -A -t 172.16.6.101:0 -s rr -p 60rootlocalhost # ipvsadm -a -t 172.16.6.101:0 -r 172.16.6.107 -g -w 2rootlocalhost # ipvsadm -a -t 172.16.6.101:0 -r 172.16.6.108 -g -w 1Ssh 172.16.6.101 /可以查看,虽然没有定义ssh服务,但是,只要real-server具有这个服务,就会提供该服务PCC是所

19、有集群服务,PPC是针对单个服务假如需要单独定义两个单独的集群服务,其他的服务都是定义为一个集群服务,比较困难方法: 防火墙标记:PREROUTING 80:10 23:10 /把 80 和23 都标记为10, 然后在ipvsadm中,把防火墙标记为10的定义为一个集群服务 标记是0 99之间的整数,只要没有被使用就行实验:防火墙标记- PNMPP ipvsadm -C iptables -t mangle -A PREROUTING -d 172.16.6.101 -p tcp -dport 80 -j MARK -set-mark 8 iptables -t mangle -A PRERO

20、UTING -d 172.16.6.101 -p tcp -dport 23 -j MARK -set-mark 8 /防火墙设置rootlocalhost # ipvsadm -A -f 8 -s rrrootlocalhost # ipvsadm -a -f 8 -r 172.16.6.107 -g -w 2rootlocalhost # ipvsadm -a -f 8 -r 172.16.6.108 -g -w 1分别进行http测试,刷新,以及telnet多次登录测试,查看ipIpvsadm L n /查看结果rootlocalhost # ipvsadm -E -f 8 -s rr

21、p 600 /持久连接持久链接一定会破坏 LB效果,但是有时候需要使用持戒链接:例如cookie或者sessionLAMPMysql/NFSLAMP 网页文件放在LAMP中,数据库文件放在同一台mysql中,上传的附件,放在NFS中 假如对网页文件进行二次开发,则需要在LAMP之间同步数据可以把一台主机作为rsync server+inotify,其他主机向其同步,只需要更新rsync server即可 但是这个更新速度特别慢,不适合经常进行的文件 Sersync:能够接受inotify开发机制,基于C+开发,性能特别好,支持大文件的同步Sersync:自己找Rsync+inotify,以及s

22、ersync+inotifySession共享,php使用memcached进行session共享或者使用长连接机制 Memcached:共享session,将两个lamp将session保存在memcached中假如是一个购物网站: 假如购物车的东西,要么使用持久链接,要么进行session共享假如购物完,进行支付的时候,肯定要是用https,但是https和http本身就不是同一种协议 假如定义到https网站:在第二个服务器上肯定没有http的购物商品所以,80和443基于防火墙标记绑定 /一定要使用持久链接两个https必然要使用到证书,是否能够用到证书,建议两个服务器上使用同一个证书

23、小结: LVS-DR详解 ipvs-INPUT-postrouting cip的请求到达director之后 DR封装新的MAC Real-server /对于arp请求vip不予响应 arp_announce:默认0 2:同网段则通告 arp_ignore:默认0 1:请求的目标ip是流入的eth0的ip, 实现vip解析的方法: 1.在路由器上绑定vip+director.vip 2.arptables 定义规则, 3.内核参数arp_announce,arp_ignore DR模型real-s需要有独立的gw real-server设置: 1.分别设置eth0,all.arp_annou

24、nce=2,arp_ignore=1 Sysctl -w net.ipv4.conf.eth0.arp_anounce=2 /配置eth0,只通告属于本网络的地址 Sysctl -w net.ipv4.conf.all.arp_anounce=2 Echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore /目标接口必须和进来的接口相同 Echo 1 /proc/sys/net/ipv4/conf/eth0/arp_ignore 或者: sysctl -w net.ipv4.conf.eth0,all.arp_ignore=1,arp_announce=2 /一

25、条命令即可 2.ifconfig lo:0 172.16.6.101 broadcast 172.16.6.101 netmask 255.255.255.255 up ifconfig lo:0 172.16.6.101 /director的vip,因为需要对外开放 3.route add -host 172.16.6.101 dev lo:0 /返回时使用vip作为源地址 DR模型中,real-s需要配置vip,但是nat模型中不用 director上也可以提供http服务,也就是说,director即是director又是real-server DR脚本: director脚本:接受st

26、art,stop,status实现自动创建DR或者关闭 REAL脚本: 实现real自动检查状态,失效就删除,恢复则添加 数组的使用 LVS持久链接: 1.PPC:持久端口链接,同一个cip对一个服务的所有请求,始终定向为一个rip ipvsadm -E -t 172.16.6.101:80 -s rr -p 30 2.PCC:持久客户端链接,同一个cip对所有服务的请求定向同一个rip ipvsadm -A -t 172.16.6.101:0 -s rr -p 60 3.PNMPP持久防火墙标记链接 iptables -t mangle -A PREROUTING -d 172.16.6.101 -p tcp -dport 80 -j MARK -set-mark 8 ipvsadm -A -f 8 -s rr /标记, ipvsadm -E -f 8 -s rr p 600 /持久连接 一般-端口/客户端 标记-端口/客户端 php使用memcached进行session共享附件:文件DR脚本附件:1. rsync+inotify2. sersync+inotify

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1