VS-DR
VS-DR模式
负载调度器只负责调度请求,而服务器直接将相应返回给客户机,这样就提高了整个集群系统的吞吐量。这种模式的前提是调度器和服务器要物理上有一个网卡通过不分段的局域网连接,例如交换机或者告诉的HUB连接。就是说调度器和服务器要在同一网段。所有的服务器和服务器组共享一个vip(虚拟ip地址),调度器的vip对外是可见的,用户于接受虚拟服务的请求报文,所有的服务器把vip地址配备在各自的Non-ARP网络设备上,它对外是不可见的。
1:6.5yum源配置
vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=source
baseurl=http://172.25.254.51/rhel6.5
gpgcheck=0
enabled=1
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.254.51/rhel6.5/HighAvailability
gpgcheck=0
enabled=1
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.254.51/rhel6.5/LoadBalancer
gpgcheck=0
enabled=1
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.254.51/rhel6.5/ScalableFileSystem
gpgcheck=0
enabled=1
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.254.51/rhel6.5/ResilientStorage
gpgcheck=0
enabled=1
2:安装ipvsadm工具或者叫命令,总之要使用这个命令ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。
ipvsadm-1.26-2.el6.x86_64
3:调度器主机(host1 ip:172.25.254.1)添加vip到eth0当然也可以添加到lo上
服务器添加vip方法同此
ip addr add 172.25.254.10/24 dev eth0
ip addr 查看
host2和host3服务器
4:调度器添加策略有点像
ipvsadm -A -t 172.25.254.10:80 -s rr
ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.2:80 -g
ipvsadm -a -t 172.25.254.10:80 -r 172.25.254.3:80 -g
/etc/init.d/ipvsadm save
-->>出现下边信息成功
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
--->策略被保存在:/etc/sysconfig/ipvsadm
ipvsadm -l ##查看 -ln解析主机名
改添加arptables规则:
arptables -A IN -d 172.25.254.10 -j DROP ##IN链服务器2添加规则,去172.25.254.10的数据全部丢弃,注意,iptables的优先级高于arptables
arptables -A OUT -s 172.25.254.10 -j mangle --mangle-ip-s 172.25.254.2 ##添加规则数据来源172.25.254.10的数据帧出去的时候ip伪装为172.25.254.2
arptables -L ##可以查看规则
service arptables_jf save ##保存策略
实际上规则写进了/etc/sysconfig/arptables这个文件
VS-DR这种模式不存在后段服务器的健康检查,让服务器host2的http服务关闭,测试结果如下
至此ok,用真机测试
或者访问浏览器
vs/dr 做的事情很少,也很简单,所以它的效率很高,不比硬件负载均衡设备差多少。
数据包、数据帧的大致流向是这样的:client –> VS –> RS –> client
客户机发出请求:
`
arp -an | grep 10 ##查看主机172.25.254.10的MAC地址
arp -d 172.25.254.10 ##清除缓存
地址指向52:54:00:04:db:df也就是调度器
arptables工具
1.基本思路和iptables一样,不过,arptables处理arp协议有关的包,这些包在iptables中并不会处理·arptables可用于灵活的arp管理,如果善于运用的话,不失为一个优秀的arp防火墙.既能防止别的机器对自己进行arp欺骗,又能防止本机病毒或错误程序向其他机器发起arp攻击。
2:arptables用于建立、获取、修改内核的arp包处理表.有几个不同的表,每个表分别含有几条内建的处理链,同时允许用户自定义处理链
每条链是一些规则的列表,每条规则匹配特定的包.每条规则指定一个对匹配的包的操作.这个操作也叫做‘目标’,这个目标也可是跳转到同一个表中的另外的链
3:内建目标:
ACCEPT, DROP, QUEUE, RETURN.是几个最基本的目标,ACCEPT指接受这个包,DORP指丢掉这个包,QUEUE指把包传到用户空间(如果内核指定了的话),RETURN指返回到上一条链,接着执行上一条链跳转过来哪条规则的下一个规则.每条链都有一个默认目标,当包经过所有规则都没被匹配,则发给默认目标
4:表:
一边至少有一个内建的表(filter表)-t常常用于指定要操作的表.filter表有两个内建的链,IN和OUT,IN用于处理目标为发给本机目标为本机的包,OUT处理本机发出去的包.
有两类,一类为命令类,包括
-A, –append chain rule-specification追加规则
-D, –delete chain rule-specification删除指定规则
-D, –delete chain rulenum删除指定位置的规则
-I, –insert chain [rulenum] rule-specification插入规则
-R, –replace chain rulenum rule-specification替换规则
-L, –list [chain]列出规则
-F, –flush [chain]删除所有规则
-Z, –zero [chain]清空所有计数
-N, –new-chain chain新建链
-X, –delete-chain [chain]删除链
-P, –policy chain target指定默认目标
-E, –rename-chain old-chain new-chain重命名链
-h,帮助
另一类为参数
-s, –source [!] address[/mask]源地址
-d, –destination [!] address[/mask]目的地址
-z, –source-hw [!] hwaddr[mask]源mac
-y, –target-hw [!] hwaddr[mask]目的mac
-i, –in-interface [!] name受到这个包的网卡
-o, –out-interface [!] name要发送这个包的网卡
-a, –arhln [!] value[mask]
-p, –arpop [!] value[mask]
-H, –arhrd [!] value[mask]
-w, –arpro [!] value[value]
-j, –jump target跳到目标
-c, –set-counters PKTS BYTES计数
“`
上一篇: 前端常见概括性问题
推荐阅读