よろづやアンテナ

ITから生活の参考になる情報を備忘録代わりに残していきます

WindowsとLinuxのうるう秒対策に関する違いについて

システムエンジニアという仕事の関係上、「うるう秒」の話題で盛り上がっています。


そして、うるう秒閏秒)が挿入されるのは、「2015年7月1日」で、通常より1秒長い、24時間1秒になります。


うるう秒とは、現行の協定世界時(UTC)と地球の自転のズレを調整するために追加、もしくは削除される時間のことを指します。


また、2012年7月1日に実施された際には、LinuxOSなどでうるう秒バグが発生し、問題になりました。


まず、私はこれまでWindowsサーバーを構築する事が多かったのですが、うるう秒で大きな問題が発生したと聞いたことがありません。


では、Microsoft製品では、うるう秒対策は必要か?という事で、公式サイトに説明があります。


>>うるう秒に関するサポートについて(Microsoft)


以下は一部抜粋です。

---
OSにおいて

Windows オペレーティングシステムでは、うるう秒の処理をおこないません。
たとえば、「yyyy/mm/dd 08:59:60」の年月日時刻情報につきましては、Windows OS ではサポートしていません。
このため、たとえば「2012/7/1 08:59:60」は「2012/7/1 09:00:00」として処理されます。



なお、うるう秒が発生した瞬間は、うるう秒を対応している NTP サーバーに対して、1 秒の時刻差異が生じますが、その後の時刻同期にて正常な時刻に補正されます。
Windows Time サービスの時刻同期のしくみについては、技術情報 (KB 2722681) を参照してください。 

---

WindowsOSは、うるう秒の処理を行わず、そのままズレたまま進みますが、次回のNTPサーバとの同期で修正されるという流れですね。


また、SQLやExchangeなども基本的には、うるう秒を意識ないようですね。どちらかというと、OS上で動作するアプリがうるう秒を意識する場合、OSとの差が生じて問題が起きるパターンがありそうです。


この場合も、アプリに依存すると思いますので、Windows製品の場合は、調査箇所が限定されそうです。


続いて、Linuxですが、IBMのサイトに分かりやすい説明が書かれていました。

>>System x における「うるう秒」の調整と対応について


基本はWindowsと同じ考え方で、NTPを参照していない場合は、時刻が1秒遅れます。その場合、うるう秒を意識するアプリが上で動作している場合、不整合がおきる場合があります。


また、Windowsとの違いとしては、Linuxの場合は、うるう秒を意識させる事ができる点です。つまり、アプリケーションに合わせて、対応する事ができます。


やはり重要なのは、アプリケーションの動作を確認する事ですね。


---
追記

Windows製品は、うるう秒対策は必要ないと書きましたが、導入するソフトウェア、アプリケーションによっては、当然、意識する必要があります。そこで、Windows Server 2012 R2でslewモードを設定する方法について説明した記事を書きました。※厳密には、slewモードに設定するというよりは、stepモードで動作するまでの時間を調整する設定になります。

 →WindowsServer2012R2、w32tmでのslewモード対策、設定方法

ワークグループ環境のWindows Server 2012 R2サーバについては、デフォルトの値では、「1秒」以上の時刻差があると、stepモードで動作してしまいますし、w32tm自体が1秒程度の時刻差が起こるサービスとしているので、基本的にstepモードで動作する仕様となっているので、注意が必要です。


また、このstepモードで動作する値は、ドメインコントローラーかドメインメンバーサーバーか、またはワークグループ環境かで変わってくるので、そこも注意してください。


※会社でスマホのバッテリーがなくなる!という方にお勧めのモバイルバッテリーです。会社でスマホの充電が難しい場合も助かると思います。