「うるう秒」が発生すると何が起こるのか
「うるう秒」によるシステム障害事例
前回のコラムでは、そもそも「うるう秒」とは? ということについてお話しさせていただきました。今回は、実際に「うるう秒」によって起きたシステム障害の事例について解説いたします。
「うるう秒」障害事例が多数報告された2012年
2012年はIT業界へ「うるう秒」対策の必要性を問いかける年となりました。
日本時間2012年7月1日08時59分59秒と09時00分00秒との間に“08時59分60秒”が挿入され「うるう秒」が実施されました。SNSサービスが長時間ダウンしたり、Webサービスにトラブルが発生するなど、IT業界に「うるう秒」障害の恐怖が認識されるには十分な衝撃が走りました。
当時はLINEやFacebookをはじめとするクラウドサービスの普及前夜であったため、一般ユーザーに対して大障害と認識されることはありませんでした。が、もし2016年の現在に同様のシステム障害が発生した場合の損害は計り知れません。
最新のカーネルでも「うるう秒」の影響は防げなかった
この時の障害原因は、
- 特定バージョンのLinuxカーネル※1が動作しているサーバー上で、
- JavaやMySQL、Apache Hadoop など複数スレッドで動作するミドルウエアを稼働させている
という環境下でサービスを提供していた場合、「うるう秒」発生時にCPUを100%占有し、結果としてサーバーがクラッシュしたことでした。
この障害の特徴は、最新のカーネルバージョンであっても「うるう秒」の影響を受けたという点です。システム管理者は、「うるう秒」当日になって障害を目の当たりにし、対応に追われることになりました。
不具合の発生する条件下でも障害を防いだタイムサーバー
では、障害を防ぐ方法はなかったのでしょうか? 「カーネルの不具合ではしかたない…」…と思われる方もいるかもしれませんが、実は、準備次第で障害が発生しなかったシステムも存在します。
不具合の発生する条件下のLinuxサーバーでも、特定の運用を行っていた場合は不具合は発生しませんでした。
そのシステム運用の一つであったセイコーソリューションズのタイムサーバーシリーズによるアジャストモードについてご紹介しましょう。
【セイコーソリューションズ製タイムサーバーシリーズによる「うるう秒」アジャストモードの利用】タイムサーバー(NTPサーバー*1)シリーズを使用し、対象機器(サーバー)との時刻同期にアジャストモードを選択します。 アジャストモードでは、「うるう秒」実施の約120分前より一定の割合で徐々に時間を遅らせていき、2012年7日1日9:00に調整を *1 NTPとはNetwork Time Protocolの略で、PCやサーバーの時刻同期に利用されるサービスです。弊社ではGPS/TelJJY/長波JJY/FM等多種の時刻源に対応したアプライアンス製品を提供しています。 |
通常、時刻同期に使用される公開NTPサーバーは、「うるう秒指示子」(Leap Indicator)によって“60秒”の挿入をLinuxサーバーに通知します。アジャストモードを利用していない場合、2012年の運用では、運が相当に良くないと影響を受けてしまったと言えるでしょう。
2015年は本格的な「うるう秒」対策元年
こうした2012年の障害の経験を踏まえ、本格的な「うるう秒」対策元年となったのが2015年です。
日本時間2015年7月1日 08時59分60秒の「うるう秒」では、Linux、Windows、Mac OS、AndroidをはじめとするOSで、前回の教訓を活かし、最新パッチを適用していれば「うるう秒」を無事乗り越えることができると宣言されました。
セイコーソリューションズへの疑似「うるう秒」環境テストの事前相談も
しかし一方、一部金融・証券系のお客様からは、実際の「うるう秒」発生時と同じ環境を再現しての事前テストを行いたいというご相談がありました。
そこで、弊社タイムサーバーとの組み合わせによって一日一回の頻度で「うるう秒」を疑似的に発生させ、オンプレミス環境※2で「うるう秒」起因の障害が発生しないことをご確認いただきました。検証作業は、半年もの時間をかけ、詳細な試験項目をこなすという入念なものでした。
東京証券取引所は、下記記事のように、「うるう秒」対策をした上で、さらに関係先に留意事項を通知しています。
午前9時に取引開始の東京証券取引所では、突然1秒が挿入されないように、1秒を午前7時からの2時間(7200秒)に“分散”して調整する。取引に大きな影響はない見込みだが、千分の1秒単位で注文が飛び交うだけに、東証は3月、関係先に留意事項の文書を通知した。 日本経済新聞 2015年5月9日号より |
また、米国の主要証券取引機関であるNASDAQに至っては、取引時間内であるにも関わらず、「うるう秒」の発生30分前に全取引を停止するという念の入った対策を行っています。
2017年1月1日をいつもどおりのお正月にするために
さて、先日発表された2017年1月1日08時59分60秒(日本時間)の「うるう秒」をトラブルなしに、いつもどおりのお正月を迎えるためにはどういった対策を取ればよいでしょうか?
その鍵となるのは以下の3つの対策です。
- OSやアプリケーションを100%信用しない。
事前に十分に試験を実施し「うるう秒」挿入による影響を把握しましょう。 - 時刻戻りを起こさせない。
ファイルシステムのタイムスタンプ不整合や分散処理システムのログメッセージ不正合から障害が発生することを意識してください。 - 08:59:60 を刻ませない。
通常ありえない60秒を刻むことは、変数の範囲外など様々な障害を引き起こす原因となります。「うるう秒」を乗り越える最も重要なポイントは、システムに60秒を意識させないことです。
セイコーソリューションズのタイムサーバーシリーズを利用することで、これらの対策を事前に、簡単に完了することができます。ぜひ、ご検討されてはいかがでしょうか。
次回は、Windows、Linuxなどの主要OSの「うるう秒」動作・対策についてと、タイムサーバーシリーズによる簡単・確実な「うるう秒」対策の実例についてご紹介したいと思います。
以下、注釈
※1Linuxカーネル…Linuxシステムの中核をなす基本機能を実装したソフトウェア。
※2オンプレミス環境…企業などが情報システムを自社で保有し、自社の設備において運用すること。
著者プロフィール
橋本 直也
セイコーソリューションズ株式会社
製品企画部門で、マーケティング・プロジェクトマネージメントを担当
■経歴
1992年~ 2004年 沖電気工業株式会社にてATM交換機のハードウェア開発に従事
2004年 入社
2004年~ 2013年4月までハードウェア開発エンジニア、主に方式設計に従事
2013年~ 製品企画部門へ異動
近年は、PTP IEEE1588時刻同期関連製品の研究開発、マーケティング業務に従事。現在に至る。
講習実績
- セイコーの『うるう秒』対策セミナー
「うるう秒」を乗り越えるために -基礎知識と障害事例・対策実例-
Timer Serverシリーズのご紹介 -「うるう秒」デバッグ実演-
高精度時刻同期プロトコルIEEE1588 PTPのご紹介 - Interop Tokyo 2016 ShowNetステージ
PTP IEEE1588時刻同期プロトコル
「IP通信でナノ秒オーダーの時刻精度を実現する仕組み・ユーケース」