我的 Proxmox 集群设置由三台 Dell Optiplex 中塔式设备(2 台 3070 和 1 台 3060)和一台 Lenovo m625q 组成。 m625q 作为集群的“控制器”节点和运行 Tailscale VPN 的虚拟机的主机始终保持开启状态。
三个 Dell Optiplex 节点配置为在 BIOS 中启用 LAN 唤醒、禁用深度睡眠控制以及启用块睡眠。当系统在拔掉插头后首次通电时(例如在断电期间或在移动时),LAN 唤醒会起作用;尽管系统保持离线状态,NIC仍会打开,并且从Proxmox发送Wake On LAN命令工作得很好。然而,从 Proxmox 关闭节点也会导致 NIC 关闭,而我似乎没有采取任何措施来阻止这种情况发生。
即使 BIOS 配置为 LAN 唤醒,为什么 NIC 仍会通过 Proxmox 关闭,我该如何解决此问题?
一些澄清 - 当系统启动时,网卡工作正常,而在操作系统中,到目前为止我还没有遇到任何问题。当系统关闭时,网卡也会关闭,尽管 BIOS 被告知不要关闭它们。
控制器始终保持打开状态,但 Optiplex 节点可根据需求随意关闭/打开。它是完全手动的,我知道由此可能导致的危险,我配置了一个 QDevice 来尝试避免可怕的“裂脑”情况,到目前为止我还没有后悔这个设置。不过,当它正常工作时,我会更喜欢它。
为了解决这个问题,我必须在 Proxmox 中启用 LAN 唤醒。我在所有集群机器的 BIOS 中启用了 WoL,并将 MAC 地址硬编码到 Proxmox 中,但 Linux 要求您完成一个过程以在操作系统中启用 LAN 唤醒。如果您不执行此步骤,操作系统仍然可以关闭 NIC,并且不会侦听魔术数据包以将其唤醒。
这是我手动设置网络接口以在启动时启用 LAN 唤醒的指南。重要的一点在这里:
确保您已经安装了 ethtool
apt install ethtool
使用打开网络接口配置
nano /etc/network/interfaces
(确保如果按照网站您在“接口”末尾添加“s”,否则您将得到一个空白文档)在“iface”行下添加以下内容
post-up /usr/sbin/ethtool -s <interface_name> wol g
,确保将 <interface_name> 替换为系统 NIC 接口的正确名称它应该看起来像我的(您的接口名称可能不同):
指南链接: https://sabbakix.com/posts/proxmox/proxmox-debian-set-wake-on-lan/