概要

Kernel 2.6以上を使用しているLinuxをゲストOSとした場合に時刻の大幅な遅れが発生する場合がある。
本書ではこの問題の原因説明と対処方法を記す。

原因

Linuxでは時刻はタイマー割り込みをカウントすることで管理されている。
Kernel 2.4では毎秒100回の割り込みでカウントを行っていたが、Kernel 2.6では毎秒に1000回に精度が上がった。
VMでは毎秒1000回の割り込みを処理しきれず、結果として時刻に大幅な遅れが発生することとなる。またカウントの回数はプロセッサ数と比例するため、2プロセッサ構成の場合は1000回x2/秒のカウントが行われることとなる。

対策

  • .vmxの編集
    VMware起動前に対象のゲストOSフォルダの *.vmx を編集する。ファイルの最後に次の行を追加する。VMware Toolsだけでは効果がないらしい。
tools.syncTime = "TRUE"

VMwareToolsをインストールする。

  • Linuxの起動オプションの調整
    rootでログインし/boot/grub/grub.confを編集。
    kernel行の最後に "clock=pit nosmp noapic nolapic"を追加して再起動する。
  • Linux Kernelの再構築 下記の設定にてタイマー割り込み回数を減らす。
「Processor type and features」-「Timer frequency」

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS