EyeQ Tech Asked: 2021-09-25 22:35:21 +0800 CST2021-09-25 22:35:21 +0800 CST 2021-09-25 22:35:21 +0800 CST 设计一种在 ssh-server 冻结时重启裸机服务器的替代方法 772 我们在远程数据中心有一个裸机。有时,我们无法通过 ssh 登录,通常是因为 ssh 服务器死了。它只需要重新启动,但我们不能快速完成(必须向数据中心打几个电话/请求),必须等待一天左右,直到有人走到机器前并按下物理按钮。 所以我们正在考虑设计一个在服务器上运行的 API(当然是有凭据的)。每当我们无法 ssh 时,我们都会调用该 API 并触发重启过程。 这是一个好的解决方案吗?如果没有,还有其他做法吗? 谢谢。 ssh reboot 1 个回答 Voted Best Answer davidgo 2021-09-26T00:54:46+08:002021-09-26T00:54:46+08:00 有很多解决方案。你的脚本可以工作,但如果 SSH 不可访问但 http 是你应该修复根本原因,而不是重新启动的黑客。(疯狂的猜测,旋转磁盘上的交换过多。尝试将 vm.swappiness 设置为 5 并减少 - 但不要消除 - 如果它的 Linux 和帽子的原因交换分区大小)。 正如其他人所说,“适当的”服务器通常具有带外管理,允许远程重启等等(例如 iLo 用于 HP,iDrac 用于 Dell)。 另一种选择是获得一个能够切换电源端口的电源开关。它们并没有那么贵。 去“更多黑客”,看看看门狗定时器支持 - 这里有很多变体和选项取决于硬件和操作系统,但想法是系统监控自己,如果操作系统不定期写入特殊设备,系统会重新启动。 如果您是黑客(在道德意义上),或者认识某个黑客,您应该能够使用 Raspberry pi(如果您制作自己的看门狗或有 WIFI,甚至可以使用 arduino)使用基本计算机来驱动继电器(碰巧我今天早些时候在看一个带继电器的 arduino 板,价格低于 10 美元——在速卖通上搜索 esp8266 继电器) 另一个解决方案 - 对我来说效果很好 - 是将我的裸机转换为 VM 服务器(如果预算是 KVM/proxmox 的一个问题),并确保我没有过度配置资源并虚拟化应用程序。通过这种方式,您可以在大多数情况下进入您的管理程序并调试并执行重新启动。您可以通过将不同的功能分解到不同的虚拟机上来进一步改进事情,这样在发生故障时您可能仍然有部分服务 - 这当然假设您不只是走云/虚拟机路线。
有很多解决方案。你的脚本可以工作,但如果 SSH 不可访问但 http 是你应该修复根本原因,而不是重新启动的黑客。(疯狂的猜测,旋转磁盘上的交换过多。尝试将 vm.swappiness 设置为 5 并减少 - 但不要消除 - 如果它的 Linux 和帽子的原因交换分区大小)。
正如其他人所说,“适当的”服务器通常具有带外管理,允许远程重启等等(例如 iLo 用于 HP,iDrac 用于 Dell)。
另一种选择是获得一个能够切换电源端口的电源开关。它们并没有那么贵。
去“更多黑客”,看看看门狗定时器支持 - 这里有很多变体和选项取决于硬件和操作系统,但想法是系统监控自己,如果操作系统不定期写入特殊设备,系统会重新启动。
如果您是黑客(在道德意义上),或者认识某个黑客,您应该能够使用 Raspberry pi(如果您制作自己的看门狗或有 WIFI,甚至可以使用 arduino)使用基本计算机来驱动继电器(碰巧我今天早些时候在看一个带继电器的 arduino 板,价格低于 10 美元——在速卖通上搜索 esp8266 继电器)
另一个解决方案 - 对我来说效果很好 - 是将我的裸机转换为 VM 服务器(如果预算是 KVM/proxmox 的一个问题),并确保我没有过度配置资源并虚拟化应用程序。通过这种方式,您可以在大多数情况下进入您的管理程序并调试并执行重新启动。您可以通过将不同的功能分解到不同的虚拟机上来进一步改进事情,这样在发生故障时您可能仍然有部分服务 - 这当然假设您不只是走云/虚拟机路线。