運營大規模、快速增長的網絡需要在如何規劃、部署和運營基礎設施方面進行變革,隨著LinkedIn不斷擴張數據中心網絡,很明確的是LinkedIn不僅需要盡快地提供和建立網絡,還必須使用最簡單的方法。在沒有任何流量丟失或架構更改的情況下,添加新組建、新功能或新服務是極具挑戰性的。
開放性:盡可能使用社區的工具獨立性:避免開發對單一廠商或廠商驅動架構的依賴簡單性:專注于尋找最簡單、容易和模塊化的基礎設施工程方法。在我們的網絡和協議中遵循RFC 1925第12條規則:“對設計協議而言,僅當無法減少什么,而不是無法增加什么,才算完美。”對于上面的三個維度,我們最近添加了一個新的維度:可編程性。能夠近實時地修改數據中心架構的行為,而無需接觸設備配置,這使得我們能夠調整架構,以最佳的方式適應應用和業務需求。這使得我們的網絡運營和現場團隊更專注于運行網絡,而不是管理工具和配置,從而進一步釋放創新能力。可編程性帶來的好處包括能夠按需優先處理流量分配、負載均衡或安全狀態,并提高交付的敏捷性和響應速度。
為了實現這些目標,我們正在分解我們的網絡,以一種允許我們修改和管理網絡且無需停機的方式分離軟件和硬件,并轉向軟件驅動的網絡架構。
單SKU數據中心在我們最近發布的Altair項目的博客中,我們解釋了轉向單SKU數據中心的模式,特別是基于Falco開放交換平臺。我們使用一個3.2 Tbps交換機作為我們的leaf-spine拓撲的不同層的構建塊,讓他們在一個統一的軟件棧上運行。
這種單SKU數據中心使我們能夠從基于大型機箱的復雜性轉移到一個簡單的單一模塊,該模塊是可重復的,在擴展時可以增加數量。然而,構建簡單的結構不會完全消除復雜性,它只是將復雜性轉移到網絡中的其他方面。
在我們的案例中,復雜性是在幾個標準Linux發行版之間的軟件堆棧:可以在主機和路由器上運行的便攜式控制平面,為我們提供硬件擴展軟件的功能。硬件平臺以Open19服務器平臺為基礎,它通過snap-on電源和數據傳輸速度提高了我們的機架集成度,數據傳輸速度比當前生成的硬件快2-3倍。
另一方面,特征和控制被遷移到代碼中,而不是復雜的專用硬件設備。
自定義網絡我們正在研究一個新的概念:我們將如何建立網絡。當我們連接系統和網絡元素時,我們希望網絡以更簡單的方式工作。
自定義網絡是一些列開箱即用的功能,使網絡元素能夠在沒有預配置或人為干預的情況下進行動態初始化和構建。網絡元素以自動的方式發現并定義其角色和功能,一旦交換機接線,它就能開始工作,不僅要求低而且零配置。
網絡元素的第一步是在網絡中找到它的位置、角色和功能。它必須找到自己在拓撲中的位置,以便開始在線路上推送數據包。雖然大多數協議可以鄰接,并通過網絡攜帶策略,位置感知仍然是一個關鍵的功能,使我們的架構在很大程度上能夠自配置。
傳統上,網絡依靠帶外網絡通過控制臺或帶外以太網來配置和執行基本設置,通過DHCP和TFTP從外部獲取配置,并使用這些配置以發現操作者的意圖并提供某種形式的身份。配置通常由腳本提前準備,這些腳本提供一些尋址并在模板中設置唯一值以使得設備開始運行。
另一方面,自定義網絡一旦接線,立即開始編程流表并開始轉發。它不需要任何預配置或任何靜態映射布置。它發現其相鄰的鄰居在庫存系統中注冊它自己,更新具有所需信息的中央存儲庫,并從完全動態模式遷移到注冊和確定性模式。
謀求更好的控制平面LinkedIn數據中心與其他超大規模數據中心一樣,是通過形成Clos拓撲的一系列點對點鏈路連接的服務器和中間網絡設備的集合。目前,我們利用自動配置的鏈路本地地址來建立控制平面以實現IPv6和IPv4的路由;因此,不需要在交換機接口上準備IP配置。我們希望使我們的控制平面支持自定義網絡,一旦設備擱置就開始轉發。
這種控制平面的要求非常簡單直接:
快速、簡單的分布式控制平面沒有標簽、鈴聲或哨聲(沒有黑客,沒有策略)自動發現鄰居并構建RIB零配置必須使用TLV,向后兼容和可擴展性必須攜帶MPLS標簽(每個節點/接口)除了上述之外,如果我們考慮物理拓撲結構或網絡如何連接,作為自定義網絡的意圖和期望狀態,我們希望確保當前的應用狀態能夠被發現,并應用于檢測不符合預期模式的任何布線或物理配置錯誤。
我們將在不久發布IETF草案,概述這些基本概念,以便整個社群都能夠開啟相關方面的工作。
作者簡介:Shawn Zandi是LinkedIn的主要網絡架構師,他領導LinkedIn下一代數據中心和基礎設施架構項目以及多項工程和研究工作組,并擁有超過50個行業認證,如Russ White,CCIE,CCDE和思科認證架構師。
原文鏈接:https://www.networkcomputing.com/data-centers/linkedin’s-data-center-design-principles/448361001