VMware vCenter und Powerchute Network Shutdown Migration der virtuellen Maschinen vor Shutdown
Hallo,
ich möchten gerne in unserem vorhanden ESXi / vCenter Cluster mit SAN und HA Powerchute Networkshutdown intigrieren.
Es sind zwei Sites vorhanden, in jeder Site sind jeweils 4 ESXi Server vorhanden und diese sind jeweils an eine USV angeschlossen, also:
Site 1: SIte 2:
4x ESXi-Server 4x ESXi-Server
1x USV 1x USV
Die Konfiguration der USV bzw. NMC (Network Management Cards) ist erfolgt, bei Stromausfall werden nun die virtuellen Maschinen und danach die ESXi-Server in der jeweiligen Site Heruntergefahren.
Ich würde gerne eine Sache Ändern: Bevor die ESXi Server in der jeweiligen Site Heruntergefahren werden, sollen die virtuellen Maschinen in die jeweils andere Site (mit Strom) migriert werden.
Kann mir jemannd dabei weiterhelfen oder ist das so nicht möglich?
mfg
ich möchten gerne in unserem vorhanden ESXi / vCenter Cluster mit SAN und HA Powerchute Networkshutdown intigrieren.
Es sind zwei Sites vorhanden, in jeder Site sind jeweils 4 ESXi Server vorhanden und diese sind jeweils an eine USV angeschlossen, also:
Site 1: SIte 2:
4x ESXi-Server 4x ESXi-Server
1x USV 1x USV
Die Konfiguration der USV bzw. NMC (Network Management Cards) ist erfolgt, bei Stromausfall werden nun die virtuellen Maschinen und danach die ESXi-Server in der jeweiligen Site Heruntergefahren.
Ich würde gerne eine Sache Ändern: Bevor die ESXi Server in der jeweiligen Site Heruntergefahren werden, sollen die virtuellen Maschinen in die jeweils andere Site (mit Strom) migriert werden.
Kann mir jemannd dabei weiterhelfen oder ist das so nicht möglich?
mfg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 163172
Url: https://administrator.de/contentid/163172
Ausgedruckt am: 14.11.2024 um 17:11 Uhr
12 Kommentare
Neuester Kommentar
Hmm scheint ja so, als wenn relativ wenig Leute sich damit auseinandersetzen.
Mich würde die Thematik aber auch interessieren.
So wie ich dich verstanden habe, hast du ein vCenter Server und dort drin 2 Cluster mit jeweils 4 ESXi-Servern.
Mein Ansatz wäre folgender:
Wenn du 2 USVs mit 2 Mgmt-Karten hast, besteht ja die Möglichkeit, dass die USV beim Stromausfall eine BAtchdatei zum Beispiel ausführt. Diese wiederum könnte zum Beispiel eine CMDlet über die VMware PowerCLI ausführen und dabei wird der Status der VMs auf den Host abgefragt und dann natürlich auch ins zweite Cluster migriert.
Setzt natürlich voraus, dass deine Lizenz vMotion unterstützt. Was ich jetzt so auf die schnelle nicht weiß ist, ob man über 2 Cluster hinaus vMotion einzelner VMs nutzen kann. Aber das prüfe ich morgen mal @work.
Mich würde die Thematik aber auch interessieren.
So wie ich dich verstanden habe, hast du ein vCenter Server und dort drin 2 Cluster mit jeweils 4 ESXi-Servern.
Mein Ansatz wäre folgender:
Wenn du 2 USVs mit 2 Mgmt-Karten hast, besteht ja die Möglichkeit, dass die USV beim Stromausfall eine BAtchdatei zum Beispiel ausführt. Diese wiederum könnte zum Beispiel eine CMDlet über die VMware PowerCLI ausführen und dabei wird der Status der VMs auf den Host abgefragt und dann natürlich auch ins zweite Cluster migriert.
Setzt natürlich voraus, dass deine Lizenz vMotion unterstützt. Was ich jetzt so auf die schnelle nicht weiß ist, ob man über 2 Cluster hinaus vMotion einzelner VMs nutzen kann. Aber das prüfe ich morgen mal @work.
Also auf der PowerCLI reicht
Get-VM -Name <NAME VM> | Move-VM -Destination (Get-VMHost <x.x.x.x>)
Also sollte man ein Script auf Kommando der Managementkarte ausführen lassen, welches wiederrum ein PowerShell-Script startes welches sich zum vCenter Server connectet und dort das Cmdlet startet. Ist etwas tricky, weil man über einen selbst erstellten Taskjob die .ps1-Datei aufrufen muss.
Get-VM -Name <NAME VM> | Move-VM -Destination (Get-VMHost <x.x.x.x>)
Also sollte man ein Script auf Kommando der Managementkarte ausführen lassen, welches wiederrum ein PowerShell-Script startes welches sich zum vCenter Server connectet und dort das Cmdlet startet. Ist etwas tricky, weil man über einen selbst erstellten Taskjob die .ps1-Datei aufrufen muss.
Also versuch mal die Lösung.
Damit sollte es klappen.
1. Im Windows Taskplaner (Start → Verwaltung → Aufgabenplanung) den Taskjob move-vm.xml importieren und die Authentifizierungs-Angaben anpassen.
move-vm.xml
2. Erstelle eine .bat-Datei "apc-move.bat" , die du dann von der Managementkarte bei Stromausfall oder Akkubetrieb ausführen lässt.
apc-move.bat
3. Erstellung "move-vms.ps1"
Funktionsweise sieht dann wie folgt aus.
Die Managementkarte ruft auf das Ereignis hin die "apc-move.bat" auf. Diese bat-Datei startet wiederum den Taskjob "move-vm". Der Vorteil des Taskjob ist die systemnahe Ausführung des ps-Scriptes "move-vms.ps1", wo die Befehle für das Verschieben der VMs drin stehen.
Damit sollte es klappen.
1. Im Windows Taskplaner (Start → Verwaltung → Aufgabenplanung) den Taskjob move-vm.xml importieren und die Authentifizierungs-Angaben anpassen.
move-vm.xml
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2011-03-25T11:24:26.1658685</Date>
<Author>Bommel08</Author>
<Description>Task zum Ausführen des Move-Script durch APC PowerChute Networkshutdown</Description>
</RegistrationInfo>
<Triggers />
<Principals>
<Principal id="Author">
<UserId>DUMMY\administrator</UserId>
<LogonType>Password</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>%SystemRoot%\system32\windowspowershell\v1.0\powershell.exe</Command>
<Arguments>-ImportSystemModules C:\VI_Scripts\move-vms.ps1</Arguments>
</Exec>
</Actions>
</Task>
2. Erstelle eine .bat-Datei "apc-move.bat" , die du dann von der Managementkarte bei Stromausfall oder Akkubetrieb ausführen lässt.
apc-move.bat
@ECHO OFF
schtasks /Run /TN move-vm
ECHO %date%, %time:~0,8% - Networkshutdown-move wurde ausgeführt... >> log.txt
exit
3. Erstellung "move-vms.ps1"
connect-viserver vCenter -user -password
get-vmhost ESX1.meinedomain.de | get-vm "VM Name1, "VM Name 2" | move-vm –destination ESX2.meinedomaine.de
Funktionsweise sieht dann wie folgt aus.
Die Managementkarte ruft auf das Ereignis hin die "apc-move.bat" auf. Diese bat-Datei startet wiederum den Taskjob "move-vm". Der Vorteil des Taskjob ist die systemnahe Ausführung des ps-Scriptes "move-vms.ps1", wo die Befehle für das Verschieben der VMs drin stehen.
Also ich hab auf dem vCenter Server APC PowerChute Network Shutdown installiert und dort unter "CONFIGURE EVENTS" zum Beispiel bei "Communication: Lost while on Battery" das Script hinterlegt: C:\VI_Scripts\move.bat
Das liegt also lokal auf dem vCenter Server bzw. der Server auf dem PowerChute Network Shutdown installiert ist.
Das liegt also lokal auf dem vCenter Server bzw. der Server auf dem PowerChute Network Shutdown installiert ist.