消费级(即廉价)UPS 可以在 Linux 上断电时触发自定义脚本吗?

消费级(即廉价)UPS 可以在 Linux 上断电时触发自定义脚本吗?

我本质上试图构建一个穷人的服务器故障转移解决方案。

我所在的非营利组织计划托管多个 Web 应用程序。为了节省托管成本,我们决定在内部托管网站。为了在筹集到资金之前获得合适的服务器机房,我们设置了两台桌面服务器,并在虚拟机上运行应用程序。

就性能而言,这些机器及其所托管的 FiOS Business 连接完全满足了我们当前的需求,而且它们位于较冷的干燥区域,因此冷却不是问题。未来最大的问题是缺乏电池备份。这些应用程序本身并不是任务关键型的,而且设计得相当强大,在电源故障时可以完全恢复。但是,我们组织的网站也托管在这台服务器上,非常重要,需要某种冗余备份。

我想构建一个系统,在发生电源故障时,UPS 会为服务器和网络设备提供应急电源,并通知服务器电源故障。然后,服务器将对 Amazon Route 53 DNS 服务进行 API 调用,并将流量从发生电源故障的服务器重新路由到 Heroku 或 Pagoda Box 实例。这些实例将使用定期推送给它们的内容运行我们网站的精简版。

我们运行的是 Linux 环境。那么,消费级 UPS 如何在电源故障时触发自定义脚本,从而使故障转移链生效?

答案1

您可以配置apcupsd每当 APC 品牌 UPS 检测到电源故障或主电源恢复时运行自定义脚本(以及许多其他与 UPS 相关的活动)。然后这些脚本可以执行您能够自动执行的任何其他操作。

APC 在不同价格范围内提供各种产品;如果这是您购买时的一个重要因素,请务必在购买 UPS 之前检查兼容性。

当然,我相信还有其他的选择;这只是一种可能性,而且我有一些亲身经历。

还要考虑您的 ISP 网络在发生大规模停电时是否能够正常运行。您可能能够为自己的网络设备提供应急电源,但这可能并不够——如果您没有互联网连接,您更改 DNS 的尝试显然会失败。根据您的特定可靠性需求,可能值得考虑在您自己的网络外部的主机上运行某种“您还在线吗?”测试(这也可以处理例如有人意外或故意切断电缆的情况)作为辅助后备机制。

相关内容