以前の記事で、Linux における NTP の設定方法を紹介した。しかしながら、Hyper-V の ゲスト OS が Linux の環境では、ntpd をデーモンとして起動し、しばらくしてもローカルクロック (127.127.1.0) のみしか同期が成功しない。
[root@centkun ~]# ntpq -p
remote
refid
st t when poll reach delay
offset jitter
==============================================================================
clock.trit.net 192.12.19.20
2 u 308 1024 377
119.043 -545846 4247.45
ntp1.Housing.Be 169.229.128.214 3
u 319 1024 377 110.793
-545772 4166.27
153.16.4.137 192.36.143.152
2 u 311 1024 377
184.881 -545799 4249.43
*LOCAL(0) .LOCL.
10 l 10
64 377 0.000
0.000 0.001
"*" が付いているのは、LOCAL のみ。
Hyper-V で Linux をゲスト OS とする場合、ホストとの時刻同期はサポートされない。時刻同期がサポートされていなこと自体には、大きな問題はないが、Linux をゲスト OS とする場合、システム時刻の進みが尋常ではない。これは、Hyper-V で Linux ゲストを利用するシーンでは、致命的な障害となる。
前回の記事では、この障害を回避するために、ntpd で、外部の NTP サーバーと時刻を同期しようとしたのだが、これがうまく動作していなかった。
そして、この障害の発見が遅れたのは、不幸中の幸いか、ローカルクロック (127.127.1.0) との同期が成功していた点にあると考えられる。
[root@centokun ~]# date & hwclock
[1] 29419
2010年 7月 15日 木曜日 10:40:39 JST
2010年07月15日 10時40分39秒 -0.861611 秒
<[1]+ Done date
ハードウェアクロックは、時刻が進んでしまう現象はあるものの、システムクロックと比較して、時間の進みが緩やかだ。そのため、ntpd が外部の NTP と同期していると思い込んでしまっていた。
調査したところ、仮想マシンでは、タイマー割り込みによる CPU オーバーヘッドが発生することが原因らしい。これを緩和するには、タイマー割り込みの間隔を 1ms から 10ms に減らすように変更する。
具体的には、カーネルの起動パラメータに "divider=10" を設定する。
(RedHat 5.4、CentOS 5.4 が対象。他の OS は、ここを参照。)
[root@centkun ~]# vi /boot/grub/grub.conf
(before) kernel /vmlinuz-2.6.18-162.el4 ro root=/dev/VolGroup00/LogVol00
hda=noprobe hdb=noprobe
(after) kernel /vmlinuz-2.6.18-162.el4 ro root=/dev/VolGroup00/LogVol00
hda=noprobe hdb=noprobe divider=10
ファイルを保存し、OS を再起動する。
[root@centkun ~]# shutdown -r now
検証環境では、30 分位で同期されていることを確認した。
[root@centos ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+131.107.13.100 .ACTS. 1 u
38 64 337 113.739 183.491 72.309
+ntp-nasa.arc.na .GPS. 1
u 5 64 377
60.020 230.378 42.939
*ntp.nc.u-tokyo. .GPS. 1
u 24 64 377 4.979
237.430 38.567
LOCAL(0) .LOCL.
10 l 41 64 377
0.000 0.000 0.001
HyHyper-V は、他の VMware 等の仮想化技術と比較して、Unix、Linux 系のサポート状況、情報量が非常に少ない。
現状では、Hyper-V + Linux 環境は、現実的ではないと感じている。
今後の Hyper-V + Linux 環境の成熟を期待したい。
以下は、この記事で参考にしたサイト。
コメント (0)
コメントの投稿