Systémový čas běží příliš rychle na založené na systému Linux virtuálního počítače, který je umístěn v Virtual Server 2005 R2

Příznaky

Po instalaci založené na systému Linux virtuálního počítače v Microsoft Virtual Server 2005 R2 systémový čas v hostovaném operačním systému Linux běží příliš rychle. Aktuální čas v hostovaném operačním systému Linux může například předem o jednu minutu přibližně každých 48 sekund. Po určité době virtuálního počítače systémem Linux obnoveny hodiny na správný čas.

K tomuto problému dochází, pokud používáte Linux distribuce, která používá jádro Linux 2.6.

Příčina

K tomuto chování dochází, protože výchozí algoritmus v jádru Linux 2.6 upraví pro případné ztrátě ticks časovač. Protože tato úprava virtuálního počítače může získat čas.

Řešení

Chcete-li tento problém vyřešit, přidejte hodiny = pit parametr soubor zaváděcího programu pro spouštění systému Linux. Hodiny = pit parametr způsobí, že jádro Linux 2.6 efektivnější algoritmus použít k synchronizaci času mezi virtuálního počítače a počítač hostitel. Tento algoritmus se neupraví na roztoče ztraceny. Algoritmus tedy nezpůsobí virtuálního počítače získat čas. Chcete-li tento parametr přidat, postupujte takto.

Pro zaváděcím GRUB

  1. V hostovaném operačním systému otevřete soubor /boot/grub/menu.lst pomocí textového editoru, například Vi. Například zadejte následující příkaz z konzoly a pak stiskněte klávesu ENTER:
    VI /boot/grub/menu.lst
    Tento soubor obsahuje možnosti spuštění systému Linux a podobná následující:
    title Linux   kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791
    initrd (hd0,4)/initrd
    title windows
    root (hd0,0)
    makeactive
    chainloader +1
    title floppy
    root (fd0)
    chainloader +1
    title failsafe
    kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma apm=off acpi=off vga=normal nosmp maxcpus=0 3
    initrd (hd0,4)/initrd.shipped
  2. V oblasti název Linux tento soubor přidat hodiny = pit parametr vstupu jádra. Tato oblast by měla vypadat takto:
    title Linux   kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit
    initrd (hd0,4)/initrd
  3. Uložit změny do souboru, Vi ukončete a restartujte virtuálního počítače systémem Linux.

Pro zaváděcím LILO

  1. V hostovaném operačním systému otevřete soubor /etc/lilo.conf pomocí textového editoru, například Vi. Například zadejte následující příkaz z konzoly a pak stiskněte klávesu ENTER:
    VI /etc/lilo.conf
    Tento soubor obsahuje možnosti spuštění systému Linux a podobná následující:
    ### LILO global section boot    = /dev/hda           # LILO installation target: MBR 
    vga = normal # normal text mode (80x25 chars)
    read-only

    lba32 # Use BIOS to ignore
    # 1024 cylinder limit
    prompt
    password = q99iwr4 # LILO password (example)
    timeout = 80 # Wait at prompt for 8 s before
    # default is booted
    message = /boot/message # LILO's greeting

    ### LILO Linux section (default)
    image = /boot/vmlinuz # Default
    label = linux
    root = /dev/hda7 # Root partition for the kernel
    initrd = /boot/initrd

    ### LILO Linux section (fallback)
    image = /boot/vmlinuz.shipped
    label = Failsafe
    root = /dev/hda7
    initrd = /boot/initrd.suse
    optional

    ### LILO other system section (Windows)
    other = /dev/hda1 # Windows partition
    label = windows

    ### LILO memory test section (memtest)
    image = /boot/memtest.bin
    label = memtest86
  2. V ### oddíl správce spouštění LILO systému Linux (výchozí) oblasti tohoto souboru, zadejte následující položku:
    Append = "hodiny = pit"
    Tato oblast by měla vypadat takto:
    ### LILO Linux section (default)   image  = /boot/vmlinuz     # Default 
    label = linux
    root = /dev/hda7 # Root partition for the kernel
    initrd = /boot/initrd
    Append = "clock=pit"
  3. Uložit změny do souboru a ukončete Vi.
  4. Spusťte příkaz lilo . Například zadejte následující příkaz a stiskněte klávesu ENTER:
    /sbin/lilo
  5. Restartujte virtuálního počítače systémem Linux.

Další informace

Virtuální počítač má obvykle potíže s jeho časové synchronizace s fyzické hostitelském počítači. Ačkoli Microsoft Virtual Server 2005 Virtual Machine dodatky jsou určeny k pomoci tento problém vyřešit, může dojít k problémům při synchronizaci času z důvodu způsobu, ve kterém hostovaný operační systém uchovává informace o systémový čas. Každý druh operační systém má vlastní způsob ke sledování systémového času. Jádro Linux 2.6 používá tři různé druhy algoritmů pro sledování systémového času. Tyto algoritmy jsou efektivnější než algoritmy, které používají jádro Linux 2.4 a starších jader Linux.

Synchronizaci času ve virtuálním počítači

Operační systém obecně sleduje čas pomocí pravidelného času přerušení, generovaných určitým hardwarovým zařízením. Operační systém obecně, získá čas od hodiny bateriovým bezplatné kovových oxid polovodičové paměti CMOS (Complementary) během procesu spouštění operačního systému. Operační systém pak nastaví časovač zařízení ke generování periodických přerušení. Operační systém uchovává informace o času počítáním těchto přerušení.

Virtuálního počítače je skutečný fyzický hardware sdílené hostitelského operačního systému a operačního systému guest. Pokud virtuální počítač generuje přerušení čas, hostovaného operačního systému může být spuštěna nebo nemusí být spuštěna. Proto hostovaného operačního systému není účet okamžitě některé z těchto přerušení. Chcete-li vyřešit tento problém, udržuje virtuálního počítače nevyřízené položky z těchto přerušení. Navíc virtuální počítač zvyšuje četnost časovač přerušení při spuštění. Zvýšená četnost přerušení časovače je určen k pomoci udržovat správný čas do hostovaného operačního systému. Však způsobit zvýšenou četnost těchto přerušení hostovaného operačního systému přijít o některé je zdrojem přerušení. Tyto chybějící přerušení jsou známé jako "ztracené značky." Ztracené značky příčinu čas operačního systému hosta za skutečný čas prodlevy. Ačkoli tento problém ve fyzickém počítači může nastat, je pravděpodobnější k tomuto problému dochází v hostovaného operačního systému, který běží ve virtuálním počítači.

Jádro Linux 2.4 a starších jader Linux spoléhají na přerušení časovače, které jsou doručovány prostřednictvím časovač. Algoritmy, které jsou implementovány synchronizace času v jádru Linux 2.4 nespadá na roztoče ztraceny. Toto chování může způsobit Linux hostovaného operačního systému čas zpoždění za skutečné hodiny. Chcete-li tento problém vyřešit, oprava některých distribucí Linux jádro Linux 2.4 dodat časovač přerušení při vyšší rychlosti. Linux hostovaného operačního systému může stále dochází k časové synchronizace problémy z důvodu však ke ztrátě značky.

Jádro Linux 2.6 implementuje efektivnější algoritmy k řešení tohoto problému synchronizace času. Na rozdíl od Linux 2.4 algoritmy algoritmy Linux 2.6 upravit na roztoče ztraceny. Tato úprava však může způsobit virtuálního počítače systémem Linux získat čas. Jádro Linux 2.6 má tři různé hodiny parametry, které mohou být předány do jádra při spuštění. Tyto parametry slouží k výběru algoritmů pro synchronizaci času. Další informace o těchto algoritmech naleznete v části "Měřidlo času v Linux". Každý z těchto algoritmů měřidlo času má své výhody i nevýhody. Nicméně se pravděpodobně setkat nevýhody ve virtuálním počítači, než ve fyzickém počítači.

Počítačového hardwaru časovače

Každý operační systém má vlastní způsob zpracování měřidlo času problémy. Existují různé druhy časovač mechanismy, které jsou používány k udržení času v počítači. Tyto mechanismy časovač patří následující:
  • Programovatelný Interval časovače (PIT)
  • CMOS hodiny reálného času (RTC)
  • Místní Upřesnit časovače přerušení programovatelný řadič (APIC)
  • Upřesňující konfigurace a napájení rozhraní ACPI (Tento mechanismus se také nazývá časovač Čipová sada.)
  • Časová razítka čítač (TSC)
  • High Precision události Timer (HPET)

Měřidlo času v systému Linux

Na základě x86 platformě Linux 2.6 Jádro spolupracuje s následující druhy hodiny ke sledování času:
  • Časovač řízení spotřeby (PMTMR)
    Tento čas má následující charakteristiky:
    • Tento čas je nastavit pomocí hodin = pmtmr parametr jádra.
    • Tento čas používá časovač rozhraní ACPI.
    • Hodiny může způsobit menší zisky čas.
  • Časová razítka čítač (TSC)
    Tento čas má následující charakteristiky:
    • Tento čas je nastavit pomocí hodin = tsc parametr jádra. (Toto je výchozí parametr).
    • Tento čas používá čítač PIT a je čítačem TSC čas interpolace.
    • Hodiny může způsobit overcorrection v prostředí virtuálního počítače. Proto hodiny hostovaného operačního systému může spustit příliš rychle.
    • Hodiny může způsobit časové zisky až o 10 procent.
  • Programovatelný Interval časovače (PIT)
    Tento čas má následující charakteristiky:
    • Tento čas je nastavit pomocí hodiny = pit parametr jádra.
    • Tento čas používá pouze čítač PIT čas interpolace.
    • Tento čas používá nejjednodušší dostupnými algoritmy.
    • Tento čas není získat čas, protože nepoužívá ztraceny značek opravy kódu.
Další informace o Virtual Server 2005 naleznete na následujícím webu společnosti Microsoft:Produkty třetích stran, které tento článek popisuje jsou vyráběny společnostmi nezávislými na společnosti Microsoft. Společnost Microsoft neposkytuje žádnou záruku, implicitně předpokládanou ani jinou, ohledně výkonu nebo spolehlivosti těchto produktů.

Vlastnosti

ID článku: 918461 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor