2015年6月4日木曜日

2015/7/1 うるう秒への対応

2015/7/1のうるう秒挿入に向けていろいろ調べました。

下記サイトが大変参考になった。
http://www-06.ibm.com/jp/linux/tech/doc/0019db89.html
筆者が重要に感じたポイントは赤で記しておきます。

▼『うるう秒』が発生するという情報はNTPプロトコルによりLinux Kernelに伝えられる。
▼NTP パケットに含まれる LI(Leap Indicator)が『うるう秒』に関する情報を示す。
▼LIの値は下記のいずれか。
00 『うるう秒』調整は発生しない
01 正の『うるう秒』調整が発生
10 負の『うるう秒』調整が発生
11 『うるう秒』についての情報を持っていない
▼Leap Indicator の値は NTP プロトコルに従って、
上位の NTP サーバーから下位の NTP サーバーへと自動的に伝達されていきますので、
通常は最上位(Stratum 1)の NTP サーバーに対してのみ、手動で Leap Indicator を設定される
▼Linux で使用されている NTP デーモンは、上位の NTP サーバーから受け取った Leap Indicator を Linux Kernel に伝達する。
『うるう秒』の調整が実際に行われるのは、1月1日もしくは7月1日と定められているため
Leap Indicator が 01 もしくは 10 であったとしても、
受け取った日付が1月1日もしくは7月1日の前日でなければ、Linux Kernelには伝達しない。
一方下位の NTP サーバーには、受け取った日付に関係無く、Leap Indicator の値は配信される。 
NTPデーモンがstepモードの場合、Linux Kernel は Leap Indicator に応じて、当日の 23:59:58 ~ 00:00:00 の間のシステムクロックを以下のように変化させる。
Leap Indicator が 01 の時 23:59:59 → 23:59:59 → 00:00:00(23:59:59 が2秒間続く)
Leap Indicator が 10 の時 23:59:58 → 00:00:00(23:59:59 がスキップされる)
NTPデーモンがslewモードの場合、うるう秒の到達はシステムクロックに通知されず、ゆっくりと時刻の修正が実施される。
ただし一部の古いバージョンのntpでは、slewモードでも、stepモードと同様にうるう秒の挿入を実施するため1秒以下の単位では時刻の逆進が発生する場合があります。
修正の詳細に関しては下記のBugzillaをご参照ください。該当の修正は、ntp-4.2.2p1-9(RHEL5.2相当)に対して適用されています。
https://bugzilla.redhat.com/show_bug.cgi?id=431729

OSレベルのコンフィグとしてKernelのバージョンを確認の上、
slewモードにしておくのが安全なようです。


以上です。

0 件のコメント:

コメントを投稿