CDC–Cloud & Datacenter Conference Germany 2017

eingetragen in: Hyper-V, Vorträge | 0

Am 4. und 5.Mai 2017 findet die zweite CDC Germany in München in den Räumen der Microsoft Deutschland statt:

https://www.cdc-germany.de/

image

Als erfahrender Besucher von community und kommerziell betriebenen technischen Veranstaltungen und Konferenzen sticht die CDC besonders positiv hervor!

Man hat nicht das Gefühl Marketing-Foliensätze von vertrieblich getriebenen, halbtechnischen Vortragenden, wie auf so mancher Herstellerveranstaltung, präsentiert zu bekommen, sondern es werden extrem tiefgehend technische Themen betrachtet und vor allem auch Grenzen und Probleme der Produkte offen angesprochen.

Direkt durch Hersteller gestellte Vortragende machen das in der klaren Art und Weise auf Veranstaltungen leider nur sehr selten.

Trotz der notwendigen Professionalität der Veranstaltung, welche auf anderen Community Events manchmal etwas zu untergeordnet ist, kommt auch das von mir sehr geschätzte sogenannte „Networking“ nicht zu Kurz und hat reichlich Raum. Der Veranstaltungsort hat dies durch seine offene aber auch zusammenhängende Gestaltung des Vortrags- und Partnerbereichs sehr gefördert. Ich hoffe das wird in 2017 am neuen Ort in München auch wieder so gut klappen.

Mein Ticket habe ich schon am ersten Tag der EarlyBird Phase gebucht und noch weitere Mitarbeiter unserer Firma für die Reise nach München begeistern können, so dass wir mit 400% der Personen teilnehmen werden wie zuletzt! Smile

SCVMM 2012 R2: "Install Virtual Guest Services" does not install current version of VMGuest Additions

eingetragen in: 2016, Hyper-V, Powershell | 0

Durch Installation u.a. der für Hyper-V empfohlenen Hotfixes aus der Liste unter https://support.microsoft.com/en-us/kb/2974503 wurden die Hyper-V Virtual Maschine Additions (aka vmguest.iso, VMAdditions, Hyper-V Additions, etc.) auf den Hyper-V Hosts (hier Hyper-V 2012 R2) aktualisiert.
Dies erfolgt z.B. durch den Hotfix 3063283.

Im vorliegenden Fall auf Version 6.3.9600.17831 oder kurz 17831.

Da SCVMM (System Center Virtual Maschine Manager 2012 R2) eingesetzt wird, sollten die VMs (virtuellen Maschinen) über die Funktion “Install Virtual Guest Services” unter “VMs and Services” aktualisiert werden.

Leider stellte sich heraus, dass VMM diesen Job zwar angeblich erfolgreich ausführte, aber die Version der “VMAdditions” der VMs sich nicht änderte, sprich auf dem alten Stand vor 17831 verblieb.

„SCVMM 2012 R2 CU8 aktualisiert die virtuellen Maschinen nicht mit der auf den Hyper-V (Datacenter 2012 R2) Hosts aktualisierten VM Guest Services, sondern anscheinend mit der vorherigen (alten) Version.

oder auch

Set-SCVirtualMaschine -VM <VMname> -InstallVirtualizationGuestServices $True

Ist zwar erfolgreich, aber aktualisiert die Guest Services nicht, aka die Versionsnummer in SCVMM bleibt gleich, auch nach einem Reboot und SCVMM Refresh der VM.“

 

Auffällig scheint das evtl. 2012 (also nicht 2012 R2) VMs sehr wohl aktualisiert werden können, da wir aber nur eine kleine Anzahl 2012er VMs haben können wir das aktuell nicht so ohne weiteres bestätigen.

Das Issue scheint als Bug schon bei MS gelandet zu sein:

https://www.experts-exchange.com/questions/28896823/How-do-I-upgrade-the-version-of-Hyper-V-Integration-Services-that-SCVMM-2012-R2-offers-to-VMs.html

Erst ein Case beim Microsoft Support brachte aber die Gewissheit, das es sich wirklich um einen bereits bekannten Bug handelt:

Bug 6653803:[RFH] : VM addition upgrades fail after patching hosts with Hyper-V hotfix 3063283

https://microsoft.visualstudio.com/DefaultCollection/WSSC/_workitems?id=6653803&_a=edit

Repro Details

1.  Please detail the exact steps needed to repro this problem. This includes:

· Detailed repro steps

· Hardware configuration

· Network infrastructure / configuration

· Operating system version

· SC product version (including UR upgrades)

a. VMM 2012 R2 UR8 on Windows Server 2012 R2.

b. Hyper-V host running Windows Server 2012 R2.

c. Guest VM running Windows Server 2012 R2.

d. Apply hotfix 3063283 on the host.

e. Shut down the VM.

f. In VMM Console, select the VM and click Install Virtual Guest Services.

g. In job history, wait for the „Change properties of a virtual machine“ job to complete.

h. Start and refresh the VM.

Expected:  VM Additions show as 6.1.7601.17514

Actual:  VM Additions show as 6.1.7601.17514

Bis auf die, im vorliegenden Fall neueren Versionsnummern 17831 deckte sich das Verhalten mit der Problemstellung beim Kunden.

Als Workaround empfiehlt MS die alternative Verteilung der VMAddtions z.B. mittels SCCM oder auf dem manuellen Wege über das Anhängen der VMGuest.iso an jede VM und dann geskripted oder manuelles Einloggen in die VM und Installieren der Additions auf dem Wege. Letzteres erfordert leider Login und Adminrechte in den VMs, die wir bei dem Kunden nicht auf allen VMs haben, weshalb dieser Workaround nicht praktikabel erschien.

Letztes haben wir uns für folgenden Workaround entscheiden, welche die gewünschte Funktionalität unter SCVMM wieder herstellt:

Manually copy vmbus.sys from vmguest.iso to the %windir%\System32\drivers folder on the Hyper-V hosts.

Später, bzw. ggf. auf Anfrage, gerne das Powershell skript zum Kopieren der vmbus.sys auf alle Hyper-V Hosts einer SCVMM Umgebung.

Hier nur mal die entscheidende Zeile, welche die Datei kopiert:

Copy-Item -Path \\Server\freigabe\quelldatei\vmbus.sys -Destination \\$VMHost\C$\Windows\System32\Drivers

Migration aller VMs eines Hyper-V Hosts per Powershell

eingetragen in: Hyper-V, Powershell, VMM | 0

Mit dem folgenden Powershell snipplet werden alle VMs eines Hyper-V Hosts (hier eines Clusterknotens, –HighAvailablity $true) auf einen anderen Hyper-V Host migriert.
Mittels des –RunAsyncronously attributes kann festgelegt werden, ob eine VM nach der Anderen oder so viele wie die Migrationseinstellungen der Host gleichzeitig zulassen migriert werden:

$SourceHost = Get-SCVMHost | where { $_.Name -eq „<souceHost-FQDN>“ }

$TargetHost = Get-SCVMHost | where { $_.Name -eq „<TargetHost-FQDN>“ }

# alle VMs des Sourcehost bestimmen

$VMs = Get-SCVirtualMachine -VMHost $SourceHost

#Schleife um alle VMs (asynchron) zu migrieren

ForEach($VM in $VMs)

{

Move-SCVirtualMachine -VM $VM -VMHost $TargetHost -HighlyAvailable $true -RunAsynchronously

}

Powershell: Processor Combatibility mode für Hyper-V VMs

eingetragen in: Allgemein, Powershell, VMM | 0

Die CPU Kompatibilität für virtuelle Hyper-V Maschinen kann zur Live Migration der VMs auf einen Host mit einer anderen Prozessor Generation notwendig sein.
Daher empfehle ich immer diesen Modus auf allen VMs zu aktiveren, die nicht explizit auf die erweiterten Features angewiesen sind.

 

image

 

Im aktuellen Projekt hatten wir die Herausforderung dies bei allen VMs einer Domain umzustellen, natürlich dann nicht mehr per Hand/GUI, sondern natürlich mal wieder per PowerShell! Smiley

 

Ich habe also mal schnell ein kleine Skript gebaut, welches das für alle VMs einer Domain mit integriertem System Center Virtual Maschine Manager (VMM) umsetzt:

Voraussetzung ist, das alle VMs ausgeschaltet/heruntergefahren sein müssen!

 

Clear-Host

$VMs = Get-SCVirtualMachine

ForEach ($VM in $VMs)

{

Write-Host

Write-Host „Setze LimitCPUForMigration auf ‚true‘ für VM “ $VM -ForegroundColor Yellow

# ohne Setzen von GuestOS Shutdown:

Set-SCVirtualMachine -VM $VM  -CPULimitForMigration $true

# mit Setzen von GuestOS Shutdown:

# Set-SCVirtualMachine -VM $VM -CPULimitForMigration $true -StopAction ShutdownGuestOS

}

 

Der zweite (auskommentierte Teil) der Schleife würde auf der VM auch gleich das automatische Herunterfahren der VM (standard ist hier “speichern/safe state”) bei der “Automatic Stop Action” eintragen.
Dies haben wir hier beim Kunden auch direkt mit umgesetzt.