Hyper-V
Hyper-V 2012 在 UPS 電池耗盡時正常關閉
背景:
我們在一個使用 Windows 2008 R2 的小型辦公室中在 Hyper-V 中執行幾個虛擬伺服器。我們只有 1 個物理主機(我們不打算很快改變它)。我們希望遷移到 Hyper-V Server 2012。
目前我們有一個小型 UPS,它可以讓伺服器執行大約 20 分鐘,然後向 Windows 2008 發送關閉消息。UPS 通過 USB 連接。Windows 2008 將 UPS 辨識為電池,並且還有來自伊頓的軟體用於監控電池。當 Windows 關閉時,它也會正確關閉 VM。
我們不想為了讓 UPS 關閉伺服器而產生執行完整版 Server 2012 的成本,但我們也不希望 Active Directory 和 Exchange 突然斷電。
當 UPS 沒電時,我們可以讓 Hyper-V Server 2012 優雅地關閉虛擬機嗎?
我最終採用的解決方案是創建一個在啟動時執行的 VBScript(使用 cscript 和任務計劃程序)。
劇本:
set wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2") set batteryColl = wmi.ExecQuery("select * from Win32_Battery") set osColl = wmi.ExecQuery("select * from Win32_OperatingSystem") while true for each battery in batteryColl battery.Refresh_ if battery.batteryStatus = 1 and battery.EstimatedChargeRemaining <= 25 then for each os in osColl os.Win32Shutdown 5 next end if next wscript.Sleep 15000 wend
至少在這些方面,Hyper-V Server 與作為“伺服器核心”安裝的 Windows Server 相同,也就是說,沒有圖形使用者界面。您的 UPS 監控工具是否在該環境中工作取決於伊頓的軟體是否可以在沒有 GUI 的環境中執行,以及您是否願意使用命令行工具配置這些東西。
我建議打電話給伊頓問問他們。