Al momento sei offline in attesa che la connessione Internet venga ristabilita

L'ora di sistema viene eseguito troppo velocemente in una macchina virtuale basato su Linux è ospitata in Virtual Server 2005 R2

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 918461
Sintomi
Al termine dell'installazione di una macchina virtuale basato su Linux in Microsoft Virtual Server 2005 R2, l'ora di sistema nel sistema operativo guest Linux viene eseguita troppo velocemente. Ad esempio, l'ora corrente nel sistema operativo guest Linux può passare da un minuto ogni 48 secondi circa. Dopo un periodo, la macchina virtuale basato su Linux Reimposta l'orologio sull'ora corretta.

Questo problema si verifica se si utilizza una distribuzione di Linux che utilizza il kernel Linux 2.6.
Cause
Questo comportamento si verifica perché l'algoritmo predefinito nel kernel di Linux 2.6 regola per la possibile perdita di segno di graduazione del timer e l'altro. Causa di questa modifica, la macchina virtuale può ottenere l'ora.
Risoluzione
Per risolvere questo problema, aggiungere il orologio = pit parametro per il file di bootloader Linux. Il orologio = pit parametro, il kernel Linux 2.6 per utilizzare un algoritmo più efficiente per sincronizzare l'ora tra la macchina virtuale e il computer di host. Questo algoritmo non verrà adattato per segni di graduazione persi. Di conseguenza, l'algoritmo non comporta la macchina virtuale ottenere l'ora. Per aggiungere questo parametro, attenersi alla seguente procedura.

Per il bootloader GRUB

  1. Nel sistema operativo guest, aprire il file di /boot/grub/menu.lst utilizzando un editor di testo, ad esempio Vi. Ad esempio, digitare il seguente comando da una console e quindi premere INVIO:
    vi /boot/grub/menu.lst
    Questo file contiene le opzioni di avvio di Linux e analogo al seguente:
    title Linux   kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791   initrd (hd0,4)/initrdtitle windows   root (hd0,0)   makeactive   chainloader +1title floppy   root (fd0)   chainloader +1title 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. Nella sezione del titolo Linux di questo file aggiungere la orologio = pit parametro per la voce del kernel. Questa area dovrebbe essere analogo al seguente:
    title Linux   kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit   initrd (hd0,4)/initrd
  3. Salvare le modifiche al file, chiudere Vi e quindi riavviare la macchina virtuale basato su Linux.

Per il bootloader LILO

  1. Nel sistema operativo guest, aprire il file di /etc/lilo.conf utilizzando un editor di testo, ad esempio Vi. Ad esempio, digitare il seguente comando da una console e quindi premere INVIO:
    vi /etc/lilo.conf
    Questo file contiene le opzioni di avvio di Linux e analogo al seguente:
    ### 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. Nell'area sezione ### LILO Linux (impostazione predefinita) di questo file, digitare la seguente voce:
    Append = "orologio = pit"
    Questa area dovrebbe essere analogo al seguente:
    ### 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. Salvare le modifiche al file e chiudere Vi.
  4. Eseguire il comando lilo . Ad esempio, digitare il comando seguente e premere INVIO:
    sbin/lilo
  5. Riavviare il computer virtuale basato su Linux.
Informazioni
Una macchina virtuale è in genere difficoltà di sincronizzazione l'ora con il computer host fisico. Anche se Microsoft Virtual Server 2005 Virtual Machine Additions sono svolge consente di risolvere il problema, si potrebbero verificare problemi di sincronizzazione dell'ora causa del modo in cui tiene traccia di sistema operativo guest, l'ora di sistema. Tutti i tipi del sistema operativo ha il proprio modo per tenere traccia dell'ora di sistema. Il kernel di Linux 2.6 utilizza tre diversi tipi di algoritmi per tenere traccia dell'ora di sistema. Questi algoritmi sono più gli algoritmi utilizzati dal kernel Linux 2.4 precedenti kernel Linux, efficienti.

Sincronizzazione dell'ora in una macchina virtuale

Un sistema operativo tiene in genere traccia del tempo utilizzando gli interrupt tempo periodico generati da uno specifico dispositivo hardware. In genere, un sistema operativo Ottiene l'ora da un orologio CMOS (gratuiti Metal Oxide Semi-conductor) batteria durante la procedura di avvio del sistema operativo. Quindi il sistema operativo consente di configurare una periferica timer generano interrupt periodici. Il sistema operativo tiene traccia del tempo contando questi interrupt.

Per una macchina virtuale, l'hardware fisico effettivo è condiviso dal sistema operativo host e dal sistema operativo guest. Quando una macchina virtuale viene generato un interrupt di tempo, il sistema operativo guest potrebbe essere in esecuzione o potrebbe non essere in esecuzione. Di conseguenza, il sistema operativo guest non tiene conto immediatamente per alcuni di questi interrupt. Per risolvere questo problema, la macchina virtuale consente di mantenere un backlog di tali interrupt. Inoltre, la macchina virtuale aumenta la frequenza del timer di interrupt quando è in esecuzione. La frequenza di aumento di interrupt del timer è utili per il sistema operativo guest mantenere l'ora corretta. Tuttavia, è possibile che la frequenza di aumento di questi interrupt provocare il perdere parte gli interrupt del sistema operativo guest. Tali interrupt non eseguite sono detti "perse graduazioni." Perso segni di graduazione causa al sistema operativo guest il tempo di ritardo rispetto all'ora effettiva. Sebbene questo problema in un computer fisico può verificarsi, è più probabile che verifica questo problema in un sistema operativo guest in esecuzione su una macchina virtuale.

Il kernel Linux 2.4 e precedenti kernel Linux dipendono gli interrupt di timer vengono recapitati dal timer. Gli algoritmi vengono implementati per la sincronizzazione dell'ora nel kernel di Linux 2.4 non conto per perdita segni di graduazione. Questo comportamento può causare il guest di Linux operativo ora di sistema vengono tralasciati rispetto all'orologio effettivo. Per risolvere questo problema, in alcune distribuzioni di Linux delle patch il kernel Linux 2.4 per recapitare gli interrupt del timer a una velocità superiore. Tuttavia, il sistema operativo guest potrebbe persiste tempo problemi di sincronizzazione a causa di Linux perso segni di graduazione.

Il kernel Linux 2.6 implementa algoritmi più efficace per risolvere questo problema di sincronizzazione di tempo. A differenza di algoritmi di Linux 2.4, gli algoritmi di Linux 2.6 regolare per segni di graduazione persi. Questa modifica potrebbe tuttavia causare la macchina virtuale basato su Linux ottenere l'ora. Il Kernel Linux 2.6 dispone di tre orologio diversi parametri che possono essere passati al kernel al momento dell'avvio. Utilizzare questi parametri per selezionare gli algoritmi da utilizzare per la sincronizzazione dell'ora. Per ulteriori informazioni su questi algoritmi, vedere la sezione di "Timekeeping in Linux". Ciascuno di questi algoritmi timekeeping presenta vantaggi e svantaggi. Tuttavia, sono più facile notare gli svantaggi in un computer virtuale da in un computer fisico.

Timer hardware del computer

Ogni sistema operativo dispone di un proprio metodo per gestire problemi timekeeping. Esistono vari tipi dei meccanismi di timer che consentono di mantenere di volta in un computer. Questi meccanismi di timer includono:
  • Timer di intervallo programmabili (PIT)
  • Orologio CMOS tempo reale (RTC)
  • Locale Advanced Programmable Interrupt Controller (APIC) timer
  • Configurazione e avanzata Power Interface (ACPI) (questo meccanismo è detto anche un timer di Chipset.)
  • Ora indicatore contatore (TSC)
  • Timer di eventi alta precisione (HPET)

Timekeeping in Linux

Su una piattaforma x 86, il kernel Linux 2.6 interagisce con i seguenti tipi di orologi di tenere traccia del tempo:
  • Timer di gestione del risparmio di energia (PMTMR)
    Orologio presenta le caratteristiche seguenti:
    • L'orologio viene impostato utilizzando il orologio = pmtmr parametro kernel.
    • Questo orologio utilizza il timer ACPI.
    • Orologio può causare gli utili di tempo più piccoli.
  • contatore timestamp (TSC)
    Orologio presenta le caratteristiche seguenti:
    • L'orologio viene impostato utilizzando il orologio = tsc parametro kernel. (Questo è il parametro predefinito).
    • Questo orologio utilizza il contatore PIT e il contatore TSC per fase di interpolazione.
    • Orologio può causare overcorrection un ambiente di macchina virtuale. Pertanto, l'orologio del sistema operativo guest potrebbe eseguire troppo velocemente.
    • Orologio può causare gli utili di tempo del 10 %.
  • Timer di intervallo programmabili (PIT)
    Orologio presenta le caratteristiche seguenti:
    • L'orologio viene impostato utilizzando il orologio = pit parametro kernel.
    • Questo orologio utilizza solo il contatore PIT per fase di interpolazione.
    • Questo orologio utilizza gli algoritmi disponibili più semplice.
    • Orologio non ottenere l'ora poiché non viene utilizzato il codice di correzione di graduazione persi.
Per ulteriori informazioni su Virtual Server 2005, visitare il sito di Web di Microsoft:I prodotti di terze parti che in questo articolo viene descritto sono forniti da produttori indipendenti. Microsoft non rilascia alcuna garanzia, implicita o di altra natura, relativa alle prestazioni o all'affidabilità di questi prodotti.
Timesync

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 918461 - Ultima revisione: 05/04/2006 23:24:22 - Revisione: 1.1

Microsoft Virtual Server 2005 R2 Standard Edition, Microsoft Virtual Server 2005 R2 Enterprise Edition

  • kbmt kbtshoot kbenv kbdeployment kbprb KB918461 KbMtit
Feedback