ハードウェア

Facebookが高精度時刻同期システムをオープンソースへ、構築コストが従来の数分の1に


分散システムにおいては、トランザクションの順序を正確に処理したり、ログの一貫性を保ったりするために個々のサーバーの時刻を同期させることが重要です。その時刻同期に用いられるタイムサーバーについて、Facebookは高精度かつ安価でベンダーロックインのない設計や仕様をオープンソースとして公開すると発表しました。

Open sourcing a more precise time appliance - Facebook Engineering
https://engineering.fb.com/2021/08/11/open-source/time-appliance/


Facebookは2020年3月18日のブログ投稿で、従来は10ミリ秒単位の精度しかでなかった時刻同期システムを改善し、精度を100倍向上させて100マイクロ秒単位で同期可能にしたと発表していました。このシステムでは、原子時計を搭載した人工衛星からの信号を受信し、下図のStratum 1の層にある地上のタイムサーバーの時刻を補正しています。


サーバーの時刻補正にFacebook運営の「time.facebook.com」など外部のタイムサーバーをStratum 1として利用している企業が多いものの、インターネット接続に問題が発生したり、外部のサービスがダウンしたりした場合には時刻が不正確になり、トラブルに発展する危険があります。

そこでFacebookは新たに受信機と原子時計で構成される「タイムアプライアンス」と呼ばれるハードウェアを設計し、人工衛星から正確な時刻を受信しつつ人工衛星との接続が一時的に失われた場合でも正確性を失わないタイムサーバーを構築可能な仕組みを構築しました。同時に一般的なサーバーをタイムアプライアンスにすることができるPCIeカード「タイムカード」も発明したとのこと。

タイムアプライアンス自体は革新的なものではなく、既に同種の製品がいくつも存在していますが、ソフトウェアが古くなっていてセキュリティの問題があったり、ソフトウェアのソースが非公開でデバイスの構成や監視に制限があったり、ユーザー自身でハードウェアを保守できなかったり、製造量が少ないことで高価になってしまっていたりするという問題がありました。

タイムカードはそうした問題を解決するために生み出されたデバイスで、時刻とパルス信号(PPS)を提供する受信機と原子時計(MAC)が搭載されています。タイムカードの仕様やソースコード、回路図は全てGitHubで公開されており、ドライバはバージョン5.15以降のLinuxカーネルに含まれているほか、バージョン5.12以降のLinuxカーネルであれば自分でビルドして利用することも可能です。


タイムカードの精度の検証結果は下図の通りで、青いドットで示されているNTPは40マイクロ秒以内に収まっており、オレンジ色のドットで示されているPTPの場合はナノ秒単位の誤差しか発生していないことが分かります。


Facebookによると、タイムカードは既存製品の数分の1のコストでタイムアプライアンスを構築できるうえ、原子時計を水晶発振器に変えることでより安価にするなどの調整が可能とのこと。GitHub内ではタイムカードの仕様以外にも、タイムアプライアンスを構築するためのハードウェア・ソフトウェアの組み合わせ方法についても詳細に説明されています。

この記事のタイトルとURLをコピーする

・関連記事
福岡大学が独自に運用してきた日本初の公開NTPサービスを利用しないように呼びかけ中、将来的な停止で世界規模の影響が出る恐れも - GIGAZINE

物理サーバーを稼働させたまま引っ越しさせた意外な方法がネットで話題に - GIGAZINE

なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE

TP-Link製のWi-Fi中継器が高頻度のリクエスト連発で月間715MBも通信していたことが判明 - GIGAZINE

インターネットを大混乱に陥れたAmazonのAWSがダウンした理由は「キーの打ち間違い」 - GIGAZINE

in ソフトウェア,   ハードウェア, Posted by log1d_ts

You can read the machine translated English article here.