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

Traduzione articoli Traduzione articoli
Identificativo articolo: 918461 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

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)/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. 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:
http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx
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.

ProprietÓ

Identificativo articolo: 918461 - Ultima modifica: giovedý 4 maggio 2006 - Revisione: 1.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Virtual Server 2005 R2 Standard Edition
  • Microsoft Virtual Server 2005 R2 Enterprise Edition
Chiavi:á
kbmt kbtshoot kbenv kbdeployment kbprb KB918461 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com