文書番号: 918461 - 最終更新日: 2006年5月4日 - リビジョン: 1.1

Virtual Server 2005 R2 でホストされている Linux ベース バーチャル マシン上で高速すぎるシステム時刻を実行します。

目次

すべて展開する | すべて折りたたむ

現象

を Microsoft Virtual Server 2005 R2 に Linux ベースの仮想マシンをインストールした後、Linux ゲスト オペレーティング システムのシステム時刻が高速すぎる実行されます。 たとえば、Linux ゲスト オペレーティング システムで現在の時刻約 48 秒ごとに 1 分を進めます。 可能性があります。 一部後、Linux ベースの仮想マシンは、時計を正しい時刻に戻します。

この問題は、Linux ディストリビューション、Linux 2. 6 カーネルを使用する実行している場合に発生します。

原因

この現象は、タイマー刻みの消失の Linux 2. 6 カーネル以外で既定のアルゴリズムを調整するために発生します。 この調整のため、バーチャル マシン時間を取得する可能性があります。

解決方法

この問題を解決をするには追加、 時計ピット = パラメーター、Linux のブート ローダー ファイルを指定します。 クロック = ピット パラメーターによりより効率的なアルゴリズムを使用して、バーチャル マシンとホスト コンピューター間で時刻を同期するには、Linux 2. 6 カーネル。 このアルゴリズムは、失われたタイマー刻みの調整されません。 したがって、アルゴリズムは時間を取得するバーチャル マシンを行いません。 このパラメーターを追加するには、次の手順に従います。

GRUB のブート ローダーの

  1. ゲスト オペレーティング システムで Vi などテキスト エディターを使用して/boot/grub/menu.lst ファイルを開きます。 たとえば、コンソールから次のコマンドを入力して Enter キーを押します。
    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. ゲスト オペレーティング システムで Vi などテキスト エディターを使用して/etc/lilo.conf ファイルを開きます。 たとえば、コンソールから次のコマンドを入力して Enter キーを押します。
    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 セクション (既定値) ]、次のエントリを入力します。
    追加 ="クロック ピット ="
    このエリアの次のましょう。
    ### 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 コマンドを実行します。 たとえば、次のコマンドを入力して Enter キーを押します。
    /sbin/lilo
  5. Linux ベースのバーチャルマシンを再起動します。

詳細

バーチャル マシンでは、物理ホスト コンピューターとその時間を同期に問題は通常があります。 Microsoft Virtual Server 2005 バーチャル マシン追加は、この問題を解決するため、順番、ゲスト オペレーティング システムの追跡、システム時刻の時間同期の問題が発生する可能性があります。 オペレーティング システムのすべての種類には、システム時刻の追跡する独自の方法があります。 Linux 2. 6 カーネルでは、3 種類のアルゴリズムを使用してシステム時刻の追跡をします。 これらのアルゴリズムは以前の Linux カーネルして Linux 2. 4 カーネルによって使用されるアルゴリズムよりも効率的です。

バーチャル マシンで時刻の同期

オペレーティング システムは通常時間を特定のハードウェア デバイスによって生成される定期的な時間の割り込みを使用して追跡します。 一般に、オペレーティング システム取得時間、バッテリによりバックアップ無償金属 Oxide Semi-conductor (CMOS) 時計からオペレーティング システムの起動処理中にします。 オペレーティング システムは、定期的な割り込みを生成するタイマー デバイスし構成します。 オペレーティング システムはこれらの割り込みをカウントして時間の追跡します。

仮想マシンの実際の物理ハードウェアは、ホスト オペレーティング システムや、ゲスト オペレーティング システムにより共有されます。 バーチャル マシンが生成される時間の割り込みと、ゲスト オペレーティング システムを実行している可能性がありますか可能性があります実行されていません。 したがって、ゲスト オペレーティング システム直ちに考慮しませんこれらの割り込みの一部。 この問題を回避するには、バーチャル マシンはこれらの割り込みのバックログを保持します。 さらに、実行されている場合は、バーチャル マシンするタイマー割り込みの頻度が高くになります。 増加タイマー割り込みの頻度の目的を容易に正しい時刻を維持、ゲスト オペレーティング システムです。 ただし、強化されたこれらの割り込みの頻度と、ゲスト オペレーティング システムの割り込みの一部を見逃すことにでした。 これら不在の割り込みは、失われた目盛りと呼ばれます 実際の時間の背後ラグをタイマー刻み原因ゲスト オペレーティング システムの時刻を失いました。 この問題、物理コンピューター上に発生することがあります、はバーチャル マシンで実行しているゲスト オペレーティング システムでこの問題が発生するほとんどの場合より。

以前の Linux カーネルと Linux 2. 4 カーネル タイマーで配信される、タイマー割り込み依存します。 Linux 2. 4 カーネルで時刻の同期が実装されているアルゴリズムは失われるタイマー刻みの考慮いません。 このため、ラグの実際の時計の背後に Linux ゲスト オペレーティング システムの時刻があります。 この問題を解決するには、いくつかの Linux ディストリビューション速い速度でタイマー割り込みを配信するには、Linux 2. 4 カーネルを修正します。 ただし、Linux ゲスト オペレーティング システムでした依然時刻同期のため、問題が発生目盛りを失いました。

Linux 2. 6 カーネルは、この時刻同期の問題を解決するより効率的なアルゴリズム実装します。 Linux 2. 4 のアルゴリズムとは異なり、Linux 2. 6 アルゴリズム切断タイマー刻みの調整します。 ただし、この調整 Linux ベース バーチャル マシンを時間を取得を発生する可能性があります。 Linux 2. 6 カーネル 3 異なる時計パラメーターを持つブート時に、カーネルに渡されます。 これらのパラメーターを使用して時刻の同期を使用するアルゴリズムを選択します。 これらのアルゴリズムの詳細については、「"計時に Linux"。 各これら計時アルゴリズムが長所と短所があります。 ただし、物理コンピューター上でよりバーチャル マシン上の欠点を確認しやすくされます。

コンピューターのタイマー ハードウェア

オペレーティング システムごとには、計時問題を処理する独自のメソッドがあります。 さまざまな種類のコンピューター上で時刻を維持するためのタイマー機構があります。 これらのタイマーのしくみは次のとおりです。
  • プログラミング可能な間隔タイマー (PIT)
  • CMOS リアル タイム クロック (RTC)
  • ローカル プログラミング可能な割り込みコントローラー (APIC) のタイマーの詳細
  • 高度な構成および電源インターフェイス (ACPI) (このメカニズムとも呼ばれる、チップ セット タイマー)。
  • 時刻のスタンプ カウンター (TSC)
  • 高精度イベント タイマー (HPET)

Linux で計時

x86 ベースのプラットフォームの Linux 2. 6 カーネルは、次の種類時間を追跡するための時計のによって対話します。
  • 電源管理タイマー (PMTMR)
    この時計は、次の特性を持ちます。
    • この時計を使用して設定されて、 時計 pmtmr = カーネル パラメーター。
    • この時計は、ACPI タイマーを使用します。
    • この時計より小さい時間の向上があります。
  • タイム スタンプ カウンター (TSC)
    この時計は、次の特性を持ちます。
    • この時計を使用して設定されて、 時計 tsc = カーネル パラメーター。 (これは、既定のパラメーターです)。
    • この時計は時刻の補間の PIT カウンターと、TSC を使用します。
    • この時計は、バーチャル マシンの環境で overcorrection にあります。 したがって、ゲスト オペレーティング システム クロック高速すぎる実行可能性があります。
    • この時計最大 10% の時間の向上があります。
  • プログラミング可能な間隔タイマー (PIT)
    この時計は、次の特性を持ちます。
    • この時計を使用して設定されて、 クロック = ピット カーネル パラメーター。
    • この時計は、PIT カウンターのみを使用して時間の補間のします。
    • この時計は、利用可能なアルゴリズムの最も簡単な使用します。
    • 失われた目盛り修正コードは使用しないためにのこの時計ない時間を取得するは。
Virtual Server 2005 の詳細については、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx (http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx)
この資料で説明するサードパーティ製品が他社はマイクロソフトとは無関係です。 Microsoft いかなる責任も負わないものと、黙示またはそれ以外の場合は、パフォーマンスやこれらの製品の信頼性に関するします。

この資料は以下の製品について記述したものです。
  • Microsoft Virtual Server 2005 R2 Standard Edition
  • Microsoft Virtual Server 2005 R2 Enterprise Edition
キーワード:?
kbmt kbtshoot kbenv kbdeployment kbprb KB918461 KbMtja
機械翻訳機械翻訳
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:918461? (http://support.microsoft.com/kb/918461/en-us/ )
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
 

サポート技術情報の翻訳