NVIDIA 大幅提升 Facebook 新一代計時系統的精準度

作者 NVIDIA

Facebook 正對開放運算計畫 Time Appliance Project (OCP TAP) 進行開源,以符合成本效益的方式,在各資料中心之間提供極為精準的計時和時間同步功能。此解決方案包括採用 NVIDIA ConnectX-6 Dx 網路介面卡 (NIC) 的計時卡,可以將絶大多數商用現成 (COTS) 的伺服器變成準確的計時設備,並搭配精確時間協定 (precision timing protocol),與資料中心的其他伺服器共用精準的計時功能。

Facebook 的計時卡結合 NVIDIA 的網路介面卡,為資料中心營運商提供了現代且經濟實惠的時間同步解決方案,不僅開源、具備安全性和可靠性,還能加以擴充。

為什麼準確的時間對資料中心如此重要

隨著應用逐步擴大且 IT 營運範圍遍及全球,要將資料中心內的不同伺服器或各大洲的不同資料中心保持資料同步,變得越來越重要也更加困難。如果是分散式資料庫,則必須追蹤事件的確切順序,以保持一致性並顯示因果關係。如果有兩個人試圖購買相同的股票,基於公平性 (與合規性),便需要確切地知道哪一筆訂單先送達。同樣地,當每小時有數千人發佈內容、數百萬名使用者對這些貼文按讚/哈/大心時,Facebook 需要知道每篇貼文獲得讚、回覆或表情符號的實際順序。

保持資料同步的方法之一,是讓每個資料中心在每次交易後,都將其更新傳送給其他資料中心,但是這種方法很快就變得不管用,因為資料中心之間的延遲太高,無法支援每小時發生的數百萬次事件。

更好的方法是讓每個伺服器和資料中心同步至準確的時間,讓彼此之間的誤差少於一微秒。如此一來,每個網站就都能夠追蹤時間,而且在與其他資料中心共享事件資料時,每個事件的順序都已經是正確的。

時間同步越準確,應用程式的效能就越快。最近的一項測試顯示,若將計時的準確度提高 80 倍 (使任何時間誤差降低 80 倍),分散式資料庫的執行速度便能加快三倍,這對於相同的伺服器硬體而言,是令人難以置信的效能提升,僅僅讓時間更準確、更可靠,就能達成如此成效。

網路介面卡和網路在時間同步中的作用

OCP TAP 專案 (以及 Facebook 對於開源計時設備的部落格文章) 準確地定義了計時卡如何接收和處理來自 GPS 衛星網路的時間訊號,即使暫時失去衛星訊號也能維持時間的準確性,並與時間伺服器共享準確時間。不過網路以及使用的網路介面卡也至關重要。

圖一: OCP 計時卡可維持準確的時間,並與 NVIDIA ConnectX-6 Dx 等支援 PPS 輸入/輸出的網路介面卡共享 (來源:Facebook 工程部落格)

時間設備中的網路介面卡必須具有每秒脈波數 (PPS) 連接埠才能連接計時卡,以確保計時卡和網路介面卡之間的每個時間伺服器都保持準確的時間同步,準確到誤差僅幾奈秒內。ConnectX-6 Dx 是首批支援此技術、每秒 25/50/100/200 GB 的現代網路介面卡之一。這款網路介面卡還能篩選和檢查傳入的 PPS 訊號,並透過特定應用積體電路 (ASIC) 中的硬體,在內部保持時間的準確性和一致性。

準確度達次微秒級的計時設備可以使用網路時間協定 (NTP),與數百台常規伺服器共享時間,或使用精確時間協定 (PTP) 與數千台伺服器共享。由於網路會增加時間訊號的延遲,所以 NTP 和 PTP 時間標記封包可以測量雙向的傳輸時間、干擾和延遲的因素,並計算每個伺服器上的正確時間 (PTP 因為更準確所以漸漸取代 NTP)。

圖二: NVIDIA ConnectX-6 Dx 搭配 PPS 輸入/輸出連接埠,可與計時卡直接進行時間同步,也可在硬體中執行封包的精準硬體時間標記

另一種選擇是使用軟體解決方案進行時間標記,但以現今的速度運用軟體進行時間標記的結果太難以預測且不準確,甚至不可能達成,也可能因為壅塞或 CPU 干擾而導致高達數毫秒的差異。相反地,ConnectX-6 Dx 網路介面卡和 BlueField-2 資料處理器在傳入的封包送達前,和傳出的封包傳抵網路之前,就會立即套用硬體時間標記,速度高達每秒 100 GB。即使在網路負載非常大的情況下,ConnectX-6 Dx 也能以少於 4 奈秒的時間標記差異,對每個封包進行時間標記。其他大多數具有時間功能的網路介面卡只標記了部分封包,且在準確度上具有更大的差異,網路流量大時,其時間標記的精準度也會降低。

NVIDIA 網路提供來自商用網路介面卡可達到最精準的延遲測量功能,因此可在所有伺服器上達到最準確的計時,應用程式時間差通常少於 1 微秒。更精準的網路計時也表示每個伺服器上的計時會更準確,因此能加快分散式應用程式的效能 (以及讓每個人獲得更多 Facebook 的「讚」)。

圖三: 在使用 OCP 時間伺服器和 NVIDIA 網路介面卡或資料處理器部署 NTP 或 PTP 時,可向資料中心的所有伺服器傳送極為準確的時間

適合所有人的準確時間同步功能

OCP TAP 可維持精準、正確的計時,且任何組織皆可取得。來自 Facebook、NVIDIA 和 OCP 的開放計時伺服器和開放式管理工具提供易於採用的方法,讓每個人都可以像超大規模公司一樣使用。

NVIDIA 提供具備精準計時功能的網路介面卡和資料處理器 (DPU),可提供精準計時設備所需的超精確時間標記和網路同步功能。如果使用 BlueField 資料處理器,便能在其 Arm 核心上執行 PTP 堆疊,將時間堆疊與其他伺服器軟體隔開、不斷驗證伺服器內的時間準確性,並持續計算整個資料中心綁定的最大時間誤差。

雲端服務和資料庫已經增加了以時間為基礎的新指令和 API,以便充分利用更好的計時伺服器和時間同步功能。這項解決方案共同開創了更準確的計時新紀元,能夠提升分散式應用的效能,並實現雲端和企業的新型解決方案。

有關 OCP TAP 的詳細資訊,包括規格、示意圖、機制、物料清單和原始碼,請參閱 www.ocptap.com