Intel Sandy Bridge und Westmere + Hyper-V Hotfixes

Von Intel gibt es mit Gulftown und Sandy Bridge neue Prozessoren für den Desktop-, Laptop- und Servermarkt. Neu in Sandy Bridge CPUs sind dabei die Advanced Vector Extensions (AVX). Windows Server 2008 R2 bietet in der RTM-Fassung noch keine Unterstützung für AVX, da Sandy Bridge Prozessoren erst jetzt verfügbar werden und Windows Server 2008 R2 schon lange auf dem Markt ist. Mit Service Pack 1 haben wir die Unterstützung von AVX nachgereicht, so dass jeder, der Software schreiben oder einsetzen möchte, die diese neuen Funktionen nutzt, SP1 installieren sollte.

Ich möchte hier auf eine Abhängigkeit hinweisen, die dem einen oder anderen vielleicht nicht bewusst ist: Auf einem Hyper-V-Server mit Sandy Bridge Prozessor lassen sich ohne SP1 keine VMs starten. Im Eventlog findet man die Fehlermeldung "<VM Name> could not initialize". Hyper-V verhindert korrekterweise zum Schutz der Datenintegrität den Start von VMs mit unbekannten Prozessorfunktionen. Die Funktion zur Beschränkung der Features von Prozessoren zum leichteren Verschieben von virtuellen Maschinen zwischen Servern mit unterschiedlichen Prozessoren ist davon unabhängig und hilft bei dem Problem nicht (!) weiter:

clip_image002

Windows Server 2008 R2 und Microsoft Hyper-V Server 2008 R2 unterstützten erst nach dem Einspielen von Service Pack 1 vollständig die neuen Prozessoren. SP1 fügt dabei die Unterstützung von AVX  für die der Parent Partition und für Gast-Betriebssysteme in virtuellen Maschinen hinzu. Wer nicht in der Lage ist, SP1 auf dem Virtualisierungshost installieren zu können, kann alternativ den Hotfix aus You cannot start virtual machines on a computer that is running Windows Server 2008 R2 and on which a CPU is installed that supports the AVX feature installieren. Allerdings fügt dieser nur die Unterstützung für die Parent Partition hinzu, so dass sich dann VMs wieder problemlos starten lassen. Die Unterstützung für Gastbetriebssysteme erfordert die Installation von SP1.

Ein zweites Problem kann beim Betrieb mit aktuellen Prozessoren und einem Hauptspeicherausbau von >32GB RAM auftreten. Die Geschwindigkeit eines solchen Systems kann eventuell schlechter sein, als erwartet. Man kann dabei Dinge beobachten wie:

  • Hohe CPU-Auslastung.
  • Langsame Reaktionszeit des Servers unter Last.
  • Langsame I/O Festplattenperformance in VMs.
  • Langsames Starten von Windows.

Das Problem tritt auf, weil neue Intel Westmere und Sandy Bridge Prozessoren mehr als acht Memory Type Range Register (MTRRs) haben. Diese prozessorspezifischen Register kontrollieren das Caching für Speicherbereiche des physikalischen Hauptspeicher. Hyper-V unterstützt jedoch maximal 8 MTRRs. Die neuen Prozessoren fügen zusätzliche MTRRs hinzu, um einen größeren Ausbau des Hauptspeichers zu ermöglichen. Da Hyper-V diese zusätzlichen MTRRs bisher nicht ansprechen konnte, werden einige Speicherbereiche als nicht-cachebar ausgewiesen, was die Systemleistung signifikant verringern kann.

Microsoft hat als Lösung für das Problem einen Artikel Performance decreases in Windows Server 2008 R2 when the Hyper-V role is installed on a computer that uses Intel Westmere or Sandy Bridge processors veröffentlicht. Der darin beschriebene Hotfix kann auf Anforderung direkt heruntergeladen werden. Dieser Hotfix ist kein Bestandteil von Windows Server 2008 R2 SP1, sondern muss zusätzlich installiert werden.

Have fun!
Daniel