是的,有可能。这是我类似设置的详细信息。
硬件配置:
APC Smart-UPS 1500通过USB连接到ESXi 5.1主机。在此ESXi主机上运行的Linux虚拟机。UPS使用ESXi USB pass through选项连接到此VM。
软件配置:
VM中运行的NUT(网络UPS工具)主设备,以及ESXi主机上运行的本机ESXi NUT从设备。
关机逻辑:
VM正在运行UPS驱动程序usbhid-up,该驱动程序负责通过USB与UPS进行通信。所述UPSD进程连接到通过USBHID起坐驱动和监视UPS状态UPS。在同一台计算机上运行的upsmon主进程连接到upsd并启动关闭。ESXi主机运行的第二实例UPSMON也连接到同一个VM UPSD经由内部网络。
发生电源故障时,将按以下顺序进行:
- UPS通过usbhid-ups向upsd报告电源故障。
- (可选,如果要在几分钟内关闭而不是电池电量不足,则很有用)VM上的upsmon会启动upssched 5分钟计时器。如果恢复供电,计时器将中止。
- 当计时器触发或UPS报告电池电量低时,upsmon会将FSD(强制关机)标志提高到upsd。
- 在独立的NUT配置中,FSD标志将关闭计算机。但是这里的shutdown命令由简单的日志记录代替,例如“我现在应该关机,但我正在等待主机”。什么也没做。
- ESXi upsmon也会读取FSD标志,这将启动ESXi主机关闭。
- ESXi主机一一关闭所有虚拟机。重要的是,运行upsd的VM应该最后关闭(使用ESXi启动/关闭序列配置)。
- 重要:此虚拟机必须安装了vmware工具。当它从主机收到guest虚拟机关闭命令时,将启动vmware-tools关闭脚本。该脚本检查/ etc / killpower标志。如果没有标志,则不执行任何操作(这意味着用户激活了Linux关闭,而不是UPS事件)。但是,如果该标志存在(FSD处于活动状态),则此脚本将延迟的关机命令发送到UPS(例如,在3分钟内)。
- 运行vmware-tools脚本后,来宾VM将关闭。
- ESXi会看到最后一个VM电源关闭状态并自行关闭(大约需要1分钟,因为现在没有其他计算机在运行)。
- 在剩余的2分钟内,UPS切断电源。
- 恢复电源后,ESXi将启动并打开所有VM的电源。必须首先启动UPS监视计算机(与关机顺序相同的配置)。
资料下载:
用于Linux的NUT可以从软件包中安装。
可以使用本页上的最后链接下载ESXi服务器的本机NUT客户端:http : //www.networkupstools.org/download.html
我的一些脚本和conf文件在这里(仅显示更改的行):http : //pastebin.com/KkEeanK1
笔记:
当然,还有更多细节,我花了一些时间使此工作正常进行。但是现在它的表现非常好。该系统说明了您仅从内部关闭监视VM(未运行vmware-tools脚本),或者是ESXi主机启动的VM关闭(无/ etc / killpower标志,因此没有UPS负载关闭)的情况,或如果是ESXi关闭(相同)。唯一重要的是让此VM在主机引导后尽快运行并最后关闭它(因此主机停机时间是可以预见的-如上所述,对于我来说大约是1分钟,为防止万一,我还要保留2分钟)。
我的UPS监视Linux VM还是用于备份存储的Samba / NFS共享服务器,用于VM的NAT / DHCP服务器以及其他一些轻量级服务。闲置时,它需要大约22MHz的ESXi CPU份额和大约10MB的活动RAM。由于使用了NUT,因此可以根据需要从同一UPS为更多设备供电,并且可以正常关闭所有设备。不需要PowerChute和/或昂贵的网络监控卡。