NVIDIA が高精度な時刻同期機能をさらに高め、Facebook の次世代の時間管理を実現

投稿者: NVIDIA Japan

NVIDIA ConnectX NIC が、ソーシャル ネットワークのミッションクリティカルな分散アプリケーションに対応する高精度な時刻同期を実現

Facebook は、Open Compute Project Time Appliance Project (OCP TAP) をオープンソース化しています。OCP TAP により、データ センター間での非常に正確な時間管理や時刻同期が、高い費用対効果で実現されます。このソリューションでは、ほぼすべての商用オフ ザ シェルフ (COTS) サーバーを正確なタイム アプライアンスに変えることができるタイム カードが使われていますが、このタイム カードは高精度時刻同期プロトコル ( Precision Time Protocol, PTP ) を備えた NVIDIA ConnectX-6 Dx ネットワーク カード (NIC) によって実現され、データ センター全体で他のサーバーと高精度な時間管理が共有されています。

Facebook のタイム カードと NVIDIA の NIC を組み合わせることで、データ センターの運営担当者は、安全性、信頼性、拡張性の高い、最新で手ごろな価格のオープンソースの時刻同期ソリューションが利用できます。

データセンターで時間の正確性が重要となる理由

アプリケーションがスケールアウトされ IT オペレーションが世界中に広がるにつれ、データ センター内にあるさまざまなサーバー間、または複数の大陸のさまざまなデータ センター間でデータの同期を維持しなければならない今、データの重要度が増しているだけでなく、その難易度も上がっています。データベースが分散している場合、一貫性を維持し、因果関係を示すために、イベントの順序を正確に追跡する必要があります。2 人が同じ株を購入しようとする場合、公平を期す (そしてコンプライアンスに準拠する) には、どちらの注文が最初に到着したかを確実に知る必要があります。同様に、何千人もの人々がコンテンツを投稿し、何百万人ものユーザーが 1 時間ごとにそれらの投稿を気に入り、笑い、共感する Facebook では、各投稿において、「いいね!」や返信がされた、または絵文字が使われた実際の順序を知る必要があります。

データの同期を維持する 1 つの方法は、各データ センターがトランザクション終了ごとに更新を他のデータ センターに送信することですが、1 時間あたり数百万のイベントに対応するとなるとデータ センター間の遅延が長くなりすぎてしまうため、この方法はすぐに破綻するでしょう。

より良い方法は、各サーバーとデータ センターを、互いにマイクロ秒未満の遅延で、正確な時刻に同期させることです。これにより各サイトで時間を追跡でき、他のデータ センターとイベントを共有する場合、各イベントの順序の正確さが維持されます。

時刻同期が正確であればあるほど、アプリケーションのパフォーマンスは速くなります。最近のテストでは、時間管理を 80 倍正確にすると (時間の不一致を 80 分の 1 に減らすと)、分散データベースの実行速度が 3 倍になりました。時間計測の正確性および信頼性を高くするだけで、同じサーバー ハードウェアでパフォーマンスが大幅に向上することが示されたのです。

時刻同期における NIC とネットワークの役割

OCP TAP プロジェクト (およびタイム アプライアンスのオープンソース化に関する Facebook のブログ記事) では、タイム カードが GPS 衛星ネットワークから時間信号を受信して処理する方法、衛星信号が一時的に利用できない場合でも正確な時刻を保持する方法、および正確な時刻をタイム サーバーと共有する方法を正確に定義しています。ただし、ネットワーク (および使用するネットワーク カード) も非常に重要です。

図 1. OCP タイム カードは正確な時刻を維持し、NVIDIA ConnectX-6 Dx など、PPS 入力/出力に対応する NIC と共有します (出典: Facebook エンジニアリング ブログ)。

タイム アプライアンスの NIC には、タイム カードに接続するタイムパルス/秒 (PPS) ポートが必要です。これにより、各タイム サーバーのタイム カードと NIC の間で、遅延が数ナノ秒以内の正確な時刻同期が実現します。ConnectX-6 Dx は、これに対応する初の最新 25/50/100/200 Gb/s NIC の 1 つです。また、受信 PPS 信号をフィルタリングおよびチェックし、ASIC のハードウェアを使用して内部で時間を維持することで精度と一貫性を確保します。

タイム アプライアンスでサブマイクロ秒の正確な時刻維持が可能であれば、Network Time Protocol (NTP) を使用する数百の通常のサーバーや、Precision Time Protocol (PTP) を使用する数万のサーバーと時刻維持を共有できます。ネットワークによって時刻信号に遅延が生じるため、NTP および PTP タイムスタンプ パケットは、両方向の移動時間を計測し、ジッターや遅延を考慮した上で、各サーバーで正しい時間を計算します (PTP の方が正確性がはるかに高いため、NTP からの変換が進められています)。

図 2. タイム カードとの直接時刻同期を可能にする PPS 入力/出力ポートが搭載された NVIDIA ConnectX-6 Dx は、ハードウェア内のパケットの高精度ハードウェア タイムスタンプも実行します。

もう 1 つの方法は、ソフトウェア ソリューションでタイムスタンプを付けることですが、今日の速度のソフトウェアでタイムスタンプを付けるのはあまりに予測不能で不正確なことであり、場合によっては不可能です。混雑や CPU の混乱が発生し、最大でミリ秒単位の変動が起こるでしょう。その代わりに、ConnectX-6 Dx NIC および BlueField-2 DPU では、インバウンド パケットが到着するとすぐにハードウェアのタイムスタンプを適用し、アウトバウンド パケットがネットワークに到達する直前に最大 100Gb/s の速度で適用します。ConnectX-6 Dx は、ネットワークの負荷が高い場合でも、タイムスタンプの精度の変動を 4 ナノ秒 (4ns) 未満に抑えてすべてのパケットにタイムスタンプを付けることができます。その他の時刻維持対応 NIC はほとんどが、一部のパケットにしかスタンプを付けず、精度のばらつきが大きく、ネットワーク トラフィックの負荷が高い場合タイムスタンプの精度が低下します。

NVIDIA ネットワーキングは、商用 NIC で利用できる中で最も精度の高い遅延測定を提供し、すべてのサーバー間で最も正確な時間計測を実現します。アプリケーションの時間変動は通常 1 マイクロ秒未満 (>1us) です。ネットワークの時刻維持の精度が上がるということは、各サーバーでの時間がより正確になるということであり、分散アプリケーションのパフォーマンスが高速になります (そして、Facebook 投稿者全員の「いいね!」が増えます)。

図 3. OCP タイム サーバーと NVIDIA NIC または DPU とともに NTP または PTP を導入すると、データセンター内にあるすべてのサーバーに非常に正確な時間が伝播されます。

誰にとっても正確な時刻同期

OCP Time Appliance Project により、時間管理の精度が上がって正確になり、あらゆる組織が利用できるようになります。Facebook、NVIDIA、および OCP のオープン時刻サーバーとオープン管理ツールは、ハイパースケーラーのように誰もが利用できる、簡単な導入方法を提供しています。

NVIDIA は高精度の時刻同期対応 NIC およびData Processing Units (DPU) を提供し、高精度の時刻同期アプライアンスに必要な超高精度タイムスタンプとネットワーク同期機能をもたらします。BlueField DPU を使用すれば、Arm コアで PTP スタックを実行し、タイム スタックを他のサーバー ソフトウェアから分離し、そのサーバー内の時間が正確であるかを継続的に検証し、データ センター全体の最大時間エラーを継続的に計算できます。

クラウド サービスとデータベースは、より優れたタイム サーバーや時刻同期を活用するために、時間ベースの新しいコマンドや API をすでに取り入れています。このソリューションにより、分散アプリケーションのパフォーマンスを向上させ、クラウドとエンタープライズの両方に新しいタイプのソリューションもたらし、より正確な時間管理が可能になる新時代が実現します。

仕様書、回路図、メカニック、部品表、ソースコードなど、OCP TAP の詳細については、www.ocptap.com をご覧ください。