按需唤醒(负载平衡解决方案?)

按需唤醒(负载平衡解决方案?)

我不知道如何面对具有挑战性的情况:按需唤醒服务器

问题

当传入数据包到达时,唤醒监听特定端口的物理服务器。客户端和服务器之间可能存在控制器/中间件,但它不应影响带宽(并且对用户透明)。

主要目标:节省电力消耗。

我尝试过的方法

我在本次演示中尝试的设置适用于 Samba NAS 服务器。



  • 防火墙唤醒:与上一个选项类似,但作用于传输层,针对请求的端口,防火墙将唤醒服务器。需要子网来伪装服务器。

    防火墙拓扑

    • 优点:通用,对已建立状态的用户透明
    • 缺点:带宽受影响,需要新的子网

  • 远程视频服务器:基于负载平衡环境,目标是利用浮动 IP 地址。我设想修改 ipvs 堆栈(管理工具或者保持活跃) 通过在请求到达时实现唤醒服务器功能。这需要大量的工作和搜索,这就是为什么我更愿意看看是否还有其他解决方案 ;)

    IPVS DR 拓扑

    • 优点:通用,对已建立状态的用户透明,带宽不受影响
    • 缺点:设置起来困难吗?

这是 NAS 服务器的一个示例,但我更喜欢采用优雅而通用的解决方案来解决这个问题。

有任何想法吗 ? :)

答案1

可能是最简单的解决方案,完全透明:

  1. 选择一个“WoL 服务器”:可以是一台微型信用卡计算机,也可以是一台现有机器上的服务 - 任何你可以运行数据包捕获并且可以使用(或多或少)专用 NIC 进行捕获的东西;可能你也可以使用适合编写脚本的路由器
  2. 在物理服务器的交换机上,配置从物理服务器端口到 WoL 服务器端口的端口镜像
  3. 在 WoL 服务器上,使用适当的过滤器运行数据包捕获 - 物理服务器 IP 的 ARP、HTTP 套接字的 SYN,...
  4. 在 WoL 服务器上,运行一个小脚本来监控捕获的数据包,并在命中时将 WoL 数据包发送到物理服务器

如果您使用更高层触发帧(如 HTTP 的 SYN),请不要忘记在上游路由器上添加静态 ARP 条目。

相关内容