linux(FC8)のVMwareに入れたOS(FreeBSD, CentOS)の時間がずれる、困った、そんなとき

開発用のサーバって、できるならOSをクリーンインストールした方が好ましいですよね。

ちなみに、どう好ましいかというと、サーバ構築手順が書きやすいということと、意図しないライブラリに依存しないように作業が進められる(つまり必要かつ不足しているものがあれば「入っていない」ことにより動かず、自分で入れることになるので意図することができる)、があります。

とはいえ、マシンが余っているわけでもありません。

そこで、比較的処理負荷の軽い、デュアルコア(Athlon BE2350, 4MB, FC8)のマシンに VMwareを入れてバーチャルマシンを2台分用意しました。入れたOSはCentOS5と、FreeBSD6.2です。(インストールした後すぐにFreeBSD6.3がリリースされましたが、ChangeLogを見る限りではこのままでいいかと思いました。)

両方ともWeb+DBサーバの状態にして、実際に動かしてみましたが、結構さくさく動いてパフォーマンスとしても良好です。

ただ、時間がどうにもずれます。もう全然だめなくらい。そんなとき。

とりあえず時間を設定するコマンド から。

@時刻が正しいマシンにて

# LANG=C date
Tue Jan 15 18:01:28 JST 2008

@時刻がおかしいマシンにて(正しいマシンの出力をコピペ)

CentOSの場合
date -s 'Tue Jan 15 17:58:25 JST 2008'
FreeBSDの場合
date -f '%a %b %e %H:%M:%S %Z %Y' 'Tue Jan 15 18:18:38 JST 2008'

これでとりあえず時刻が合います。

ネットワークを利用して更新するなら、ntpdateコマンドが便利です。

/usr/sbin/ntpdate <NTPサーバのFQDNかIP>

さて、時刻が合いました。あとは、ずれないようにすればOKです。

そこで、ntpd を起動してみました。VMwareでなければこれでずれないようになります。

でも、今回はこれではだめでした。ずれまくります。

ntpdのパラメータをチューニングすればいいのかもしれませんが、ちょっとノウハウを漁る時間が取れなかったので、ntpdateをcronで回すことにします。

これでチューニングパラメータはcronの時間だけになります。

まず1日1回にしてみる。結果、ずれまくった。

3時間に1回にしてみる。結果、ずれまくった。

1時間に1回にしてみる。結果、ずれまくった。

15分に一回にしてみる。結果、平気で10分くらいずれる。

なんじゃこりゃ。

最終的に、5分に1回でまぁまぁ納得できる精度となりました。 つまり、crontabはこうなります。

*/5 * * * * /usr/sbin/ntpdate <NTPサーバのFQDNかIP>

ここで注意点は、頻繁にアクセスしてしまうことです。

そのため、今回NTPサーバはLAN内に立ち上げた自前のNTPサーバにしています。VMwareのホストOSに立ち上げてしまうのも良いと思います。

といっても、例えばFC8なら、 yum install ntp して、/etc/init.d/ntpd で立ち上がります。

また、debian4なら、 aptitude install ntp して、/etc/init.d/ntpd で立ち上がります。

もし時刻のずれに困ったらお試しくださいませ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>