|深入理解LVS,还学不会算我输( 四 )
第二层:服务器池 Server Pool , 群集所提供的应用服务 , 比如:HTTP、FTP 服务器池来承担 , 每个节点具有独立的真实 IP 地址 , 只处理调度器分发过来的客户机请求 。
服务器群集的节点可根据系统所承受的负载进行分担 。 当所有服务器过载时 , 可添加多台服务器来处理不断增加的工作负载 。
对于大多数 Internet 服务(例如Web) , 请求通常没有高度关联 , 并且可以在不同服务器上并行运行 。 因此 , 随着服务器群集的节点数增加 , 整体性能几乎可以线性扩展 。
第三层:共享存储 Shared Storage , 为服务器池中的所有节点提供稳定、一致的文件存储服务 , 确保整个群集的统一性 , 可使用 NAS 设备或提供 NFS (Network File System)网络文件系统共享服务的专用服务器 。
共享存储:可以是数据库系统 , 网络文件系统或分布式文件系统 。 服务器节点需要动态更新的数据应存储在基于数据的系统中 , 当服务器节点并行在数据库系统中读写数据时 , 数据库系统可以保证并发数据访问的一致性 。
静态数据通常保存在网络文件系统(例如 NFS 和 CIFS)中 , 以便可以由所有服务器节点共享数据 。
但是 , 单个网络文件系统的可伸缩性受到限制 , 例如 , 单个 NFS / CIFS 只能支持 4 到 8 个服务器的数据访问 。
对于大型集群系统 , 分布式/集群文件系统可以用于共享存储 , 例如 GPFS , Coda 和 GFS , 然后共享存储也可以根据系统需求进行扩展 。
LVS 负载均衡的基本原理
Netfilter 的基本原理
在介绍 LVS 负载均衡基本原理之前 , 先说一下 Netfilter 的基本原理 。 因为 LVS 是基于 Linux 内核中 Netfilter 框架实现的负载均衡系统 。
Netfilter 其实很复杂也很重要 , 平时说的 Linux 防火墙就是 Netfilter , 不过我们操作的还是 iptables , iptables 和 Netfilter 是 Linux 防火墙组合工具 , 是一起来完成系统防护工作的 。
iptables 是位于用户空间 , 而 Netfilter 是位于内核空间 。 iptables 只是用户空间编写和传递规则的工具而已 , 真正工作的还是 Netfilter 。
两者间的区别:Netfilter 是内核态的 Linux 防火墙机制 , 它作为一个通用、抽象的框架 , 提供了一整套的 hook 函数管理机制 , 提供数据包过滤、网络地址转换、基于协议类型的连接跟踪的功能 , 可在数据包流经过程中 , 根据规则设置若干个关卡(hook 函数)来执行相关操作 。
它共设置了 5 个点 , 包括:
- prerouting:在对数据包做路由选择之前 , 将应用此链中的规则 。
- input:当收到访问防火墙本机地址的数据包时 , 将应用此链中的规则 。
- forward:当收到需要通过防火中转发给其他地址的数据包时 , 将应用此链中的规则 。
- output:当防火墙本机向外发送数据包时 , 将应用此链中的规则 。
- postrouting:在对数据包做路由选择之后 , 将应用此链中的规则 。
通过下图我们可以来了解下 Netfilter 的工作机制:
本文插图
当数据包通过网络接口进入时 , 经过链路层之后进入网络层到达PREROUTING , 然后根据目标 IP 地址进行查找路由 。
如目标 IP 是本机 , 数据包会传到 INPUT 上 , 经过协议栈后根据端口将数据送到相应的应用程序;应用程序将请求处理后把响应数据包发送至 OUTPUT 里 , 最终通过 POSTROUTING 后发送出网络接口 。
如目标 IP 不是本机 , 并且服务器开启了 FORWARD 参数 , 这时会将数据包递送给 FORWARD , 最后通过 POSTROUTING 后发送出网络接口 。
推荐阅读
- IOS系统|从ios企业签名的机制及原理解析掉签的原因
- 互联网|深入整合G Suite服务 Gmail助力用户在家远程办公
- |重新理解增长:实现用户增长的5个步骤
- Geek研究僧|网络串流解码播放器有什么用?BLUESOUND NODE 2i 深入体验告诉你
- |上汽大众高端车型深入人心,再推新车力推品牌上行
- 中年|寻找原石:理解孙正义的投资逻辑
- 中国统计网|SQL太难?你离完全理解SQL就差这10步!
- 搜狐新闻|模块化厨房锅具设计,解决收纳难题,深入洞察需求的经典佳作,日本热卖近10年
- 拍照摄影|手机拍照能在哪些方面取代单反相机?该这样理解
- 科技小数据|产业观察:如何通俗地理解5G及其应用
