keelRM:没有 BMC 的机器也有带外管理
能得到什么
打开 https://主机地址:8623/,用 keelOS 的管理员密码登录:
- 状态:宿主在不在跑、重启了多久、崩溃原因、现在是哪个槽。
- 宿主的屏幕、能打字的串口控制台(loader、内核信息、登录),以及 hypervisor 的日志。
- 按钮:reload 宿主、复位、关机、重启 keelRM、下次从另一个槽启动一次。
- 救援:把管理口地址改回来、重置管理员密码、进安全模式(不自动开虚拟机、不绑直通设备)。
- 只说 TLS,缺省只让管理网段连,登录失败限速,每个操作都进审计日志。
怎么做的
hypervisor 在宿主之前先起一台很小的 Linux 虚拟机(1 个 CPU,64 MiB,没有磁盘),管理网卡归它,不归宿主。宿主在跑时它只做转发,自己留下 8623 端口;宿主不在时,它用宿主的地址应答 ARP、ping 和 8623。
实测
- 三次宿主 reload,每 200 ms 一个 ping:816 个一个没丢,三台虚拟机都挂起、恢复。
- 经 keelRM 的 1G 口带宽:842 / 938 Mbit/s,直接给宿主是 941 / 941。
- 救援测过:地址配错、重置密码、安全模式都能在页面上修好。重启 keelRM 本身断 2.5 秒。
限制
- 需要 Intel VT-d。AMD 还不支持。
- 只在一台多网口的 Supermicro 服务器上测过。只有一个网口的机器理论上可以(所有流量都经过 keelRM),但没测过。
- 关着的机器它开不了机(用 Wake-on-LAN);屏幕只能看不能操作(要打字用串口控制台);没有虚拟光驱。
- hypervisor 自己死了,keelRM 也一起没了。