2. LVS基础和NAT模型

一. 企业互联网架构演进

单机架构

  • 优点: 简单快速,易于开发,易于测试,易于部署
  • 缺点:只适合早期项目, 变大后不易维护,且存在单点,升级需要停服

单机-数据分离

  • 优点:资源分散,提高不同服务对硬件的利用率,方便维护
  • 缺点:增加了资源消耗和网络开销,同时还存在单点

单机时代-缓存登场

  • 优点:简单有效, 减少对DB的查询;显著提升用户体验
  • 缺点:增加逻辑判断, 不适合存储大对象,此架构同样有单点

单机-读写分离

  • 优点:降低数据库单台压力, 从机的数量可以灵活变更
  • 缺点:架构开始变得复杂,维护难度加大

从服务器Salve可以有多台


集群时代-负载均衡

  • 优点: 去除应用层单点, 可用性得到保证, 性能有所提高
  • 缺点:这时要注意应用之间的一致性问题, 比如对缓存的访问, 对Session的存储

集群时代-动静分离

  • 优点: 减轻应用服务器压力, 缓存静态文件, 加快响应速度, 前后端分离, 开发可以并行
  • 缺点: 静态文件缓存更新失效问题, 前后端沟通成本提高

二. 四七层负载均衡使用场景及其优缺点

四七层负载均衡的定义

概念定义
    四层: 所谓四层就是基于IP + 端口的负载均衡
    七层: 所谓七层就是基于应用层(URL)信息的负载均衡

四层负载均衡 是在内核空间进行转发的


七层负载均衡 是在应用层转发的


四七层负载均衡区别

适用场景

四层:                                   七层:
    大型站点                                中小站点
    接入层最前端                            只使用七层负载均衡    
    结合四层+七层使用

四七层负载优缺点

优缺点:

  • 四层比七层可以承载更大的并发亮, 适合大型站点
  • 七层可以实现更为复杂的负载均衡控制,比四层有更多的功能, 比如基于URL、基于Session、动静分离等
  • 七层会占用大量的CPU时间,承载的并发量相对较小

三. LVS原理及常见模型

LVS的定义

  • LVS是Linux Virtual Server的简写, 是一个虚拟的服务器集群系统

LVS的组成

lpvs:     工作在内核空间, 实现集群服务的调度; 借鉴了iptables实现
lpvsadm:  工作在用户空间, 负责为ipvs内核框架编写规则, 定义谁是集群服务, 谁是后端服务器

LVS相关术语

DS: Director Server   目标服务器, 及负载均衡器
RS: Real Server       真实服务器, 及后端服务器
VIP: 直接面向用户的IP地址, 通常为公网IP地址
DIP: Director Server IP  主要用于和内部主机通信的IP地址
RIP: Real Server IP  后端真实服务器的IP地址
CIP: Client IP     客户端IP


LVS的类型

NAT:   修改目标IP地址为后端的RealServer的IP地址
DR:    修改目标MAC地址为后端的RealServer的MAC地址
TUNNEL:    较少使用, 常用于异地容灾

四. LVS NAT模型原理

NAT:     Network Address Translation 网络地址转换

LVS NAT: 修改目标IP地址为挑选出新的RS的IP地址。 即请求进入负载均衡器时做DNAT, 响应出负载均衡器时做SNAT


LVS NAT的特性

  • RS必须使用私有地址, 并且将网关指向DS的DIP
  • RIP和DIP必须为同一网段内
  • 支持端口映射
  • RS可以使用任意操作系统。 如 Linux、Unix、Windows等
  • 请求和响应报文都要经过DS, 高负载场景中, DS容易称为瓶颈(所以超过20态RS的情况下, NAT会较少使用)

五. LVS NAT模型 使用方法

ipvsadm用法

  • LVS是依靠ipvs在内核生成一系列规则工作的
  • ipvsadm是在用户空间管理ipvs规则的命令行工具
ipvsadm

集群服务相关:
    -A    添加集群服务
    -E    修改集群服务
    -D    删除集群服务
    -s    指定调度算法, 例如rr/wrr/lc/wlc
    
{
调度算法有:

轮询(Round Robin)
加权轮询(Weighted Round Robin)
最少链接(Least Connections)
加权最少链接(Weighted Least Connections)
基于局部性的最少链接(Locality-Based Least Connections)
带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
目标地址散列(Destination Hashing)
源地址散列(Source Hashing)

}


RS相关:
    -a             向指定的集群服务添加RS
    -r             指明RS的IP地址, 包含IP:PORT
    -g|-i|-m       指明LVS类型, 分别为DR|TUN|NAT
    -w             指明RS权重
    -e             修改指定RS属性
    -d             删除RS
    
    
管理相关:
    -C      清空集群服务
    -L      查看ipvs规则
    -Z      计数器清零
    -S      使用ipvsadm -S保存规则至磁盘
    -R      从磁盘载入规则

实例

定义集群服务, -t表示tcp协议    指定调度算法为rr
ipvsadm  -A -t 1.1.1.1:3306 -s rr


添加RS   RS的地址为2.2.2.2      模型为-m  即NAT
ipvsadm -a -t 1.1.1.1:3306  -r 2.2.2.2  -m

将配置保存至磁盘
ipvsadm -S > /etc/sysconfig/ipvsadm

清空集群服务
ipvsadm -C

从配置文件中读取集群服务配置
ipvsadm -R < /etc/sysconfig/ipvsadm

猜你喜欢

转载自blog.csdn.net/weixin_41207499/article/details/83988842