1. 请求到达

    • 当用户请求到达Director Server(负载均衡服务器)时,数据包会先到达内核空间的PREROUTING链。此时,数据包的源IP为CIP(Client IP),目标IP为VIP(Virtual IP)。
  2. PREROUTING链

    • PREROUTING链检查数据包的目标IP是否是本机。如果是,将数据包送至INPUT链。
  3. INPUT链

    • 在INPUT链中,LVS判断数据包请求的服务是否是集群服务。如果是,LVS将修改数据包的目标IP为后端真实服务器的IP(RIP),然后将数据包发送至POSTROUTING链。此时,数据包的源IP为CIP,目标IP为RIP。
  4. POSTROUTING链

    • POSTROUTING链通过路由,将数据包发送给后端真实服务器(Real Server)。
  5. Real Server处理请求

    • Real Server接收到数据包后,发现目标IP是自己的IP,开始构建响应包并返回给Director Server。此时,响应包的源IP为RIP,目标IP为CIP。
  6. Director Server转发响应

    • Director Server接收到Real Server返回的响应包时,会将源IP地址修改为自己的VIP地址,然后将响应包发送回客户端。此时,响应包的源IP为VIP,目标IP为CIP。

(a) 当用户请求到达Director Server

  • 数据包进入PREROUTING链。
  • 源IP:CIP目标IP:VIP

(b) PREROUTING链检查

  • 检查目标IP是否是本机,是则发送至INPUT链。

(c) INPUT链的LVS处理

  • LVS判断请求服务是否为集群服务,若是,则修改目标IP为真实服务器的RIP。
  • 数据包进入POSTROUTING链。
  • 源IP:CIP目标IP:RIP

(d) POSTROUTING链转发

  • 数据包通过路由发送给Real Server。

(e) Real Server处理并响应

  • Real Server接收到数据包,处理请求并构建响应包返回给Director Server。
  • 响应包源IP:RIP响应包目标IP:CIP

(f) Director Server转发响应包

  • Director Server修改响应包的源IP为VIP,然后发送给客户端。
  • 响应包源IP:VIP响应包目标IP:CIP

应用场景:

  • 网站流量均衡:LVS可以用于大型网站,将流量分配到不同的Web服务器,提升网站的处理能力和响应速度。
  • 数据库读写分离:LVS可以用于数据库集群,将读请求和写请求分配到不同的数据库服务器,优化数据库性能。

举例:

  • 电商网站:一个电商网站使用LVS来处理大量用户请求。用户的浏览请求(如查看商品页面)通过LVS分配到不同的Web服务器,确保每个服务器负载均衡,用户可以快速加载页面。
  • 在线游戏:在线游戏服务器使用LVS分配玩家的连接请求到不同的游戏服务器,确保每个服务器可以均衡处理玩家的请求,提升游戏体验。

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝