码迷,mamicode.com
首页 > 系统相关 > 详细

linux-lvs-2

时间:2018-07-07 01:06:22      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:客户端   serve   机制   linu   故障   vip   important   font   三次   

基于防火墙标记定义集群服务

 功能:将同属于同一组应用的多个不同端口的服务定义成一个集群服务,统一调度;例如http和https结合netfilter来实现一种集群服务定义机制;


lvs-dr模型是不支持端口映射,很多时候我们存在着http和https同时启用,访问某一网站可能刚开始访问采用的是http协议,当进行一些风险操作比如登录,付款等,这时候就需要跳转到https协议的443端口进行访问,但是我们进行跳转时面临一个问题,我们之前访问80端口时lvs会给我们指定一台RS主机,我们的一些操作得信息保存在这台主机上,跳转时lvs会给我们重新指定一台RS主机,这是我们会丢失之前的操作信息,这显然时很不合理得,我们需要把80和443 端口当作同一集群服务,这个时候我们就需要防火墙标记了,用iptables 给80和443端口打上同一标记,然后根据标记进行集群


在mangle表的PREROUTING链定义规则,实现指定防火墙标记;

           iptables -t mangle -A PREROUTING -d VIP -p {tcp|udp} --dport PORT -j MARK --set-mark $num

这里vip时要访问得IP地址,port是要访问的端口,$num是我们标记得一个数值,如

iptables -t mangle -A     PREROUTING  -d 192.168.2.29 -p tcp --dport 80 -j MARM --set-mark 20

iptables -t mangle -A     PREROUTING  -d 192.168.2.29 -p tcp --dport 443 -j MARM --set-mark 20

这时我们已经将80和443端口打上同一标记

基于此前的标记定义集群服务;

ipvsadm -A -f # [-s METHOD]

ipvsadm -a -f # -r RS [options]

ipvsadm -A  -f  20 -s wrr

ipvsadm -a -f 20 -r 192.168.2.30 -g -w 2

ipvsadm -a -f 20 -r 192.168.2.106 -g -w 5

我们在这利用防火墙标记定义了一个集群服务,凡是标记为20的都加权轮询转发个两台RS主机


lvs持久连接功能

无论使用什么调度方法,持久连接功能都能保证在指定的一段时间内,来自同一个客户端的请求始终被定向至同一个RS。当使用LVS持久连接时,调度器使用连接跟踪(持久连接模板)来记录每一个客户端和给其分配的real server的映射关系

lvs的持久连接就是通过ipvsadm的一个选项来实现,其主要目的就是可以通过持久化的机制,来保证用户的每次访问都跳转到同一个服务器上面,而忽略调度算法的影响。这样就可以让用户后续的操作都负载均衡到同一台服务器上,这样就可以避免服务器之间共享session造成的影响。

-p, --persistent [timeout]使用持久连接,默认时长为300秒

      持久连接类型:        

        ①PCC(persistent client connections):持久客户端连接,又称零端口连接

           在基于tcp或udp定义集群服务时,将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS;以0作为端口号(表示所有端口)

           例:ipvsadm -A -t 192.168.2.29:0 -s rr -p

        ②PPC(persistent port connections):持久端口连接,将对同一端口的请求,始终定向至此前选定的RS;单服务调度;各集群服务分开调度

           例:ipvsadm -A -t 192.168.2.30 -s rr -p

        ③PFMC(persistent firewall mark connections):持久防火墙标记连接          

           iptables -t mangle -A PREROUTING -d 192.168.2.29 -p tcp --dports 80,443 -j MARK --set-mark 2

           ipvsadm -A -f 2 -s wlc -p 600

      -M, --netmask [NETMASK] 选项:

        配合persistence_timeout使用,表示持久连接的粒度,默认是255.255.255.255,即单独的客户端IP。如果改成255.255.255.0,则表示只要是一个网段的client都会被分配到同一台后端服务器上


Session持久机制

  ①session绑定:始终将来自同一个源IP的请求定向至同一个RS;没有容错能力;有损均衡效果;

  ②session复制:在RS之间同步session,每个RS拥有集群中的所有的session;对大规模集群不适用;

  ③session服务器:利用单独部署的服务器来统一管理集群中的session;


real server的健康状态检测

   lvs自身不具备后端RS健康状态检测功能,需要借助keepalived,keepalived不仅能为lvs提供高可用,还可以给lvs生成规则。   

   1、如何检测RS的健康状态:

        应用层:利用集群服务依赖的协议进行检测

        传输层:利用端口扫描或探测类工具对指定协议的端口进行探测

        网络层:如ping

   2、处理措施:

     ①自动上下线各RS;     

        online --> fail,探测三次及以上;

        offline --> ok,一次即可;

     ②所有RS均故障时,应该提供一个back server;

        ipvsadm -a -t 192.168.30.13:80 -r 127.0.0.1 -m -w 0







linux-lvs-2

标签:客户端   serve   机制   linu   故障   vip   important   font   三次   

原文地址:http://blog.51cto.com/12052401/2137400

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!