Product SiteDocumentation Site

Kapitel 11. Zeitverwaltung bei KVM-Gästen

KVM verwendet die konstante Time Stamp Counter (TSC) Funktion in vielen modernen CPUs. Einige CPUs besitzen jedoch keinen konstanten Time Stamp Counter, was sich auf die Art und Weise auswirkt, wie Gäste unter KVM die Zeit messen. Gäste, die ohne genaue Zeitmessung laufen, können erhebliche Auswirkungen auf einige Netzwerkanwendungen haben, denn diese Gäste laufen schneller oder langsamer als die tatsächliche Zeit.
Mehrere Probleme können auftreten bei Gästen mit ungenauer Zeitmessung:
Diese Probleme existieren ebenso auf anderen Virtualisierungsplattformen; die Zeitmessung sollte daher immer überprüft werden.

NTP

Der Network Time Protocol (NTP) Daemon sollte sowohl auf dem Host als auch auf dem Gast laufen. Aktivieren Sie den ntpd-Dienst wie folgt:
# service ntpd start

Fügen Sie den ntpd-Dienst zur standardmäßigen Startup-Sequenz hinzu:
# chkconfig ntpd on

Die Verwendung des ntpd-Dienstes sollte die Folgen der Zeitabweichung in jedem Fall minimieren.
Feststellen, ob Ihre CPU über den konstanten Time Stamp Counter verfügt
Ihre CPU verfügt über den konstanten Time Stamp Counter, wenn das constant_tsc-Flag vorhanden ist. Um festzustellen, ob Ihre CPU das constant_tsc-Flag gesetzt hat, führen Sie den folgenden Befehl aus:
$ cat /proc/cpuinfo | grep constant_tsc

Wenn Sie eine Ausgabe erhalten, verfügt Ihre CPU über das constant_tsc-Bit. Falls keinerlei Ausgabe erfolgt, folgen Sie den unten stehenden Anweisungen.
Konfiguration von Hosts ohne konstanten Time Stamp Counter
Systeme ohne konstanten Time Stamp Counter erfordern zusätzliche Konfiguration. Funktionen der Energieverwaltung behindern die genaue Zeitmessung und müssen deaktiviert werden, damit Gäste mit KVM die genaue Zeit messen können.

Note

Diese Anweisungen gelten ausschließlich für AMD Revision F CPUs.
If the CPU lacks the constant_tsc bit, disable all power management features (BZ#513138). Each system has several timers it uses to keep time. The TSC is not stable on the host, which is sometimes caused by cpufreq changes, deep C state, or migration to a host with a faster TSC. To stop deep C states, which cam stop the TSC, add "processor.max_cstate=1" to the kernel boot options in grub on the host:
term Fedora (vmlinuz-2.6.29.6-217.2.3.fc11)
        root (hd0,0)
	kernel /vmlinuz-vmlinuz-2.6.29.6-217.2.3.fc11 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
Deaktivieren Sie cpufreq (nur nötig auf Hosts ohne constant_tsc), indem Sie die Konfigurationsdatei /etc/sysconfig/cpuspeed bearbeiten und die Variablen MIN_SPEED und MAX_SPEED auf die höchstmögliche Frequenz ändern. Zulässige Höchstgrenzen finden Sie in den /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies-Dateien.
Verwendung der paravirtualisierten Systemuhr mit Red Hat Enterprise Linux Gästen
Für bestimmte Red Hat Enterprise Linux Gäste sind zusätzliche Kernel-Parameter erforderlich. Diese Parameter können gesetzt werden, indem Sie an das Ende der /kernel-Zeile in der /boot/grub/grub.conf-Datei des Gasts angehängt werden.
Die Tabelle unten zeigt Red Hat Enterprise Linux Versionen und deren erforderliche Parameter für Gäste ohne konstanten Time Stamp Counter.
Red Hat Enterprise LinuxZusätzliche Kernel-Parameter für den Gast
5.4 AMD64/Intel 64 mit der paravirtualisierten UhrZusätzliche Parameter nicht notwendig
5.4 AMD64/Intel 64 ohne die paravirtualisierte Uhrdivider=10 notsc lpj=n
5.4 x86 mit der paravirtualisierten UhrZusätzliche Parameter nicht notwendig
5.4 x86 ohne die paravirtualisierte Uhrdivider=10 clocksource=acpi_pm lpj=n
5.3 AMD64/Intel 64divider=10 notsc
5.3 x86divider=10 clocksource=acpi_pm
4.8 AMD64/Intel 64notsc divider=10
4.8 x86clock=pmtmr divider=10
3.9 AMD64/Intel 64Zusätzliche Parameter nicht notwendig
3.9 x86Zusätzliche Parameter nicht notwendig
Verwenden der paravirtualisierten Uhr mit Windows-Gästen
Aktivieren Sie die paravirtualisierte Systemuhr auf Windows-Gästen durch Bearbeiten der Boot-Parameter. Die Windows-Boot-Einstellungen sind in der boot.ini-Datei gespeichert. Fügen Sie die folgende Zeile hinzu, um die paravirtualisierte Systemuhr zu aktivieren:
/use pmtimer

Weitere Information über die Windows-Boot-Einstellungen und die pmtimer-Option finden Sie unter Verfügbare Befehlszeilenoptionen für die Boot.ini-Dateien von Windows XP und Windows Server 2003.