我正在寻找如何控制机架的启动顺序的build议,如果他们都需要启动备份。 更详细地说:
Group1: DHCP/DNS/LDAP Server Group2: NFS servers Group3: Web Servers Compute Nodes
我目前正在configurationapcupsd来处理紧急关机,尤其是数据服务器,但我不确定是否应该使用WOL编写一些复杂的启动脚本,或者如果有早期的networking事件系统让Linux暂停启动过程直到收到正确的事件。
如果重要的话,所有的服务器都是戴尔,而且他们有iDRAC,但是如果能提供任何替代scheme,我还没有能够实现。
你有几个select。 将两种或更多种方法结合起来可能是一个好主意。
如果每个组都在专用的UPS上,则可以在一定程度上控制UPS的启动顺序。 大功率UPS通常可以configuration为延迟其启动。 错开启动延迟以满足您的需求。 无论如何,您应该进行惊人的启动,以防止触发熔断器或断路器的启动=上电负载。
正如其他人已经指出,有PDU延迟function。 这些将被configuration为UPS。 它们也可以是networking可控的,以便在需要的服务可用时开启下一个组。
WoL是其他方法可以使用的一种方法。
如果您正在使用单线程init进程,则可以在继续之前添加一个等待所需服务可用的初始化脚本。 或者,您可以将检查添加到适当的init脚本。 无论如何,增加警卫检查必要的服务可能是一个好主意。
你可以把你的互联网面对IP地址。 但在所有必需的服务到位之前不能启用它们。 这将需要一个警卫脚本来validation所需的服务是否可用。
可以configurationNFS挂载,直到挂载可用。 这应该延迟进一步的init处理,直到NFS服务器提供所需的安装。
我会质疑你正在计划的具体情况…
你是否试图计划在停电后加电? 从某种灾难中恢复? 或者是你关心更多的功耗相关? 对于后者,我有时会使用在服务器的BIOS中configuration的随机启动延迟,或使用交换式PDU来处理加电顺序以防止超载。
在sorting方面,我会围绕应用程序级别的依赖关系进行工程devise。 从冷启动开始,您的应用程序服务器应该能够容忍支持服务器(DHCP / DNS / LDAP)出现故障,延迟或丢失。 你有备份服务器运行这些服务? 任何地点以外的东西?
如果没有,您可以设置应用程序或守护进程启动检查 – 例如,如果无法到达DNS服务器,请不要启动NFS守护进程。 我已经使用Monit或包装脚本进行了less量的这种依赖性检查…但是在大多数环境中,这种types的sorting真的没有想到。
你想达到什么目的? 最大限度地减less(平滑)由一堆服务器同时启动引起的需求高峰或者可以推动紧急适应poweroff? 如果是前者,那么就要寻找功率sorting器 – 有一些机架内设备可以设置延迟可编程延时的电源组,比方说每个组之间有几分钟的时间,以便每个组在开机之前都可以解决。 过去在中端的一些供应商中,这种情况非常普遍。
在我看来,你已经回答了你自己的问题。 WoL是确保服务器按照一定顺序启动的好方法。 没有什么复杂的。 只要让每个服务器发送WoL信号到序列中的下一个。 只要logging该事件发生的时间,或者需要修改的时候。 理想情况下,WoL脚本将在发送信号之前首先检查相关服务是否正在运行。 您可能还会在这些检查上发生超时,如果发生错误,可以向您发送警报,如果服务器无法启动,可以节省一些回溯。