読者です 読者をやめる 読者になる 読者になる

Linuxの時計

概要

時計メモ

メモ

時刻 - ArchWiki

ノート: デフォルトでは systemd はハードウェアクロックに UTC を使用します。

Linux を使う時はハードウェアクロックを UTC 時刻系に設定するのが有益です

用語

  • UTC

    • 世界各地の標準時を決めるときの基準となる「世界標準時」のこと
  • タイムゾーン(時間帯)

    • 同じ標準時を利用する地域や区分のこと
  • ローカルタイム(地方時)

    • UTCとの差で表わされる実際の時間
    • 日本のローカルタイム(JST)はUTC+09:00 あるいは GMT+09:00

ハードウェアクロックまたはリアルタイムクロック(RTC)

  • マザーボードが持つ内部時計であり、BIOS クロックやCMOS クロックとも呼ばれます。マザーボード上の IC に実装
  • CentOSではデフォルトではハードウェアクロックをUTCを標準時を参照しているように考えてシステムクロックを設定するみたい。
  • LINUXが起動する時に一度だけ参照。
  • また、RTCはさほど精度が高くないこともあり、定期的にインターネット上のNTPサーバーから現在時刻を取得しRTCに書き込むということも行われます。最近のWindowsではデフォルトでマイクロソフトのNTPサーバーを参照しています。
  • MacLinuxでは、RTCからUTC(協定世界時)を設定しておきOS側でタイムゾーンや夏時間の時差を足し引きしてローカルタイムを表示しているようです。

システムクロック

  • 一般的に、UTC を使う OS は起動時に CMOS (ハードウェアクロック) の時間を UTC 時間 (GMT, Greenwich time) だと認識して、あなたのタイムゾーンによってその時間を調整してシステム時刻を設定します。
  • OSは起動されるとハードウェア クロックの時刻情報を読み出し、基準時刻からの経過秒数の形式に編集してOSが管理するメモリ内にシステム クロックとして格納します。
  • システムクロックの更新はタイマー割り込み毎に加算され、基準時刻からの経過秒数で現在の時間を運用(時計の進行)する。

NTPの必要性

  • ログの時間の整合性をあわせるなどなど、ネットワーク内の複数のシステムで同じ時間に合わせる必要があるのでNTPを利用する。
  • 時間が正確
  • /etc/ntp.conf でntpサーバを設定。ntpdを起動させる。
  • 即時に合わせる場合、nttdate ntpサーバで合わせることができる。

まとめ

工場でマザーボード作成。現在の時間設定される。以後動き続ける。

届く

Linuxサーバ設定、起動

起動時にRTCを参照。 LinuxではRTCをUTCをとして認識、そこからlinuxタイムゾーンにあった時間に変換(システム クロックの設定)

↓ 運用

システムで時間を統一する必要ntpの導入(システムクロックの値はntpdから取得)

問題

  • RTCはずれる。「ハードウェア クロックはあまり正確ではない」と言われているくらいらしい
  • RTCがずれたままだど再起動する度にずれた時間が設定される。(ntpdで修正されるも即時ではない場合、時間がかかる)

システムクロックとRTCを同期する。 デフォルトでタイミングは再起動やシャットダウン

これでRTCとシステムクロック同期するのでずれない。 また、NTPで各サーバーの時間も同期。NTP使うので時間は正確。

参考

時刻 - ArchWiki

naitaku.hatenablog.com

パソコンの時計 ハードウェアクロックとシステムクロック