想象一下,在AI訓(xùn)練、高性能計算、分布式存儲的“心臟”——數(shù)據(jù)中心網(wǎng)絡(luò)里,RoCEv2(RDMA over Converged Ethernet v2)正以驚人的速度傳輸著海量數(shù)據(jù)。它繞過了操作系統(tǒng)內(nèi)核,讓應(yīng)用直通網(wǎng)卡,速度飆升!但高速也伴隨著風(fēng)險:網(wǎng)絡(luò)一旦擁塞,數(shù)據(jù)包丟失,整個高性能應(yīng)用就可能“翻車”。這時,一個低調(diào)卻至關(guān)重要的守護者站了出來:PFC(Priority-based Flow Control,基于優(yōu)先級的流量控制)。它就像網(wǎng)絡(luò)流量的“精密剎車系統(tǒng)”,確保關(guān)鍵數(shù)據(jù)永不丟失。今天,就讓我們一起揭開PFC的神秘面紗!
什么是PFC
PFC是一種以Ethernet為基礎(chǔ)的流控機制,它允許以優(yōu)先級(Priority)為單位,控制特定優(yōu)先級類別的網(wǎng)絡(luò)流量。簡單來說,當某個優(yōu)先級的流量出現(xiàn)擁堵或包溢出時,PFC可以暫停對應(yīng)優(yōu)先級的流量,避免數(shù)據(jù)丟失,確保關(guān)鍵數(shù)據(jù)的穩(wěn)定傳輸。
PFC如何工作?一場精妙的“反壓”對話
PFC的交互本質(zhì)是接收方(Rx)向發(fā)送方(Tx)發(fā)送“暫停(Pause)” 或“恢復(fù)(Resume)” 指令。讓我們分解這個過程:
1. 場景:接收端交換機端口(或網(wǎng)卡)的特定優(yōu)先級隊列的緩沖區(qū)即將被填滿(達到預(yù)設(shè)閾值)。
2. 發(fā)出警報(Pause):
接收端檢測到擁塞的優(yōu)先級隊列;
立即構(gòu)造一個PFC Pause Frame;
在報文中明確指定需要暫停的優(yōu)先級(如優(yōu)先級3)以及需要暫停的時間長度(Pause Time);
將這個Pause Frame發(fā)送給直接相連的上游設(shè)備(發(fā)送端交換機或服務(wù)器網(wǎng)卡)。
3. 執(zhí)行剎車(Hold):
上游設(shè)備(Tx)收到PFC Pause Frame;
解析報文,得知需要暫停哪個優(yōu)先級(如優(yōu)先級3)的流量發(fā)送;
立即停止發(fā)送該優(yōu)先級的數(shù)據(jù)幀;
暫停的持續(xù)時間由報文中的Pause Time字段指定(單位是512 bit time,可換算成時間)。
4. 緩解與恢復(fù)(Resume):
接收端緩沖區(qū)被排空,擁塞解除;
接收端可以發(fā)送一個新的PFC Pause Frame,將對應(yīng)優(yōu)先級的Pause Time設(shè)置為0。這就是“恢復(fù)(Resume)”信號;
上游設(shè)備(Tx)收到Pause Time = 0的報文后,立即恢復(fù)發(fā)送該優(yōu)先級的數(shù)據(jù)幀。
PFC Pause Frame報文長什么樣呢
理解了交互,我們再來看看這個關(guān)鍵的“剎車指令”——PFC Pause Frame的報文結(jié)構(gòu)(基于IEEE 802.1Qbb標準):
關(guān)鍵字段解析:
Priority Enable Vector (2字節(jié)):這是控制開關(guān)。例如,它的值是 0x04 (二進制 0000 0100),表示只對優(yōu)先級2 (因為Bit2=1)進行流量控制。其他優(yōu)先級不受影響。
Pause Time (每個優(yōu)先級2字節(jié)):這是剎車時長。對于Priority Enable Vector中啟用的優(yōu)先級,其對應(yīng)的Time字段值表示請求發(fā)送方暫停該優(yōu)先級流量的時長。Time = 0 表示“立即恢復(fù)”發(fā)送該優(yōu)先級流量。Time >0表示暫停的時長(單位是512 bit time,在10Gbps鏈路上,1個512 bit time = 51.2 ns)。
Opcode (01-01):明確這是PFC幀,而不是普通的PAUSE幀(Opcode為00-01)。
PFC 應(yīng)用場景
PFC在實際數(shù)據(jù)中心環(huán)境中的應(yīng)用場景極為廣泛,主要包括:
AI/ML訓(xùn)練集群:保障GPU間高速RDMA通信不丟包、低延遲;
超融合基礎(chǔ)架構(gòu)/HCI:保證虛擬化存儲(vSAN, Ceph等)后端網(wǎng)絡(luò)穩(wěn)定高效;
高性能分布式存儲:確保存儲節(jié)點間數(shù)據(jù)同步的可靠性;
金融交易系統(tǒng):滿足微秒級交易延遲要求。
PFC 實戰(zhàn)測試:如何驗證你的“剎車系統(tǒng)”可靠
為了確保PFC功能的正確性和有效性,測試是非常重要的一環(huán)。以下使用信而泰測試儀表X5-400G設(shè)備對PFC功能進行測試:
測試拓撲和主要配置如下所示:
如上圖所示,測試儀模擬兩端口向一個端口發(fā)流的擁塞場景,從而來驗證DUT的PFC功能,被測設(shè)備使用華三的s9825-8C-G;
1. 占用3個端口,port1和port2用于發(fā)送QP流量,port3用于接收,使用RoCEv2向?qū)В鼓躊FC,以Priority 5 為例;
2. 配置RoCEv2 Server:配置DSCP值:40,配置ipv4地址與DUT對應(yīng),阻塞端口port3的QP Block數(shù)量設(shè)置為2;(需要保證源QP Block數(shù)量與目標QP Block數(shù)量一致)
3. 選擇流端點:勾選上server1和server2打向server3的QP block,點擊完成即可;
4. 在流模板處查看,使用向?qū)瓿膳浜蠛竽J是生成雙向流量,去使能port3發(fā)送的流量即可;
5. 先將Port 1和Port2打往Port3的線速流量運行起來,此時可以觀察到port1和port2的發(fā)送速率為100%,然后將DUT使能PFC功能后,可以觀察到兩端口流量的發(fā)送速率降速至50%;
6. 測試儀PFC報文統(tǒng)計查看,可統(tǒng)計到DUT發(fā)送的第5優(yōu)先級的PFC報文;
7. Port 1和Port 2上啟動捕獲,其中pause time包含0和65535的PFC報文。
DarYu-X/E系列網(wǎng)絡(luò)測試儀
信而泰現(xiàn)已推出X2-100G-12QSFP28、X5-400G高密度以及E2-100G-4QSFP28-Q測試模塊,均支持測試RoCEv2協(xié)議,支持100G/200G/400G的多速率以太網(wǎng)測試,信而泰的RoCEv2深度測試,為網(wǎng)絡(luò)設(shè)備商、云服務(wù)商及企業(yè)用戶提供了不可或缺的工具,有效識別瓶頸、優(yōu)化配置,極大提升RoCEv2部署信心,是推動高性能無損網(wǎng)絡(luò)從架構(gòu)設(shè)計走向大規(guī)模、高效率實際應(yīng)用的關(guān)鍵環(huán)節(jié)。