去年4月初,英特爾發表第二代Xeon Scalable系列處理器,同時,也推出新一代的乙太網路控制器與網路卡,名為Ethernet 800系列(研發代號為Columbiaville),特色是支援100GbE,能將伺服器的網路頻寬提升至企業現行部署的10倍,並且增加新的網路處理技術:應用裝置佇列(Application Device Queues,ADQ),原有的動態設備個人化(Dynamic Device Personalization,DDP)也予以強化,而所針對的市場需求,主要是雲端服務、電信、儲存、企業等領域的大量資料搬移作業。

當時該公司僅公布Ethernet 800系列的乙太網路控制器的規格,並預告第三季將投入生產。

可惜的是,直到今年6月,英特爾尚未進一步揭露這系列網路卡的更多詳細資訊。關於實際的產品型號命名,我們僅在Xeon產品與資料中心副總裁暨總經理Lisa Spelman的簡報,看到他們在ADQ效能測試組態提到網路卡的型號是E810-CQDA2。

不過,我們最近在搜尋相關消息時,發現英特爾在網路卡支援頁面列出的支援機型當中,竟出現E810-CQDA2與3款同為E810開頭的型號,極有可能是Ethernet 800系列的網路卡。

從去年第一季到現在,英特爾仍陸續在幾個活動介紹Ethernet 800系列,例如,4月Data-Centric Innovation大會、Interconnect Day,10月的Networking Field Day,以及Virtual Technology Conference,還有今年五月舉行的Partner Connect大會,但大多著重在ADQ與DDP的介紹與成效。

在英特爾最初發表時,他們強調ADQ可協助提升應用程式反應時間的穩定性,能改善應用程式的效能與穩定性,以便符合服務等級協議的要求。

舉例來說,若用於記憶體資料庫系統Redis,同樣是搭配第二代Xeon Scalable處理器與Ethernet 800系列網路卡的伺服器,啟動ADQ之後,隨著連線數量的增加,整個系統對於應用程式延遲的可預測程度(predictability)會超過50%,延遲的縮減能低於45%的程度,而在吞吐量的表現上,也可提升30%。

而在DDP技術的強化上,也是Ethernet 800系列的特色之一,可以改善網路卡的封包處理效率,再加上本身支援iWARP與RoCE v2,而能善用這兩種遠端直接記憶體存取機制(RDMA),支撐新服務,對於延遲較為敏感的工作負載也能更快處理。

以目前英特爾公布的資料來看,Ethernet 800系列僅揭露了乙太網路控制器的規格,像是晶片型號E810-CAM2、E810-CAM1、E810-XXVAM2,I/O介面支援PCIe 3.0和4.0,可提供100GbE、50GbE、25GbE、10GbE的網路埠;而在網路最佳化與通訊協定的支援上,Ethernet 800系列乙太網路控制器,除了英特爾發展的ADQ和DDP,以及iWARP、RoCE v2等協定,也支援Intel Ethernet Adaptive Virtual Function(AVF),以及網路時間精確協定(PTP)/IEEE 1588 v1與v2,而在SR-IOV的I/O虛擬化應用上,可支援256個虛擬功能(VF)。其中的AVF和PTP,英特爾在今年推出的XXV710-DA2T,也內建相關支援,以及128個虛擬功能。

新增應用裝置佇列,可針對高度優先應用程式提供專屬傳輸便道,以便縮短延遲與提高資料吞吐量

ADQ到底是什麼?時任英特爾資料中心事業群副總裁暨連線事業群高效能交織網路部門總經理Mike Zeile,也在他們公司的部落格提出解釋。他認為,ADQ是一種關於佇列、優先順序排列,以及操縱的技術,能夠改善應用程式的效能與可預測性。它能將應用程式流量進行過濾與隔離,並放置在特定硬體的專屬通道的佇列上,而這些管道能以最佳化的方式連結到應用程式專用的執行緒,這麼一來,就能增加應用程式反應時間的可預測性,減少應用程式延遲,並且改善應用程式吞吐量。

他認為,ADQ就像高速公路上的車輛流量導引。舉例來說,如果我們想要在尖峰時間到達機場,可能有好幾個選項,但能夠多快抵達往往需根據路況的好壞而定,因此,可能會遲到而趕不上航班,因此,我們必須考量到花最久時間抵達的情況,確保我們可以趕上航班;不過,如果能有一條專屬路徑且不受到干擾,我們就可以精準地預測行車時間,就能更快抵達機場,並且節省在機場等待的時間,而這也是ADQ針對網路連線的處理所帶來的功能,為高度優先的應用程式流量提供一個專屬、快速的通道。

   

不過,上述的說法,還是很抽象,我們在英特爾公布的ADQ效能測試解決方案與技術簡介文件當中,看到更進一步的解釋。當中提到,它是一種針對系統層級網路輸出入效能的開放技術,可以改善應用程式反應的可預測性,因此,資料中心能以有成本效益的方式來維持穩定度。

在實際的作法上,ADQ使用了佇列處理與流量形塑,可針對關鍵應用程式的乙太網路傳輸來進行處理。對於應用程式的執行,我們只需同樣使用標準作業系統網路堆疊與介面,並搭配英特爾硬體技術,就能改善效能。

就Ethernet 800網路卡而言,本身已內建2048個專用的硬體佇列,可設定為專屬的ADQ佇列或用於標準流量的處理。因此,系統管理者針對個別應用程式的需求來指定佇列,並讓更多佇列用於高度優先的應用程式,確保它們獲得可預期的高效能。

而在應用程式執行緒與裝置佇列之間建立專屬的管道,ADQ不僅能減少資源爭奪,也能大幅減少或避免同步作業,像是鎖定或多執行緒共享。此外,ADQ使用輪詢(Polling)的方式,以減少中斷處理與上下文交換的次數,而能降低網路流量混亂的狀況。

至於在使用相同軟體硬體的配置之下,為何啟用ADQ卻能帶來顯著的傳輸效能改善?英特爾表示,關鍵在於它如何在資料中心環境預防網路流量的壅塞,他們認為,ADQ就像在高速公路保留一條條便道給那些前往機場的旅客,我們不必將這些管道與前往其他地方的流量共享,因此,不會導致旅程被尖峰流量耽擱。而且,ADQ能讓軟體應用程式的保留管道或佇列,直通資料中心的目的硬體設備,而不需與其他應用程式共享或競爭。

整體而言,ADQ的目標是確保高度優先的應用程式,透過動態減少抖動、干擾,來獲得可預期的高效能。相對地,若應用程式對於網路效能的表現無法預測,整體性能可能就會受到很大的限制,就像資料應用程式的開發者,如果不知道花多少時間才能接收到所要的資料,可能就會用最糟的狀況來設計。

英特爾表示,網路卡若要達到這樣的效能等級,過去只能採取的作法,是略過系統核心、基於特定應用程式的專屬TCP/IP軟體堆疊,以使用者模式來進行網路處理(user-mode Networking)。現在有了ADQ,如今也能做到核心模式的網路(kernel-mode Networking)。而核心模式網路是開放原始碼,並且繼承了Linux系統核心的強化特色,像是eBPF能搭配容器、netfilter與其他TCP強化。

也因此,若要啟用ADQ,除了需要安裝Intel的Ethernet 800系列網路卡與驅動程式,也需要搭配較新版本的Linux系統核心(4.19),而英特爾已將關鍵修補程式的Linux系統核心提交到Linux上游,促成ADQ,Linux社群後來也接受這些修補,於4.19版的系統核心納入。因此,在標準的Linux作業系統當中,我們可以在iproute2、traffic control(TC)、ethtool、cgroup等工具,設定ADQ。至於其他作業系統對於ADQ的支援,英特爾表示,還在開發當中。

而關於應用程式的支援上,Ethernet 800系列與ADQ鎖定的第一批應用程式,主要是Nginx、Memcached、Radis、Aerospike。

英特爾表示,在多數使用案例當中,獨立軟體開發商只需加入一些程式碼(50行以內),就能啟用ADQ,不過,若是單一執行緒的應用程式,像是Redis或是Netperf,就不需要修改。目前他們針對Redis、Memcached提供了最佳化設定指南,讓系統管理者將ADQ指派給那些難以容忍延遲的應用程式。

而在能夠啟用ADQ的應用程式類型上,不只是網路通訊的部份,英特爾表示,儲存(例如NVMe over TCP)、容器等領域也能適用。

針對動態設備個人化的最佳化處理,提供更多功能,改善封包處理效率

英特爾在Ethernet 700系列網路卡,新增一種稱為動態設備個人化(Dynamic Device Personalization,DDP)的技術,可將少量的協定加入韌體的預設組合,到了Ethernet 800系列,讓更多協定能夠加入DDP輪廓(profile)的封裝,進而強化DDP的成效。英特爾表示,Ethernet 800系列的韌體會在驅動程式初始執行的階段,載入1個改良的DDP輪廓,而這個概況搭配了多個特定工作負載專屬的協定,可提供更多使用彈性。

如果我們在一套系統當中同時使用多張Ethernet 800系列網路卡,每一張網路卡的執行管線流程,均可運用不同的DDP輪廓,獨立地進行程式化,而不需要重新載入韌體映像。

以預設的DDP輪廓而言,支援常用的協定與佇列組態,像是VXLAN、GENEVE、VXLAN-GRE、NVGRE等網路隧道協定,都是在網路虛擬化層疊(Network Virtualization OverLayers)應用所採行的。至於強化的DDP輪廓,則會提供專屬領域的協定與組態選項,會在系統搭配特定裝置時載入,以提供額外的功能,而且,這些封裝的開發不會受限於產品本身的壽命,可支援新的協定。

Ethernet 800系列網路卡所支援的DDP功能有哪些?英特爾表示,可特別針對網路功能虛擬化(NFV),以及網路邊緣的應用,改善工作負載的最佳化處理。

英特爾為何要在網路卡當中加入DDP技術?Mike Zeile也在英特爾的部落格文章提出解釋。最主要的理由在於,網路邊緣的處理、網路功能虛擬化、資料中心安全加密的需求,使得網路協定的數量顯著增加,對於網路卡而言,所需要支援的通訊協定數量也跟著大大增加,才能強化傳輸效率與效能。

為了因應增加的通訊協定,網路控制器與網路卡都需要變得可程式化,以便在預設的協定支援當中,去進行建構或修改,符合部署時的特定需求。

  

而有了DDP,網路卡就能夠做到動態重新設定封包處理的流程,隨需因應特定的協定使用狀況。舉例來說,在應用系統執行期間,我們如果能在網路卡上,增加新的封包處理流程組態剖析能力,即可在伺服器不需重新設定或開機的狀況下,讓DDP得以更深入地檢視封包,進而將這些資料以更快、更低延遲、更大吞吐量的方式,導引到目的地,並且能以更低的CPU使用率來處理這些作業,將資源保留給其他重要的工作。

DDP實際的成效如何?英特爾2017年在實驗室進行了寬頻遠端存取伺服器(BRAS)的匯聚轉發測試,來進行驗證,他們發現,對於網路上傳處理的作業,DDP的效能提升幅度可達到70%。

產品資訊

Intel Ethernet 800系列
●原廠:Intel
●建議售價:廠商未提供
●網路介面卡:E810-CQDA1、E810-CQDA2、E810-XXVDA2、E810-XXVDA4
●網路控制器:E810-CAM2、E810-CAM1、E810-XXVAM2
●支援網路介面:1GbE/10GbE/25GbE/50GbE/100GbE
●支援儲存網路協定:iSCSI、SMB Direct、iSER、NVMe over RDMA(iWARP、RoCEv2)、SPDK、NVMe over TCP
●進階功能:Application Device Queues(ADQ)、Dynamic Device Personalization(DDP)

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商】


Advertisement

更多 iThome相關內容