12/02/2016

GoogleのパブリックNTPサーバでLeap Smearingを提供

Slashdotより。うるう秒に悩む人に朗報か。GoogleのPublic NTPサーバを利用すれば、Leap Smearが利用できるようだ。あるいは、ntpdの4.2.8.p3あるいは4.3.47以降でサポートしているLeap Smearing機能を有効にする手もある(ビルド要)。

Googleは全てのGoogleサービスを調整している時刻サーバの中にうるう秒に対するサポートを確立したと発表した。匿名の読者がGoogleによるブログを共有する:
一般的に使われているオペレーティングシステムは61秒という1分に対処することはできない。そして、うるう秒という特例に対応しようとして過去に多くの問題を引き起こしてきた。1日の最後に余分な1秒を追加する代わりに、我々はうるう秒前後の10時間に渡り、時計を0.0014%遅く動かし、20時間かけて余分な1秒を塗り変える(smear)。時計を維持する目的のため、12月31日は他の日のように見えるだろう。全てのAPIを含め、全てのGoogleサービスは上記のようにsmearedな時間に同期される。あなたは推奨設定に従えば、Compute Engine上の仮想マシンでsmeared時間を得ることもできる。インスタンスでleap smearを使いたく無い場合は、Google以外のNTPサーバを使うことができる。しかし、smearと非smearなタイムサーバを混ぜて使ってはいけない。

ntpdの場合、/etc/ntp.confを下記に置き換えて(Smearなサーバと非Smearなサーバを混ぜない)、ntpdをreloadすれば良い。

server time1.google.com iburst
server time2.google.com iburst
server time3.google.com iburst
server time4.google.com iburst