Системное время запускается слишком быстро на виртуальной машине под управлением Linux, который размещен в Virtual Server 2005 R2

Переводы статьи Переводы статьи
Код статьи: 918461 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

После установки виртуального компьютера под управлением ОС Linux в Microsoft Virtual Server 2005 R2 системное время в гостевой операционной системе Linux запускается слишком быстро. Например текущее время в гостевой операционной системы Linux может перейти на одну минуту приблизительно каждые 48 секунд. Через некоторое время виртуальной машине под управлением Linux сбрасывает часы правильное время.

Эта проблема возникает при использовании дистрибутив Linux, который использует ядро Linux 2.6.

Причина

Это происходит потому, что алгоритм по умолчанию в ядре Linux 2.6 компенсирует потери тактов таймера. Из-за этого коррекции времени, может получить виртуальной машины.

Решение

Чтобы устранить эту проблему, добавьте часы = лифта параметр файл загрузчика ОС Linux. В часы = лифта параметр вызывает ядра Linux 2.6 использовать более эффективный алгоритм синхронизации времени между виртуальной машины и главного компьютера. Этот алгоритм не уточнить потеряны тактов. Таким образом алгоритм не приводит к виртуальной машине для получения времени. Чтобы добавить этот параметр, выполните следующие действия.

Для начального загрузчика GRUB

  1. Откройте файл /boot/grub/menu.lst в гостевой операционной системы с помощью текстового редактора, например редактора Vi. Например, введите следующую команду с консоли и нажмите клавишу ВВОД:
    vi /boot/grub/menu.lst
    Этот файл содержит параметры загрузки ОС Linux, подобное приведенному ниже:
    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. В Название ОС Linux добавить область этого файла часы = лифта параметр запись ядра. Эта область должна выглядеть следующим образом:
    title Linux
       kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit
       initrd (hd0,4)/initrd
  3. Сохранить изменения в файл, выйти из редактора Vi и перезапустите виртуальную машину под управлением Linux.

Для загрузчика LILO

  1. Откройте файл /etc/lilo.conf в гостевой операционной системы с помощью текстового редактора, например редактора Vi. Например, введите следующую команду с консоли и нажмите клавишу ВВОД:
    vi /etc/lilo.conf
    Этот файл содержит параметры загрузки ОС Linux, подобное приведенному ниже:
    ### 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. В Раздел ### LILO Linux (по умолчанию) область данного файла, введите следующую запись:
    Append = "часы = яма"
    Эта область должна выглядеть следующим образом:
    ### 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. Сохранить изменения в файл и выйдите из редактора Vi.
  4. Запустить LILO команда. Например, введите следующую команду и нажмите клавишу ВВОД:
    / sbin/lilo
  5. Перезапустите виртуальную машину под управлением Linux.

Дополнительная информация

Виртуальная машина обычно имеет трудность синхронизации времени с физического компьютера. Несмотря на то, что Microsoft Virtual Server 2005 Virtual Machine Additions предназначены помочь устранить эту неполадку, возможно возникновение ошибок синхронизации времени из-за способа, в котором гостевая операционная система следит за системное время. Каждый тип операционной системы имеет свой собственный способ для отслеживания времени системы. Ядра Linux 2.6 использует три различные алгоритмы для отслеживания времени системы. Эти алгоритмы более эффективны, чем алгоритмы, которые используются ядра Linux 2.4 и более ранней версии ядра Linux.

Синхронизация времени на виртуальной машине

Обычно операционная система отслеживает время с помощью периодических время прерывания, создаваемые определенного оборудования. Как правило операционная система получает данные о времени с резервным питанием от батареи часов бесплатных Semi-conductor оксида металла (CMOS) во время процедуры загрузки операционной системы. Операционная система затем настраивает устройство таймера для создания периодических прерывания. Операционная система следит за время путем подсчета эти прерывания.

Для виртуальной машины фактическое физическое оборудование совместно с главной операционной системой и гостевой операционной системы. Когда виртуальная машина создает времени прерываний, гостевая операционная система может быть запущена или не может быть запущена. Таким образом гостевая операционная система не учитывает сразу же некоторые из этих прерываний. Чтобы обойти эту проблему, виртуальная машина держит невыполненных эти прерывания. Кроме того виртуальная машина увеличение частоты таймера прерываний при работе. Увеличенная тактовая частота таймера прерываний предназначено для гостевой операционной системы поддерживать правильное время. Тем не менее повышенную частоту этих прерываний может привести к гостевой операционной системы пропустить некоторые прерывания. Данные пропущенных прерывания, называются «потерянные такты». Потеряны импульсов причина время гостевой операционной системы к отставать от реального времени. Несмотря на то, что могут возникнуть проблемы на физическом компьютере, скорее всего, эта проблема возникает в гостевой операционной системы на виртуальной машине.

Ядра Linux 2.4 и более ранней версии ядра Linux используют прерывания таймера, предоставляемые таймера. Алгоритмы, которые реализуются для синхронизации времени ядра Linux 2.4 не учитывают потеряны тактов. Подобное поведение может вызвать Linux гостевой операционной системой времени отставать фактические часы. Чтобы устранить эту проблему, некоторые дистрибутивы Linux исправлений ядра Linux 2.4 для доставки прерываний таймера в более быстром темпе. Тем не менее Linux, гостевая операционная система может возникают те же проблемы синхронизации из-за времени потеряны квантов времени.

В ядре Linux 2.6 реализует более эффективные алгоритмы для решения этой проблемы синхронизации времени. В отличие от Linux 2.4 алгоритмы алгоритмы Linux 2.6 уточнить потеряны тактов. Тем не менее эта корректировка может привести к виртуальной машине под управлением Linux для получения времени. Ядра Linux 2.6 имеет три различные часы параметров, которые могут быть переданы ядро во время загрузки. Эти параметры используются для выбора алгоритмов для использования во время синхронизации. Для получения дополнительных сведений о них в разделе «Хронометраж в Linux». Каждый из этих алгоритмов хронометраж имеет свои преимущества и недостатки. Тем не менее скорее всего, обратите внимание, недостатки на виртуальной машине, чем на физическом компьютере.

Таймер компьютерного оборудования

Каждая операционная система использует собственный метод для обработки хронометраж проблем. Существуют различные виды таймера механизмы, используемые для сохранения времени на компьютере. Ниже перечислены эти механизмы таймера.
  • Программируемый таймер (ЯМА)
  • CMOS часы реального времени (RTC)
  • Локальная Дополнительно программируемых сигналов прерываний (APIC) контроллер таймеры
  • Автоматического управления конфигурацией и питанием (ACPI) (этот механизм называется также набор микросхем таймера.)
  • Счетчик времени меток (TSC)
  • Высокоточного таймера событий (HPET)

Хронометраж в Linux

На платформу x 86-разрядных ядра Linux 2.6 взаимодействует со следующими видами часы для отслеживания времени:
  • Таймер управления питанием (PMTMR)
    Часов имеет следующие характеристики:
    • Значение часов с помощью часы = pmtmr параметр ядра.
    • Эти часы используется таймер ACPI.
    • Часы могут вызвать рост меньше времени.
  • Счетчик времени меток (TSC)
    Часов имеет следующие характеристики:
    • Значение часов с помощью часы = tsc параметр ядра. (Это параметр по умолчанию).
    • Часы использует счетчик ЯМА и TSC для интерполяции времени.
    • Эти часы может привести к overcorrection в среде виртуальной машины. Таким образом часы гостевой операционной системы может выполняться слишком быстро.
    • Часы могут вызвать увеличение времени до 10 процентов.
  • Программируемый таймер (ЯМА)
    Часов имеет следующие характеристики:
    • Значение часов с помощью часы = лифта параметр ядра.
    • Часы использует только ЯМА счетчик времени интерполяции.
    • Эти часы использует простейший из доступных алгоритмов.
    • Эти часы не получить времени, поскольку не использует код коррекции потеряны тактов.
Для получения дополнительных сведений о Virtual Server 2005 посетите следующий веб-узел корпорации Майкрософт:
http://www.Microsoft.com/windowsserversystem/virtualserver/Default.mspx
Продукты независимых производителей, обсуждаемые в данной статье, производятся компаниями, независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает явных или подразумеваемых, относительно производительности или надежности этих продуктов.

Свойства

Код статьи: 918461 - Последний отзыв: 18 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Virtual Server 2005 R2 Standard Edition
  • Microsoft Virtual Server 2005 R2 Enterprise Edition
Ключевые слова: 
kbtshoot kbenv kbdeployment kbprb kbmt KB918461 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:918461

Отправить отзыв

 

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