Ich habe aktuell bei einem meiner Kunden ein Projekt, bei dem die virtuellen Server, betrieben mit Hyper-V unter Windows Server 2012, auf eine neue Hardware auf Basis von Windows Server 2016 umziehen. Die Infrastruktur wird mit Veeam in der aktuellen Version 9.5 gesichert, bei den VMs handelt es sich um Windows Server 2008 R2 und Windows Server 2012 plus ein Debian.
Neben der Migration der VMs auf eine neue Hardware sollen in Kürze die VMs abgelöst werden, dies ist durch Migrationen von z.B. Exchange und MS SQL ein bisschen zeitaufwändiger. Damit die VMs allerdings von der Performance der neuen Hardware profitieren, habe ich sie erst einmal auf den neuen Server migriert. Das hat dann auch problemlos funktioniert. Daten kopiert, VMs wieder importiert, Config-Version von 5.0 auf 8.0 aktualisiert und dann die VMs wieder in den Betrieb genommen.
Anpassung der Sicherung
Damit die VMs auch weiterhin in der Sicherung sind, habe ich die Zuordnung im Veeam angepasst und als Quelle nicht mehr den Windows Server 2012-Host genutzt, sondern den neuen Windows Server 2016. Das hat im ersten Schritt auch ohne Probleme geklappt, die Größen der VMs wurden berechnet und alles sah erst einmal gut aus.
Fehler bei der Erstellung der VSS Snapshots
Ich habe das Backup nach der Anpassung des Jobs getestet und musste dann leider feststellen, dass die Sicherung bei den Windows-Systemen nicht funktioniert. Als Fehler habe ich immer den folgenden Hinweis bekommen:
Unable to allocate processing resources. Error: Job failed (‚Checkpoint operation for ‚VM-Name‘ failed. )
Production checkpoints cannot be created for ‚VM-Name‘. Error code: ‚32770‘.
Failed to create VM recovery snapshot, VM ID ’94f64eb4-16bb-842d-c32a-8054a64c6dd5′.
Sucht man nach dem Fehler, findet man einige Einträge im Veeam-Forum und an anderen Stellen wie Blogs oder Foren.
Lösung in meinem Fall
Ich habe einige Dinge probiert und getestet, bis ich die Lösung gefunden habe. In meinem Fall mussten für die Windows Server 2008 R2 und 2012-VMs per Hand die Hyper-V Integrationstreiber installiert werden.
Wenn ihr euch jetzt fragt: Moment mal, ab Server 2016 sind die Treiber doch gar nicht mehr in der VMGuest.iso vorhanden, sondern kommen per Windows Update?!?
Das ist korrekt, trotzdem hat Microsoft noch eine Download-Möglichkeit (also mehr oder weniger, sehen wir gleich). Man kann für die älteren Betriebssysteme CAB-Dateien herunterladen und per Dism oder PowerShell installieren.
Diese Installation hat in meinem Fall für alle VMs außer den Windows Server 2012 AD-Controller geholfen, dieser lässt sich immer noch nicht mit aktivierten Applikations-Konsistenz sichern. Aber ohne. Und außerdem wird das System sowieso zeitnah abgelöst durch neue Server, daher ist das in meinem Fall nicht weiter tragisch 🙂
Download der benötigten Dateien
Wenn man per Hand nach dem Download der Integrationstreiber sucht, wird man recht schnell fündig:
Im unteren Bereich der Seite gibt es dann für die unterschiedlichen Systeme die Download-Links.
Das Problem an der Sache: Man bekommt nen 404er…
Ich habe ein bisschen suchen müssen, bis ich schließlich die Lösung gefunden habe. Man muss nach dem KB-Artikel suchen, dann findet man auch einen Download von Microsoft, der noch funktioniert und mit dem man die benötigten Dateien herunterladen kann.
Der Weg zum korrekten Download
Auf der Seite
sieht man im Link die KB-Nummer:
Die benötigte Nummer ist KB3071740. Sucht man danach bei einem kleineren Anbieter im Internetz nach, findet man die korrekten und funktionierenden Download-Links:
Wäre ja auch doof, wenn Microsoft die Links zu den Dateien einfach mal korrigiert…
Installation der Dateien
Windows 7 funktioniert auch unter Windows Server 2008 R2, Windows 8 auch unter Windows Server 2012. Die Installation der .CAB-Datei kann danach per dism (Server 2008 R2) oder PowerShel (ab Windows Server 2012) gemacht werden:
Add-WindowsPackage -Online -PackagePath „C:\Downloads\windows6.2-hypervintegrationservices-x86.cab“
DISM.exe /Online /Add-Package /PackagePath:“C:\Downloads\windows6.2-hypervintegrationservices-x86.cab“