lvs
负载均衡集群
集群是什么
cluster 可以在付出较低成本的情况下获得性能 可靠性 灵活性方面的相对较高的收益 任务调度是集群系统的核心技术
利用多个计算机组合进行海量请求处理(负载均衡)从而获得很高的处理效率 也可以用多个计算机做备份(高可用HA)任何一个机器坏了整个系统还能正常运行
负载均衡可以分为几大类
二层负载均衡 mac 数据链路层
三层负载均衡 ip 网络层
四层负载均衡 tcp 传输层 ip+prot
七层负载均衡 http 应用层 urL
四层负载均衡(基于ip+端口的负载均衡)
所谓四层负载均衡 也就是主要通过报文中的目标ip地址和端口 再加上负载均衡设备设置的服务器选择方式即分发策略 选择内部服务器
七层负载均衡器(基于虚拟的urL或者主机ip的负载均衡)
四层负载七层负载区别 四层基于prot 复杂度低 性能高 安全性低 功能一般
七层基于urL 复杂度高 性能中等 安全性高 功能强大
LVS 现在已经嵌入linux内核 软件作用 通过lvs提供的负载均衡技术实现高性能高可用的服务器集群 具有良好的可靠性可扩展行可操作性 从而以低廉的成本实现最优的服务性能
lvs优势与不足
优势 高并发连接 理论支持上万并发 稳定性强 系统资源消耗极低 成本低廉 配置简单 支持多种分配算法 支持多种工作模式 应用范围广
不足 工作在四层 不支持七层规则修改 机制庞大 不适合小规模应用
lvs核心组件和专业术语
lvs管理工具和内核模块 ipvsadm/ipvs
ipvsadm 用户空间命令行工具 用于管理集群服务及集群服务上的rs等
ipvs 工作于内核上的程序 可根据用户定义的集群实现请求转发
专业术语
VS 虚拟服务
DB 负载均衡器 分发器
RS 后端请求处理服务器
CIP 客户端ip
VIP 负载均衡器虚拟ip
DIP 负载均衡器真实ip
RIP 后端请求处理服务器ip
lvs负载均衡四种工作模式
nat 直接路由dr ip隧道模式 双向转换模式
lvs/nat 网络地址转换模式 进出数据都经过负载均衡器 优点 只需要有负载均衡器已IG合法ip地址
缺点 扩展性有限 负载均衡器压力略大
lvs/dr 直接路由器模式 进数据经过负载均衡器 利用修改mac地址 出数据由后端服务器发出
优点 负载均衡器只负责分发 压力比较小 缺点 负载均衡器的网卡必须和物理网卡在一个物理段上
dr 设置虚假ip加端口 把虚拟ip设置为vip 给虚拟ip加后端服务器ip以及轮询规则
后端服务器关闭arp广播 后端服务器设置匹配精准ip 给后端服务器lo绑定vip
nat 给负载均衡器添加一个桥接ip或者公网ip 将服务器添加的ip设置为vip 将服务器虚拟ip绑定多个后端ip
给后端服务器增加 负载器ip为网卡
keepalived
keepalived 抢占模式 当主节点挂掉 会有其他节点进行抢占 keepalived 非抢占模式 当主节点挂掉 只有比主节点优先级高的节点才会进行接取vip
keepalived是集群高可用服务软件
keepalived原理基于vrrp协议为基础实现 vrrp是虚拟路由冗余协议
keepalived主要有三个模块 core(核心模块 负责加载配置文件)check(负责健康检查)vrrp(用来实现vrrp协议)
nginx高可用实现方法
需要写一个脚本 该脚本用来诊断nginx服务是否可用 然后在keepalived下面创建以.conf结尾的文件并且对脚本进行调取(track_script模块调取 可用先给脚本赋值函数)
lvs高可用实现方法
lvs配置负载均衡可以在keepalived里直接写配置进行配置负载
lvs nat 模式 高可用 需要为lvs负载器做两个vip 一个用于接收用户的请求 一个用于接受后端服务器返回的请求
lvs dr直接路由模式 高可用 需要设置一个vip
mysql高可用实现方法 可以用-e show status的命令进行检测mysql的服务状态