Debian 環境セットアップ

サーバの時間を補正する

サーバ(コンピュータ)の時計は実にいい加減。たまに全然狂わないサーバ機器にも当たるのだが、基本的に毎日少しずつ狂うものと考えてまず間違いない。 ただサーバの時間の狂いは、通常運用のみならず、障害時にログを見たりするときに分析できない自体を招きかねない。
なので、最低でも1日1回は補正することを絶対に必要ということになる。

サーバの時間を補正するには、インターネットマルチフィード(MFEED) 時刻情報提供サービスを使うのが一番
ntpdateコマンドを使って、時間を管理しているサーバに問い合わせれば、正しい時間をセットできる仕組みだ。

(1)ntpdateコマンドがインストールされていない場合は、先にインストールを行う。

# apt-get install ntpdate

(2)cronにて1日1回は実行するように設定する。

# vi /etc/cron.d/set_ntpdate

----------------------------------------------

0 2 * * * root /usr/sbin/ntpdate -s ntp.jst.mfeed.ad.jp > /dev/null 2>&1

1 2 * * * root /sbin/hwclock -r

(3)cronを再起動する。

# /etc/init.d/cron restart

● システム時間の補正

ntpdateコマンドは、インターネットマルチフィード(MFEED)のサーバntp.jst.mfeed.ad.jp(ラウンドロビンのNTPサーバー)にアクセスさせれば、時間がセットされる。ntp.jst.mfeed.ad.jpは、ラウンドロビンになっていて、実際は分散されてアクセスしている。

○ ntp.jst.mfeed.ad.jpの実サーバ

ntp1.jst.mfeed.ad.jp (210.173.160.27)

ntp2.jst.mfeed.ad.jp (210.173.160.57)

ntp3.jst.mfeed.ad.jp (210.173.160.87)

サーバを複数管理している場合は、1つのサーバだけインターネットマルチフィード(MFEED) のお世話になって、あとのサーバはそのサーバ(NTPサーバ)から時間を取得するようにしよう。(ネットワーク付加を増大させないため)

● ハードウェア時間の補正

ハードウェア時間も結構狂っているもの。 電池切れなんか起こしているとサーバの電源を一度落としてしまうと、とんでもない時刻がセットされてしまうことになる。そうならないためにも、電池も必ずチェックしよう。

ハードウェア時間(CMOSクロック)を補正するには、hwclockコマンドを使用する。

hwclock -w →システム時刻をCMOSクロックに書き込む
hwclock -r →CMOSクロックを表示する

カーネル2.6.10系以降、でrtcドライバでタイムアウトする現象が発生する機種がある。
DELLのサーバではPowerEdge1850や、SC1425などで、この現象が発生していた。 同じ時期にリリースされているPE750では起きないため、おそらくマザーボードと rtcドライバのマッチングによる問題だと思われる。

# hwclock -r

select() to /dev/rtc to wait for clock tick timed out

○ 対処方法

(CMOS レジスタを直接操作するように強制する:RTCドライバを使わない)

システム時刻→CMOSクロックに書き込む

# hwclock --directisa --systohc --localtime

CMOSクロック→システム時刻に書き込む

# hwclock --directisa --hctosys --localtime

CMOSクロックを表示する

# hwclock --directisa --show