Help and Support

Identificativo articolo: 918461 - Ultima modifica: giovedì 4 maggio 2006 - Revisione: 1.1

L'ora di sistema viene eseguito troppo rapidamente su una macchina virtuale in base Linux che è contenuta in Virtual Server 2005 R2

In questa pagina

Espandi tutto | Chiudi tutto

Sintomi

Dopo aver installato una macchina virtuale in base Linux in Microsoft Virtual Server 2005 R2, viene eseguito troppo rapidamente l'ora di sistema nel sistema operativo guest Linux. Ad esempio, l'ora corrente nel sistema operativo guest Linux può passare da un minuto circa ogni secondi 48. Dopo un periodo, la macchina virtuale in base Linux Reimposta l'orologio ora corrette.

Questo problema si verificare se si esegue una distribuzione Linux che utilizza il kernel 2.6 Linux.

Cause

Questo comportamento si verifica perché l'algoritmo predefinito nel kernel di Linux 2.6 adatta per la possibile perdita di segni di graduazione timer. A causa di questa regolazione la macchina virtuale può ottenere l'ora.

Risoluzione

Per risolvere questo problema, aggiungere il orologio = pit parametro per il file bootloader Linux. Il orologio = pit parametro determina il kernel di Linux 2.6 per utilizzare un algoritmo più efficiente per sincronizzare l'ora tra la macchina virtuale e il computer 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 /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 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. Nell'area del titolo Linux di questo file, aggiungere il orologio = pit parametro per la voce del kernel. L'area deve simile alla seguente:
    title Linux
       kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit
       initrd (hd0,4)/initrd
  3. Salva le modifiche apportate al file di, uscire da vi e quindi riavviare la macchina virtuale in base Linux.

Per il bootloader LILO

  1. Nel sistema operativo guest, aprire il file /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 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 di sezione Linux ### LILO (impostazione predefinita) di questo file, digitare la seguente voce:
    Append = " orologio = pit "
    L'area deve simile alla 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 quindi chiudere vi.
  4. Eseguire il comando lilo . Ad esempio, digitare il seguente comando e quindi premere INVIO:
    / sbin lilo
  5. Riavviare il computer virtuale basato Linux.

Informazioni

Una macchina virtuale è in genere difficoltà di sincronizzazione l'ora con il computer host fisico. Sebbene Microsoft Virtual Server 2005 Virtual Machine Additions vengono utilizzate per risolvere il problema, è possibile rilevare i problemi di sincronizzazione dell'ora causa della modalità in cui tiene traccia del sistema operativo guest, l'ora di sistema. Ogni tipo di sistema operativo ha il proprio metodo per tenere traccia dell'ora di sistema. Il kernel di Linux 2.6 vengono utilizzati tre diversi tipi di algoritmi per mantenere traccia dell'ora di sistema. Questi algoritmi sono più efficiente rispetto agli algoritmi utilizzati dal kernel 2.4 Linux e dalla precedente kernels Linux.

La sincronizzazione dell'ora in una macchina virtuale

Un sistema operativo in genere tempo tiene traccia utilizzando le interrupt di tempo Periodico generati da uno specifico dispositivo hardware. In genere, un sistema operativo Ottiene l'ora da un orologio CMOS (complementari Metal Oxide Semi-conductor) batteria durante la procedura di avvio del sistema operativo. Il sistema operativo quindi Configura un dispositivo di timer per generare gli interrupt periodici. Il sistema operativo tiene traccia del tempo dal conteggio questi interrupt.

Per una macchina virtuale, l'hardware fisico effettivo viene condiviso dal sistema operativo host e dal sistema operativo guest. Quando una macchina virtuale genera 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 immediatamente considera per alcuni di questi interrupt. Per ovviare a questo problema, la macchina virtuale mantiene un backlog di questi interrupt. Inoltre, la macchina virtuale aumenta la frequenza di interrupt con timer quando è in esecuzione. La frequenza maggiore di interrupt con timer è progettata per consentire il sistema operativo guest mantenere ora corrette. La maggiore frequenza di questi interrupt potrebbe tuttavia causare il sistema operativo guest perdere una parte l'interrupt. Questi interrupt senza risposta sono noti come "macchina persa". Perso segni di graduazione causa l'ora di sistema operativo guest risalire dietro il tempo effettivo. Anche se potrebbero verificarsi questo problema in un computer fisico, hanno più probabilità di riscontrare questo problema in un sistema operativo guest in esecuzione in una macchina virtuale.

Il kernel 2.4 Linux e un kernels Linux precedenti si basano sull'interrupt con timer vengono recapitati dal timer. Gli algoritmi sono 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 Linux operativo ora di sistema risalire dietro l'orologio effettivo. Per risolvere questo problema, alcune distribuzioni Linux patch del kernel di Linux 2.4 per il recapito interrupt con timer a una velocità più veloce. Tuttavia, Linux sistema operativo guest potrebbe persiste problemi di sincronizzazione causa del tempo perso segni di graduazione.

Il kernel di Linux 2.6 implementa algoritmi più efficienti per risolvere questo problema di sincronizzazione di tempo. A differenza di algoritmi 2.4 Linux, gli algoritmi di Linux 2.6 regolare per segni di graduazione persi. La rettifica può tuttavia causare macchina virtuale in base Linux ottenere l'ora. Il kernel 2.6 Linux ha tre parametri dell'orologio diverse che possono essere passati al kernel in fase di avvio. Questi parametri consente di selezionare gli algoritmi di utilizzare per la sincronizzazione dell'ora. Per ulteriori informazioni su questi algoritmi, vedere la sezione "Timekeeping in Linux". Ogni questi algoritmi timekeeping dispone di vantaggi e svantaggi. Tuttavia, sono più probabile notare gli svantaggi su un computer virtuale a un computer fisico.

Timer hardware

Ogni sistema operativo dispone il proprio metodo per gestire problemi timekeeping. Esistono diversi tipi di meccanismi di timer che vengono utilizzati per mantenere il tempo in un computer. Questi meccanismi di timer sono i seguenti:
  • Timer intervallo programmabile (PIT)
  • Orologio tempo CMOS (RTC)
  • Locale avanzate timer (APIC) del controller di interrupt programmabile
  • Avanzate configurazione risparmio energia interfaccia ACPI (and) (questo meccanismo è detto anche un timer chipset.)
  • Contatori di indicatore data E ora (TSC)
  • Timer di eventi alta precisione (HPET)

Timekeeping in Linux

Su una piattaforma x 86 il kernel di Linux 2.6 interagisce con i seguenti tipi di orologi tenere traccia del tempo:
  • timer di gestione del risparmio di energia (PMTMR)
    Orologio presenta le seguenti caratteristiche:
    • Orologio viene impostato tramite la orologio = pmtmr parametro kernel.
    • Orologio utilizza il timer ACPI.
    • Orologio può causare gli utili di tempo più piccoli.
  • contatori di timestamp (TSC)
    Orologio presenta le seguenti caratteristiche:
    • Orologio viene impostato tramite la orologio = tsc parametro kernel. È il parametro predefinito.
    • Orologio utilizza il contatore PIT e il TSC per volta interpolazione.
    • Orologio può causare overcorrection in un ambiente virtual machine. Pertanto, l'orologio del sistema operativo guest può eseguire troppo rapidamente.
    • Orologio può causare utili ora incrementate del 10 %.
  • timer intervallo programmabile (PIT)
    Orologio presenta le seguenti caratteristiche:
    • Orologio viene impostato tramite la orologio = pit parametro kernel.
    • Orologio utilizza solo il contatore PIT per volta interpolazione.
    • Orologio viene utilizzato il più semplice degli algoritmi disponibili.
    • Orologio né tempo poiché non utilizza codice di correzione graduazione persi.
Per ulteriori informazioni su Virtual Server 2005, visitare il seguente sito Web di Microsoft:
http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx (http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx)
I prodotti di terzi in questo articolo vengono illustrati sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia, implicita, o sull'affidabilità di questi prodotti o delle prestazioni.

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 articoliTraduzione 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. Nel caso in cui si riscontrino degli errori e si desideri inviare dei suggerimenti, è possibile completare il questionario riportato alla fine del presente articolo.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 918461  (http://support.microsoft.com/kb/918461/en-us/ )
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.

Traduzione articoli