• 追加された行はこの色です。
  • 削除された行はこの色です。
**目次 [#wae09575]
#Contents
**概要 [#u5436e25]
Kernel 2.6以上を使用しているLinuxをゲストOSとした場合に時刻の大幅な遅れが発生する場合がある。~
本書ではこの問題の原因説明と対処方法を記す。

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

**対策 [#q6710164]
以下で複数の対策方法を示すが、これらを全て適用したとしても解決できるとは限らない問題である。~
このためシステム運用上は複数の対策+NTPによる毎分の時刻調整を併用する必要がある。~
尚、全仮想マシンから毎分NTPの時刻調整をかける場合はNTPサーバへ負荷がかかるため、自前のNTPサーバにて行なうことが望ましい。

***VMwareToolsの設定 [#k08a29d7]

***1. VMwareServer側の設定 [#i8f34052]
CPUのクロック変動に伴う時間の誤差とホスト・ゲスト間の時間の修正機能を有効化するため、VMwareServerの設定に変更を加える。

-/etc/vmware/config
 host.cpukHz = 1800000
 host.noTSC = TRUE
 ptsc.noTSC = TRUE

host.cpukHzはCPUの動作クロックを静的に固定させるための設定となる。~

 900000 = 900MHz
 1800000 = 1.8GHz
 2400000 = 2.4GHz


***2. VMwareToolsの設定 [#k08a29d7]
-.vmxの編集~
VMware起動前に対象のゲストOSフォルダの *.vmx を編集する。VMwareToolsをインストールした後、ファイルの最後に次の行を追加する。

 tools.syncTime = "TRUE"


***Linuxの起動オプションの調整 [#mb9671ac]
***3. Linuxの起動オプションの調整 [#mb9671ac]
カーネルの起動オプションにて調整を行なう。~
rootでログインし/boot/grub/grub.confを編集。~
kernel行の最後に以下を追加して再起動する。~

-時刻が遅れる場合
 "nosmp noapic nolapic"

-時刻が進む場合
 clock=pit 
 clocksource=pit 

***Linux Kernelの再構築~ [#q6ef70fb]
***4. Linux Kernelの再構築[#q6ef70fb]
下記の設定にてタイマー割り込み回数を100回に減らす。~

 「Processor type and features」-「Timer frequency」

 mkdir /usr/local/src/linux
 cd /usr/local/src/linux
 
 wget http://mirrors.kernel.org/centos/4.5/updates/SRPMS/kernel-2.6.9-55.0.2.EL.src.rpm
 rpm -ivh kernel-2.6.9-55.0.2.EL.src.rpm 
 
 cd /usr/src/redhat/SPECS/
 
 rpmbuild -bp --target i686 kernel-2.6.spec
 
 cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/include/asm-i386/
 vi param.h 
 
 #ifdef __KERNEL__
 # define HZ             1000 
 
 #ifdef __KERNEL__
 # define HZ             100 
 
 cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/
 vi Makefile 
 
 EXTRAVERSION = -prep
 
 EXTRAVERSION = -VM
 
 make mrproper
 cp configs/kernel-2.6.9-i686.config .config
 
 make oldconfig
 
 make
 make modules_install
 make install
 



**参考 [#acf8db87]
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1420~
http://mwweb.cocolog-nifty.com/blog/2007/11/vmwarecentos_f0ac.html~
http://search.luky.org/linux-users.a/msg07194.html~
http://blog.miraclelinux.com/asianpen/2007/05/vmwarelinux_ad22.html~
http://d.hatena.ne.jp/dayflower/20071207/1197004405~



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