dun*_*nxd 20 electrical-power vmware-esxi apc-smart-ups
我将一堆 ESXi 5.1 服务器运送到远程办公室,在那里它们将通过 APC UPS 供电。
我想让 UPS 触发已连接服务器的关闭 - 然后我将依靠 ESXi 配置来处理托管在其上的 VM 的关闭/暂停。
我可以看到 APC使用他们的 PowerChute Network Shutdown 记录了一个解决方案,但这涉及为每个办公室设置一个额外的服务器,并且每个 UPS 上都需要网卡。我们通常使用不带网卡的 UPS(例如 Back-UPS Pro)——它们带有 USB 连接器,并且在我们办公室所在的位置随时可用。
如何通过 USB 将 UPS 连接到 ESXi 主机,然后让 ESXi 检测到断电并采取相应措施?有没有人设法做到这一点。
小智 25
是的,这是可能的。这是我的类似设置的详细信息。
硬件配置: APC Smart-UPS 1500 通过 USB 连接到 ESXi 5.1 主机。在此 ESXi 主机上运行的 Linux 虚拟机。UPS 使用 ESXi USB 直通选项连接到此 VM。
软件配置: NUT(Network UPS Tools)master运行在VM中,原生ESXi NUT slave运行在ESXi主机上。
关机逻辑: VM 正在运行 UPS 驱动程序usbhid-ups,负责通过 USB 与 UPS 通信。所述UPSD进程连接到通过USBHID起坐驱动和监视UPS状态UPS。在同一台机器上运行的upsmon主进程连接到upsd并启动关闭。ESXi主机运行的第二实例UPSMON也连接到同一个VM UPSD经由内部网络。
电源故障时,会发生以下顺序:
下载:
Linux 的 NUT 可以从包中安装。
可以使用此页面上的最后一个链接下载 ESXi 服务器的本机 NUT 客户端:http : //www.networkupstools.org/download.html
我的一些脚本和 conf 文件在这里(只显示更改的行):http : //pastebin.com/KkEeanK1
笔记:
当然还有更多的细节,我花了一些时间才能让它正常工作。但现在它的表现非常好。该系统考虑了以下情况:您只是从内部关闭监控 VM(未运行 vmware-tools 脚本),或者是 ESXi 主机启动的 VM 关闭(没有 /etc/killpower 标志,因此没有关闭 UPS 负载),或如果是 ESXi 关闭(相同)。唯一重要的是让这个虚拟机在主机启动后尽快运行,并最后关闭它(所以主机停机时间是可以预测的 - 如上所述,对我来说大约是 1 分钟,我再预留 2 分钟以防万一)。
我的 UPS 监控 Linux VM 也是用于备份存储的 Samba/NFS 共享服务器、用于 VM 的 NAT/DHCP 服务器以及其他一些轻量级服务。空闲时它需要大约 22MHz 的 ESXi CPU 份额和大约 10MB 的活动 RAM。由于使用 NUT,您可以根据需要从同一个 UPS 为更多设备供电,并且可以正常关闭所有设备。不需要 PowerChute 和/或昂贵的网络监控卡。
MrM*_*tyk 17
超级问题。实际上可以很好地做到这一点 - 至少在某些设置上。我已经在许多 ESXi 5.5 主机上尝试了以下方法。基本上,解决方案是这样的:
ctrl urb status -62
中的错误dmesg
,则物理控制器可能与您的 VM 中的控制器不匹配。如果它们匹配 - 那么这是一个问题。我有一个此类问题的设置,但没有真正的解决方案。apcupsd
在 Linux VM 上安装- 在 Ubuntu 中,您可以sudo apt-get install apcupsd
安装最新版本。NUT 项目也不错,但我是一个传统主义者。sudo apt-get install putty-tools
plink root@<your ESXi host IP>
。您可以立即关闭连接。目标是保存主机密钥,以便在我们通过脚本运行它时 plink 不会再次提示它/etc/apcupsd/apcupsd.conf
和更改下面的项目以使它们匹配:
UPSNAME < the name you'd like your UPS to have >
UPSCABLE usb
UPSTYPE usb
# DEVICE DIRECTIVE should be blank for USB
DEVICE
同时确保/etc/default/apcupsd
具有ISCONFIGURED=yes
/etc/apcupsd/apccontrol
并滚动到doshutdown
案例。让它看起来像这样:
doshutdown)
echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
# Shut down indirectly by triggering the ESXi host to do the
# shutdown via VMWare tools
/usr/bin/plink root@< your ESXi host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff"
;;
sudo service apcupsd restart
并通过调用apcaccess
. 如果没有,请检查日志和 dmesgvCenter -> <your host> -> Manage -> Settings -> VM Startup/Shutdown
。确保关闭操作是关闭来宾操作系统。一旦您运行了这些东西,doshutdown
就会在电源故障时调用步骤 8 中的scriptlet。这将调用 ESXi 主机上的 shutdown.sh 脚本,该脚本向主机上每个 VM 中的 VMWare 工具包发出信号,以通过来宾操作系统进行干净关闭。根据我的经验,它比 APC 的 PowerChute 软件效果更好。
如果您想从您的 VM 监控事物,您可以在它们上设置从属 apcupsd 实例,这些实例连接到主 UPS 控制 Linux VM。您的从属 apcupsd.conf 文件应该有这样的条目:在这种情况下,诸如此类的
UPSTYPE net < your UPS control VM IP >:3551
条目UPSCABLE
无关紧要。这也适用于apcupsd
(可在此处获得)的 Windows 版本。您可以使用包含apctray.exe
来检查事物的当前状态。
我认为这几乎涵盖了它。
归档时间: |
|
查看次数: |
85098 次 |
最近记录: |