はじめまして、松野です。
今回はLINUXサーバの時刻同期についてです。
サーバ内の時間がずれていると、さまざまな問題が発生します。
ログに書かれた時間が実際の時間と異なってしまったり、大きくずれていると正常に起動しないミドルウェアがあったりします。
時刻同期を行うコマンドのひとつにntpdateコマンドがあります。
ntpdateコマンドによる時刻同期には、一気に合わせるstepモードと、徐々に合わせるslewモードがあります。
一気に合わせたい場合(stepモード)
1 |
ntpdate -b [NTPサーバ] |
徐々に合わせたい場合(slewモード)
1 |
ntpdate -B [NTPサーバ] |
一気に合わせても問題ない場合は、stepモードで時刻合わせを実行した後にNTPDを起動すればOKです。
時間が進んでしまっている場合、過去に戻ることになるので注意が必要です。
サーバ内時間が過去に戻ってしまうと困るサーバの場合には、slewモードを利用して徐々に合わせていくことになります。
修正するスピードは「1秒間につき最大で0.0005 秒」とのこと。
今回はslewモードでの時刻合わせを実際に行い、どれくらい時間が掛かるのかを調べました。
slewモードの動作について検証
サーバの時刻を10秒進め、slewモードによる時刻合わせを行います。
1秒間に最大0.0005秒修正されるので、計算上では最短5時間30分で修正完了となります。
まずはサーバの時間を10秒ほど未来に進めます。
1 2 3 4 5 6 |
# ntpdate -q ntp.jst.mfeed.ad.jp server 210.173.160.87, stratum 2, offset -9.798881, delay 0.03308 server 210.173.160.27, stratum 2, offset -9.799707, delay 0.03296 server 210.173.160.57, stratum 2, offset -9.799372, delay 0.03308 26 Mar 18:55:34 ntpdate[3774]: step time server 210.173.160.27 offset -9.799707 sec # |
約10秒早い状態になりました。
slewモードによる時刻合わせを開始します。
1 2 3 |
# ntpdate -B ntp.jst.mfeed.ad.jp 26 Mar 19:06:16 ntpdate[9112]: adjust time server 210.173.160.27 offset -9.790137 sec # |
slewモードでの時刻合わせが開始されました。
実行後、念のため一気に時刻合わせがされていないかを確認。
1 2 3 4 5 6 |
# ntpdate -q ntp.jst.mfeed.ad.jp server 210.173.160.87, stratum 2, offset -9.788566, delay 0.03322 server 210.173.160.57, stratum 2, offset -9.787771, delay 0.03302 server 210.173.160.27, stratum 2, offset -9.787805, delay 0.03313 26 Mar 19:06:21 ntpdate[9186]: step time server 210.173.160.57 offset -9.787771 sec # |
10秒早い状態のままです。
この状態でしばらく(一晩)放置します。
一晩たってから、ログを確認します。
1 2 3 4 5 |
server 210.173.160.87, stratum 2, offset -0.090918, delay 0.03300 server 210.173.160.57, stratum 2, offset -0.090577, delay 0.03290 server 210.173.160.27, stratum 2, offset -0.090373, delay 0.03278 27 Mar 00:20:02 ntpdate[19424]: adjust time server 210.173.160.27 offset -0.090373 sec Fri Mar 27 00:30:01 JST 2015 |
約5時間30分後、もっとも時刻差異が小さくなりました。
計算上の完了予定時刻と近いですね。
その後のログを追ってみます。
1 2 3 4 5 6 |
27 Mar 00:20:02 ntpdate[19424]: adjust time server 210.173.160.27 offset -0.090373 sec 27 Mar 00:30:02 ntpdate[19504]: adjust time server 210.173.160.27 offset 0.218787 sec 27 Mar 00:40:01 ntpdate[19582]: adjust time server 210.173.160.27 offset 0.367731 sec 27 Mar 00:50:02 ntpdate[19663]: adjust time server 210.173.160.27 offset 0.376642 sec 27 Mar 01:00:02 ntpdate[19743]: adjust time server 210.173.160.27 offset 0.385301 sec 27 Mar 01:10:01 ntpdate[19837]: adjust time server 210.173.160.57 offset 0.394296 sec |
このサーバはNTPDが起動していない状態だと徐々に時間が遅れていくようです。
ただ、00:20~00:30の間に遅れた時間が、その後より明らかに大きいです。
これは、slewモードの時刻合わせが未だ動いていたものと思われます。
slewモードの時刻あわせは、少し行き過ぎてしまうようですね。
結果
slewモードを利用することで、徐々に時刻合わせを行うことができました。
注意点としては
1.時刻の差異がなくなった時点で丁度止まる訳ではなく、若干行き過ぎる
2.時刻合わせが終わったあとは再び時刻がずれ始める
の二点でしょうか。
実際に行う場合には、何度かに分けて時刻合わせをし、差異をなくした上でNTPDを
起動させる必要がありそうです。
投稿者プロフィール
- 基本を大事にしていきたいサーバーエンジニアです。
最新の投稿
- AWS2023年7月5日AWS ECS を使ってコンテナーを触ってみる
- AWS2022年12月22日AWS Transfer Familyを使ってみた
- AWS2022年12月19日Amazon EFSのElastic Throughputモードを利用してみる
- AWS2018年11月29日re:Invent2018 新サービス「Amazon Managed Blockchain」発表