Guide: APC Back-UPS Pro till flera servrar i hemma labbet

Jag som bor i Värmdö kommun med 455 registrerade strömavbrott under 2012 (Vattenfall egen statistik), innebar 2012 tre trasiga hårddiskar och ett bränt nätagg. Och sådär kan vi ju inte ha det. Från ord till handling och en APC Back-UPS Pro 900 beställdes hem, men innan beställningen hade jag gjort lite beräkningar.

Beräkna hur stor UPS du behöver

Jag använde mig av APC:s egna verktyg för att beräkna storleken på min UPS, i mitt fall så beräknade jag på ca 200W belastning, och ville ha ca 30 minuters drifttid. http://www.apc.com/tools/ups_selector/ Av egen erfarenhet så drar en vanlig ”Labbserver” utan skärm ca 70-100w, så har du bara en maskin så kan du köra med en lite mindre modell till exempel: http://www.komplett.se/k/ki.aspx?sku=119785. Men tänkt på att du behöver ta höjd för servern maxbelastning, som vid uppstart, eller när CPU:n körs på maxbelastning. Switcharna märks knappt när man kopplar in dom i UPS:en.

Hur ska den skydda vid avbrott?

Där bestämde jag mig för att den skulle köra max 10 minuter och sedan stänga ner servern. Detta för att jag skulle ha kraft för dom oftast återkommande strömavbrotten som drabbar oss varje gång det snöar kraftigt i länet. Det har inte vart ovanligt med 5-10 strömavbrott en och samma dag för oss.

Så med andra ord skulle lösningen klara av flera kortare strömavbrott, men stänga ner servern säkert när strömavbrotten är längre än 10 minuter.

Så vilken modell ska jag köpa?

Jag beställde UPS:en med tanken att den enbart skulle skydda min Hyper-V host. Samt att jag inte ville betala för den extra kostnad som en ”server UPS” kostar, mångdubbelt mera för att klara av att stänga av flera maskiner. Så APC:s Back-UPS Pro serie föll mig i smaken, den på 900VA skulle klara sig ca 30 minuter med min belastning, samt att den har en LCD Display som bland annat visar belastning & hur lång tid du får ut från batteriet vid nuvarande belastning.

Dessutom ville jag ha en UPS utan fläkt så att den inte låter en massa, den är trots allt i rummet bredvid mitt sovrum.

Dagen D

När min UPS kom så kopplade jag in den till mina datorer, det var enkelt med dom medföljande sladdarna, men för att koppla in övrig nätverksutrusning så behövdes lite moddning. Strömkablarna som medföljer UPS:en är av samma typ som kopplas direkt in i datorns nätagg. Så för ADSL modemet & switcharna så var det inte att tänka på. Lösningen var ganska enkel, nåja jag har ju el-teleteknisk utbildning i botten, så för nästa del så skall du inte genomföra detta utan att veta vad du gör.

Jag tog helt enkelt en av UPS kablarna som följde med (i mitt paket följde det med två kablar) och kapade ena ändan (kapa inte den ändan som skall in i UPS:en nu) och skarvade den med ett skarvruttag som jag köpte.

Färdiga skarven, med ADSL modemet inkopplat.

Problemen

Varför är det aldrig enkelt J Två problem fanns nu att lösa, eller helt enkelt byta UPS:en till en betydligt dyrare modell. Eftersom dom surt förvärvade slantarna var mig mer kära en lite fritid, så blev det till att lösa problemen istället.

Första problemet hade med att göra att den medföljande programvaran från APC fungerade bra på alla sätt och vis, förutom att den inte stänger ner min Windows 2012 Hyper-V host. Nästa problem handlade om att jag ville koppla in min filserver också. Nu visste jag ju om att den billigare modellen inte hade stöd för nedstängning av flera servrar, men det avskräckte inte.

Lösningen

Efter lite forskande så såg jag att APC Powershute Personal Edition loggar i loggboken i Windows vid varje strömavbrott respektive när strömmen kommer tillbaks. Och det kunde jag nu använda till min fördel.

Först skapade jag en ”Custom View” i loggboken för att enkelt hålla koll på mina Strövabrott.

Filtrera loggen på EventID 174 samt 61455

Om du inte ser några events ännu så kan det vara dags att testa UPS:en, koppla ur strömmen en snabbis så kommer du se att båda eventen dyker upp.

Skapa skript

Jag skapade sedan två Powershell skript som stänger ner servern, och skickar lite varningar.

Första kallade jag för UPS_Email_Alert.ps1

$Tid = (Get-Date).AddMinutes(10).ToString(”HH:mm:ss”)
$smtp = New-Object Net.Mail.SmtpClient(”smtprelay1.telia.com”)
$smtp.Send(”Alert@server.com”,”dinepost@mail.com”,”Strömavbrott!”,”Nedstängning påbörjad $Tid)
shutdown /m \\netsrv /s /t 600 /c ”Powerfailure in progress!! Shutdown in 10 min!” /d U:6:12
shutdown /s /t 600 /c ”Powerfailure in progress!! Shutdown in 10 min!” /d U:6:12
  • Första tre raderna är för att skicka ett mail om pågående strömavbrott.
  • Dom två sista raderna stänger ner Hyper-V hosten & min fjärrserver på nätverket.
  • /m = fjärrservernamnet
  • /s = Shutdown
  • /t 600 = 600 sekunder = 10 minuter innan den stänger ner servern.
  • /c är ett meddelande som visas på hosten när strömavbrottet sker.
  • /d U:6:12 står för ”Power Failure: Environment” Som orsak till nedstängningen av servern.

Andra skriptet avbryter nedstängningen ifall strömmen kommer tillbaks inom 10 minuter.

UPS_Email_Alert.ps1

$Tid = Get-Date -Format ”yyyy.MM.dd HH:mm”
$smtp = New-Object Net.Mail.SmtpClient(”smtprelay1.telia.com”)
$smtp.Send(”Alert@server.com”,”dinepost@mail.com”,”Power on!”,”Nedstängning avbrutet $Tid)
shutdown /a /m \\netsrv
shutdown /a /m \\hv1

Länka skripten till våra två event.

Välj custom viewn som vi skapade innan, se till att välja varningen för strömavbrott, välj attach task to this event…

Ge uppgiften ett namn

Klicka ”next” tre gånger till du kommer till följande val:

OBS! För att följande skall fungera så måste din Execution Policy vara satt på att tillåta skripkörning, är du osäker, läs följande http://technet.microsoft.com/en-us/library/ee176949.aspx

Välj sedan skriptet från den platsen där du sparade det. När du sparar kommer den att lägga argumenten rätt. (lägg till ”Powershell -File” för sökvägen)

Klicka i ”open the properties…”

Ändra sedan enligt bilden för att skriptet skall köras rätt.

Klicka sedan på OK.

Gör om samma procedur med andra skriptet, se bara till att välja EventID 61455 denna gång.

Nu är miljön klar för test, om du vill göra testet snabbare med avstängningen så kan du välja att minska på tiden från 600 till 60 så slipper du vänta så länge på att se om datorn stänger ner sig rätt.

Förbereda Hyper-V för UPS avstängningar

För att nedstängningarna inte skall ta en evighet och att VM:miljön inte skall bli medveten om strömavbrotten så har jag valt att spara alla VM:hostar

Ställ in Automatic Start & Stop action via Hyper-V Managern.

Du kan även ändra inställningarna via PowerShell eller via VMM.

get-scvirtualmachine | Set-SCVirtualMachine -StopAction SaveVM

Kommandot hämtar alla dina VM:s och ställer sedan om dom till att automatiskt sparas ifall hosten skall stängas ner.

7 nya strömavbrott på en månad nu, men inga nya skador på datorerna J

Väl mött tills nästa gång.

Annonser

About Harri Förberg

Jag och mina kollegor utgår ifrån "Hur svårt kan det va". Och det är en bra attityd om man ska skriva på en blogg. Nyfiket och pragmatiskt kring IT frågor med fokus på Microsoft Infrastruktur. Läs mer om oss på www.forbergsit.se

Posted on februari 11, 2013, in PowerShell, Windows Server 2012 and tagged , , , , , , . Bookmark the permalink. 1 kommentar.

  1. Tack för en bra artikel! Läsvärt för en IT-nörd som också ska köpa UPS, men av andra anledningar.
    Såg att APC har ju ”vanliga” kontakter till många av deras UPSer. Som denna:
    http://www.apc.com/resource/include/techspec_index.cfm?base_sku=BR900G-GR

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: