天天看點

區域網路SDN硬核技術内幕 26 精準診斷 —— 網絡可視化 (上)

前面,我們介紹了RDMA技術的應用場景和基本機制、通過以太網承載RDMA的RoCE技術,以及如何保證RoCE的傳輸效率。

讓我們再做一個簡短的小結:

大規模分布式存儲與計算的需求催生了RDMA技術,它可以大幅度提升計算資源效率。但基于IB的RDMA的封閉性以及高成本,使得工程師們設計了RoCE協定,通過以太網進行RDMA傳輸,并在以太網交換機中引入PFC和ECN,在兩端伺服器/虛拟機作業系統引入RCM機制,極大降低以太網丢包機率,保障RoCE的傳輸效率。

但是,前面提到,以太網産生丢包的原因是多方面的,光纖劣化、不合理的QoS隊列設定以及交換機本身緩存錯誤,都有可能造成開啟了RoCE各特性仍然産生丢包。

此外,網絡中會産生很多所謂的“微突發”(Micro Boost),也就是極小的突發流量,如果造成短時擁塞,觸發流量整形,也會大大增加瞬間資料包的延遲,以及抖動現象,這也會降低RoCE的傳輸速率。

是以,我們需要一種機制,在資料中心中實時監測以太網的丢包、時延和抖動。

熟悉傳統網絡技術的同學可能會問,在SNMP協定中不是可以采集以太網交換機各個接口的資料包傳輸速率、收發包數量嗎?

但是,SNMP有着一些固有的限制。

首先,SNMP的采樣率是比較低的,最高難以超過10秒一次。這會丢失很多資訊,譬如時間機關在亞毫秒的微突發。

要知道,目前主流的資料中心交換機晶片的緩存能力在16MB-64MB之間,而伺服器到交換機的端口速率為10Gbps/25Gbps,交換機之間互聯的速率更是達到了100Gbps。以主流的交換機晶片Trident 3 X5為例:

TD3 X5 (SKU為BCM56873)有80個25G接口,交換機廠商一般開發為48個25G + 8個100G。它的緩存能力為32MB,相當于256Mbit。對于整機的交換能力而言,它隻能夠緩存256Mb/2000000Mbps = 0.000128秒的資料包。也就是說,在極端的情況下,每個端口産生128微秒的微突發,将使得交換晶片的緩存被寫滿,而産生丢包。

更為可怕的是,由于交換機對于超出QoS門限的預設行為為尾丢棄(Tail Drop),這種機制會導緻所有丢包的TCP均在同一時間發起重傳,造成網絡的擁塞進一步惡化。

顯然,由于SNMP根本無法檢測這種亞毫秒級别的微突發,是以也無從診斷丢包原因,并給出解決方案。

我們需要一種新的代替SNMP的網絡監測機制,最好是能鑽到交換機晶片内部去檢視緩存使用量、各端口收發速率、丢包率和轉發時延,像精确的醫學診斷那樣。

區域網路SDN硬核技術内幕 26 精準診斷 —— 網絡可視化 (上)

事實上,早在2012年,交換機晶片廠商Marvell就提出了一種“包守恒算法”—— iPCA (Packet Conservation Algorithm for Internet ),宣稱可以通過特定算法定位網絡中的丢包。但由于該機制過于複雜,極少有商用案例。目前,該技術已經瀕臨淘汰,采用該技術的廠商,絕大多數也被排斥出市場的主流玩家圈子,隻能通過非正當的技術以外的競争手段擷取份額。而首先提出該技術的Marvell,也逐漸退出高端交換機晶片市場,隻有盒式裝置基于降成本考慮而采用。

目前,業界最火熱的主流監測技術,叫帶内網絡遙測(Inband Network Telemetry),縮寫為INT。

在下一期中,我們将詳解INT的具體實作。