持续连接

  1. 1)持久连接(lvs persistence)模板:
  2. 实现无论使用任何调度算法,在一段时间内(默认360s),能够实现将来自同一个地址的请求始终发往同一个RS
  3. ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
  4. -p # :定义持久时长
  5. 2)持久连接实现方式:
  6. 每端口持久(PPC):每个端口对应定义为一个集群服务,每个集群服务单独调度,同一服务持久
  7. 每防火墙标记持久(PFWMC ):基于防火墙标记定义集群服务,可实现将多个端口上的应用统一调度,即所谓的port Affinity,同一防火墙标记持久
  8. 每客户端持久(PCC ):基于0端口(表示所有服务)定义集群服务,即将客户端对所有应用的请求都调度至后端主机,必须定义为持久模式,所有服务持久将vip的端口定义为0,则表示所有请求都将发送后台服务器。
  9. 3)具体实现
  10. VS上进行如下操作
  11. [root@centos7 ~]#ipvsadm -E -f 12 -s rr -p 300
  12. [root@centos7 ~]#ipvsadm -Ln
  13. IP Virtual Server version 1.2.1 (size=4096)
  14. Prot LocalAddress:Port Scheduler Flags
  15. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  16. FWM 12 rr persistent 300
  17. -> 192.168.74.129:0 Route 1 0 0
  18. -> 192.168.74.133:0 Route 1 0 0

session保存机制(会话机制)

  1. session绑定(session sticky
  2. 始终将同一个请求者的请求发送到同一台RS(第一次请求由算法调度)
  3. 缺陷:没有容错能力,若此RS宕机,则会话丢失,并且将同一请求发送到同一RS有损均衡效果。
  4. session复制(session cluster
  5. RS之间同步session,因此每个RS都保持集群中的所有session
  6. 缺陷:增加了RS的负担,对大规模的集群不适用
  7. session服务器(session server),redis
  8. 用单独一组服务器来管理session

LVS的高可用

  1. 1.Director 不可用,整个系统将不可用,SPoF Single Point of Failure
  2. 解决方案:高可用
  3. keepalived heartbeat/corosync
  4. 2.RS不可用时,Director 依然会调度请求至此RS
  5. 解决方案:由Director 对各RS健康状态进行检查,失败时禁用,成功时启用
  6. keepalived heartbeat/corosync, ldirectord
  7. 检测方式:
  8. (a) 网络层检测,icmp
  9. (b) 传输层检测,端口探测
  10. (c) 应用层检测,请求某关键资源
  11. RS 全不用时:back server, sorry server
  12. ldirectord
  13. ldirectord :监控和控制LVS 守护进程,可管理LVS 规则
  14. 包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm
  15. 文件:
  16. /etc/ha.d/ldirectord.cf 主配置文件
  17. /usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版
  18. /usr/lib/systemd/system/ldirectord.service 服务
  19. /usr/sbin/ldirectord 主程序
  20. /var/log/ldirectord.log 日志
  21. /var/run/ldirectord.ldirectord.pid pid 文件
  22. ldirectord 配置文件示例
  23. checktimeout=3 如果3秒没有反应就认为是有故障了
  24. checkinterval=1 表示一秒检查一次后端的服务器
  25. autoreload=yes 自动加载配置文件,不用重启就可以生效
  26. logfile=“/var/log/ldirectord.log 日志文件
  27. quiescent=no down yes权重为0 no为删除
  28. virtual=5 指定VSFWMIPport
  29. real=172.16.0.7:80 gate 2 gate表示dr模式,2表示权重为2
  30. real=172.16.0.8:80 gate 1 权重为1
  31. fallback=127.0.0.1:80 gate #sorry server 定义后面的VS全部宕机了,由谁来提供服务
  32. service=http 服务类型
  33. scheduler=wrr 调度算法
  34. checktype=negotiate 定义检查的类型为协商模式
  35. checkport=80 检查的端口
  36. request="index.html"
  37. receive=“Test Ldirectord" 表示检查的时候看到什么字样就可以说是健康的,是index.html中的,注意大小写敏感
  38. 3.由VS对各RS进行健康状态检查的实现
  39. 1)编写脚本来实现
  40. #!/bin/bash
  41. while true;do
  42. curl 192.168.74.133 &> /dev/null && ipvsadm -a -f 12 -r 192.168.74.133 &>/dev/null || ipvsadm -d -f 12 -r 192.168.74.133 &>/dev/null
  43. sleep 1
  44. done
  45. 2)通过ldirectord来实现
  46. 1、
  47. yum install ldirectord-3.9.5-5.1.x86_64.rpm
  48. rpm -ql ldirectord
  49. cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/ ###把模板拷贝到配置文件的目录当做配置文件
  50. 2、
  51. ipvsadm -C ##清空之前的集群服务,在配置文件里可以定义集群服务,并对RS进行实时监控
  52. ipvsadm -Ln
  53. 3、
  54. vim /etc/ha.d/ldirectord.cf
  55. checktimeout=3
  56. checkinterval=1
  57. autoreload=yes
  58. quiescent=no
  59. # Sample for an http virtual service
  60. virtual=192.168.74.88:80
  61. real=192.168.74.133:80 gate
  62. real=192.168.74.129:80 gate
  63. fallback=127.0.0.1:80 ##表示两台VS都有故障了就由本机来代替,这样本机也得装一个httpd服务
  64. service=http
  65. scheduler=rr
  66. #persistent=600
  67. #netmask=255.255.255.255
  68. protocol=tcp
  69. checktype=negotiate
  70. checkport=80
  71. request="index.html"
  72. receive="welcom" ##表示收到index.html里有welcom字样就认为机器是好的
  73. 在本机也安装一个httpd服务
  74. vim /var/www/html/index.html ##这样两台RS都荡机了就有本机提供服务显示sorry server字样
  75. sorry server
  76. 4、测试
  77. 分别宕机一台和两台RS
  78. [root@centos7 resource.d]#ipvsadm -Ln ##这是两台都宕机的显示,有本机提供服务
  79. IP Virtual Server version 1.2.1 (size=4096)
  80. Prot LocalAddress:Port Scheduler Flags
  81. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  82. TCP 192.168.74.88:80 rr
  83. -> 127.0.0.1:80 Route 1 0 0
  84. 此时在客户端
  85. [root@redhat7 ~]#curl 192.168.74.88
  86. sorry server

LVS的持久连接、会话保持和高可用介绍的更多相关文章

  1. LVS(五)LVS的持久连接

    什么是持久链接 把某个客户端的请求始终定向到同一应用服务器上.对于LVS来说持久连接和算法没有关系.也就是使用任何算法LVS都可以实现同一客户端的请求转发到之前选定的应用服务器,以保持会话.而且还能实 ...

  2. 利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境

    应用背景: MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动 切换到另外一台主机.LVS和Keppalived可以设定一个VIP来实 ...

  3. lvs+keepalived部署k8s v1.16.4高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  4. LVS + Keepalived + Nginx基于DR模式构建高可用方案

    在大型网站中一般服务端会做集群,同时利用负载均衡器做负载均衡.这样有利于将大量的请求分散到各个服务器上,提升网站的响应速度.当然为了解决单点故障的问题,还会做热备份方案.这里演示利用LVS做负载均衡器 ...

  5. MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验【转】

    一.环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2  W-VIP(写入)  :192.168.1.3 R-VIP(读取)  :192.168.1.4  ...

  6. 24、Keepalived高可用介绍

    24.1.什么是keepalived: Keepalived 软件起初是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务节点的状态,后来又加入了可以实现高可用的 VRRP ...

  7. Keepalived & LVS: 实现web的负载均衡和高可用

    目录 1. 环境介绍2. LVS DR模型中Realserver上的准备3. ha上的准备4. 配置keepalived5. 测试Realserver的切换6. failback页面测试7. keep ...

  8. MHA 高可用介绍

    目录 MHA 介绍 MHA 简介(Master High Availability) MHA 工作原理(转载) MHA 架构 MHA 工具 Manager 节点 Node 节点 MHA 优点 MHA ...

  9. 【转】LVS负载均衡之session解决方案 持久连接

    原文地址:http://minux.blog.51cto.com/8994862/1744761 1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同 ...

随机推荐

  1. 立方体 反射 CubeMap

    立方体反射(CubeMap) 在虚拟环境中,我们需要模拟材质球反射周围的环境,立方体反射正是让材质球反射出天空盒的背景的方法之一. 原理 当我们观察物体时,物体表面足够光滑,再视线方向和物体相交的点上 ...

  2. Lucene实现全文检索的流程

    [索引和搜索流程图] 对要索引的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->索引文档. 从索引库中搜索内容, ...

  3. 关于Web服务接口测试的一些问题及答案

    本篇主要是像想要了解并且学习接口测试的朋友,做一个入门的简单介绍 1.什么是接口 答:接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提 ...

  4. jquery对JSON字符串的解析--eval函数

    jquery eval解析JSON中的注意点介绍----https://www.jb51.net/article/40842.htm

  5. 如何使用JDK1.6 API

    如何使用JDK1.6 API-------https://jingyan.baidu.com/article/54b6b9c0e39a102d583b47d5.html  

  6. MVC系统学习6—Filter

    Mvc的过滤器是特性类,可以使我们在执行Action之前,执行Action之后,执行Action发生异常时,编写相关的处理代码实现某些逻辑.下面是四个基本的Filter接口. 上面这四个基本的Filt ...

  7. 剑客决斗(NYOJ 110)

    T3.题目110剑客决斗 (http://acm.nyist.net/JudgeOnline/problem.php?pid=110) 描述 在路易十三和红衣主教黎塞留当权的时代,发生了一场决斗.n个 ...

  8. 2018/3/4 Activiti教程之流程部署篇(与Springboot整合版)二

    首先我们来看下Activiti为我们自动生成的这四张用户相关的表 先看下USER表 我已经插入了一些数据,很明显,就是保存用户的信息的 看下GROUP 用户对应的分组信息 MEMBERSHIP 用户和 ...

  9. TYVJ1716 上帝造题的七分钟

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 裸体就意味着身体. 描述 “第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵.第二分钟,L说, ...

  10. Redis 命令与连接【十一】

    ---------------------Redis 命令--------------- Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客 ...