本文節(jié)選自《DetectingTroubleshooting, and PreventingCongestion in Storage Networks 存儲(chǔ)網(wǎng)絡(luò)中擁塞處理》
MAC Address Learning
學(xué)習(xí)連接到遠(yuǎn)程VTEP 的設(shè)備的MAC 地址有兩種常見方法。第一種方法使用基于組播的泛洪學(xué)習(xí)機(jī)制。第二種方法使用多協(xié)議邊界網(wǎng)關(guān)協(xié)議(MPBGP)以太網(wǎng)VPN(EVPN)。無論VTEP 如何學(xué)習(xí)MAC 地址,數(shù)據(jù)路徑保持不變,因此擁塞管理也保持不變。
Lossless Traffic over VXLAN
VXLAN 可根據(jù)IP 標(biāo)頭中的DSCP 字段對(duì)流量進(jìn)行分類,并將其分配到無損隊(duì)列,從而傳輸無損流量。前面有關(guān)第3 層PFC 的章節(jié)詳細(xì)介紹了這一方案。
根據(jù)以太網(wǎng)CoS 字段對(duì)流量進(jìn)行分類以實(shí)現(xiàn)第2 層PFC 的分類方案不足以通過VXLAN 傳輸無損流量,因?yàn)镮EEE 802.1Q VLAN 標(biāo)頭不會(huì)在VXLAN 隧道中保留,因此會(huì)丟失CoS 值。
VXLAN Encapsulation
如圖7-25 所示,入口VTEP 會(huì)將原始IP 報(bào)頭中的DSCP 值復(fù)制到VXLAN 封裝數(shù)據(jù)包的外部報(bào)頭中。對(duì)于沒有IP 報(bào)頭的第2 層幀,外部數(shù)據(jù)包的DSCP 字段來自表7-1 中說明的CoS 到DSCP 映射。
VXLAN Decapsulation
如圖7-25 所示,出口VTEP 會(huì)將外部VXLAN 數(shù)據(jù)包中的DSCP 值復(fù)制到解封裝報(bào)頭的IP 報(bào)頭中。這被稱為統(tǒng)一模式,是Cisco Nexus 9000 交換機(jī)的默認(rèn)行為。如果需要,DSCP 字段值可以從內(nèi)部IP 包頭復(fù)制到解封裝數(shù)據(jù)包。這稱為管道模式。
Figure 7-25DSCP and ECN values during VXLAN encapsulation and decapsulation
Congestion Notification over VXLAN
在入口VTEP,入口數(shù)據(jù)包的ECN 值被復(fù)制到VXLAN 封裝數(shù)據(jù)包的外部報(bào)頭。在出口VTEP,ECN 值總是從外部VXLAN 數(shù)據(jù)包復(fù)制到解封裝報(bào)頭的IP 報(bào)頭,而不管是統(tǒng)一模式還是管道模式。
Flow Control and Congestion Notification with VXLAN
對(duì)于VXLAN 來說,無損流量有兩個(gè)考慮因素。首先是實(shí)現(xiàn)無損網(wǎng)絡(luò)功能的逐跳流量控制(PFC)。這是強(qiáng)制性的。第二個(gè)可選考慮因素是,當(dāng)檢測(cè)到入口和出口VTEP 之間出現(xiàn)擁塞時(shí),通知終端設(shè)備(ECN)。
請(qǐng)參見圖7-26。目標(biāo)-1(源)向主機(jī)-1(目的)發(fā)送流量。通過將無損流量分類為CS3 的DSCP 值并將其分配到無損隊(duì)列,使用PFC 啟用了逐跳流量控制。由于入口VTEP-1 會(huì)將原始數(shù)據(jù)包中的DSCP 值復(fù)制到外層報(bào)頭,因此將CS3 標(biāo)記的流量分配到脊柱交換機(jī)上的無損隊(duì)列可在流量被封裝到VXLAN 隧道時(shí)實(shí)現(xiàn)無損行為。
在出口VTEP-6 上,外部報(bào)頭中的DSCP 值會(huì)被復(fù)制到解封裝數(shù)據(jù)包中。因此,將CS3 標(biāo)記的流量分配到所有設(shè)備上的無損隊(duì)列可實(shí)現(xiàn)無損行為。這與非VXLAN 環(huán)境或非路由第2 層網(wǎng)絡(luò)的行為相同。與VXLAN 的唯一區(qū)別在于如何將流量分類以分配到無損隊(duì)列。
Figure 7-26PFC and ECN with VXLAN
對(duì)于擁塞通知,入口VTEP-1 會(huì)將原始報(bào)頭中的ECN 值保留到封裝數(shù)據(jù)包中。如果骨干交換機(jī)(或VXLAN 隧道路徑中的任何交換機(jī))發(fā)生擁塞,它會(huì)在外報(bào)頭中用CE 標(biāo)志(b'11')標(biāo)記有ECN 功能的數(shù)據(jù)包(b'01'或b'10')。骨干交換機(jī)可能不知道IP 數(shù)據(jù)包屬于VXLAN 隧道,也不知道數(shù)據(jù)包中還有另一個(gè)IP 報(bào)頭。
因此,它們只標(biāo)記外部報(bào)頭。出口VTEP 會(huì)將外部報(bào)頭中的ECN 值復(fù)制到解封裝數(shù)據(jù)包中。當(dāng)目的地收到這個(gè)CE 標(biāo)記的數(shù)據(jù)包時(shí),它會(huì)根據(jù)上層協(xié)議(如RCM)的功能做出反應(yīng)。
Congestion Management in VXLAN
如上一節(jié)所述,將流量分類并分配到無損隊(duì)列可保持流量的無損行為。這種配置必須在所有設(shè)備上保持一致,以保持端到端的無損行為。
Note the following points:請(qǐng)注意以下幾點(diǎn):
1. 了解擁塞:?jiǎn)⒂肞FC 后,擁塞會(huì)在VXLAN 中蔓延,如前幾節(jié)所述。當(dāng)出口VTEP(或葉子交換機(jī))的隊(duì)列開始填滿時(shí),它會(huì)通過發(fā)送"暫停"幀來減緩不丟棄類中的入口流量。因此,骨干交換機(jī)會(huì)減慢該流量類中的所有流量,無論其是否采用VXLAN 封裝。回顧一下,對(duì)于PFC 來說,數(shù)據(jù)包中添加多少報(bào)頭并不重要。它只是使用DSCP 字段對(duì)流量進(jìn)行分類和流量控制。擁塞擴(kuò)散的最終狀態(tài)與圖7-8 中的解釋類似。
2. 檢測(cè)擁塞:擁塞檢測(cè)方法與前一節(jié)中的解釋類似。檢測(cè)命令應(yīng)考慮到VTEP 上的DSCP-CoS 映射。
3. 擁塞故障排除:擁塞故障排除方法仍與前一節(jié)所述類似。在查找擁塞源的同時(shí),要關(guān)注交換端口或接口上的流量類別。特別是在骨干交換機(jī)上,不要被IP 地址誤導(dǎo),因?yàn)閂XLAN 封裝數(shù)據(jù)包的外層報(bào)頭中包含入口和出口VTEP 的IP 地址。在同一VXLAN 隧道中傳輸多個(gè)流量(源IP 和目的IP)。因此,應(yīng)重點(diǎn)監(jiān)控?zé)o丟棄流量類的流量和暫停幀,而不是流量。
4. 擁塞預(yù)防:前面介紹的擁塞預(yù)防功能也適用于VXLAN。如果終端設(shè)備支持基于ECN 值的操作,那么無論VXLAN 底層網(wǎng)絡(luò)如何,它都能發(fā)揮同樣的作用。例如,RoCEv2 流量可通過VXLAN 傳輸,如果終端設(shè)備支持RCM,它也可與VXLAN 一起工作。
Summary
默認(rèn)情況下,以太網(wǎng)通過丟棄幀(稱為有損以太網(wǎng))來處理?yè)砣⒁揽可蠈訁f(xié)議(如TCP)重傳丟失的數(shù)據(jù)包。相反,無損以太網(wǎng)使用逐跳流量控制機(jī)制,通過發(fā)送暫停幀來減慢或停止傳輸。以太網(wǎng)鏈路上的所有流量都可以使用LLFC 進(jìn)行流量控制。或者,PFC 可以選擇性地只對(duì)特定流量類別進(jìn)行流量控制。PFC 允許在同一鏈路上傳輸無損和有損流量,為融合以太網(wǎng)網(wǎng)絡(luò)奠定了基礎(chǔ)。
此外,ETS 為不同流量類別提供最低帶寬保證,DCBX 簡(jiǎn)化了終端設(shè)備和交換機(jī)的配置。通過使用OSI 模型第2 層以太網(wǎng)VLAN 標(biāo)頭中的PCP/CoS 字段對(duì)流量進(jìn)行分類,可以啟用PFC。這種第2 層PFC 適用于FCoE 和RoCE。另外,對(duì)于RoCEv2(可路由RoCE),可在第3 層使用IP 標(biāo)頭中的DSCP 字段對(duì)流量進(jìn)行分類,從而啟用PFC。
無損以太網(wǎng)網(wǎng)絡(luò)容易出現(xiàn)與光纖通道結(jié)構(gòu)類似的擁塞,因?yàn)閮烧叨际褂弥鹛髁靠刂啤S捎诼趴铡㈡溌防寐蔬^高、比特錯(cuò)誤或缺乏足夠的緩沖區(qū),擁塞也會(huì)在無損類中蔓延。同樣的擁塞檢測(cè)、故障排除和預(yù)防方法也適用于無損以太網(wǎng)網(wǎng)絡(luò)。但無損以太網(wǎng)交換機(jī)可能不會(huì)報(bào)告所有相關(guān)指標(biāo)。
值得注意的例子是TxWait 和RxWait 指標(biāo),在撰寫本文時(shí),Cisco Nexus 9000 交換機(jī)和UCS 服務(wù)器上還沒有提供這些指標(biāo)。下一個(gè)辦法是使用暫停幀數(shù)來檢測(cè)擁塞情況。但是,由于這些指標(biāo)不會(huì)以時(shí)間和日期戳存儲(chǔ)在交換機(jī)上,因此使用外部監(jiān)控平臺(tái)可以簡(jiǎn)化擁塞檢測(cè)和故障排除。
在使用融合以太網(wǎng)網(wǎng)絡(luò)時(shí),有損類中的流量可能會(huì)影響無損類中的流量,這取決于問題是如何出現(xiàn)的。無論使用專用還是共享存儲(chǔ)網(wǎng)絡(luò),都要監(jiān)控每個(gè)端口級(jí)別和每個(gè)類別級(jí)別的流量利用率和擁塞指標(biāo)。
利用暫停超時(shí)和PFC 看門狗可以實(shí)現(xiàn)無損以太網(wǎng)網(wǎng)絡(luò)擁塞恢復(fù)。這些功能可在超時(shí)間隔后無法發(fā)送到目的地時(shí)丟棄幀,從而幫助釋放緩沖區(qū),使受害設(shè)備擺脫擁塞影響。
如果終端設(shè)備支持RoCEv2 擁塞管理,RoCEv2 網(wǎng)絡(luò)還能通過向終端設(shè)備發(fā)出網(wǎng)絡(luò)擁塞通知而獲益,從而降低發(fā)送方的流量速率。無論采用哪種預(yù)防機(jī)制,都不應(yīng)將這些機(jī)制作為長(zhǎng)期解決方案。監(jiān)控網(wǎng)絡(luò),找到根本原因,并盡快做出修正。
最后,請(qǐng)注意許多無損以太網(wǎng)網(wǎng)絡(luò)相對(duì)較新。隨著網(wǎng)絡(luò)的發(fā)展和/或成熟,擁塞會(huì)變得更加嚴(yán)重。由于光纖通道Fabric 已大規(guī)模使用了幾十年,因此必須從中吸取經(jīng)驗(yàn)教訓(xùn),并將這些知識(shí)應(yīng)用到無損以太網(wǎng)網(wǎng)絡(luò)中,以主動(dòng)預(yù)防擁塞問題。
審核編輯:劉清
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5460瀏覽量
172414 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2656瀏覽量
100000 -
DSCP
+關(guān)注
關(guān)注
0文章
2瀏覽量
1353 -
存儲(chǔ)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
31瀏覽量
8130 -
VxLAN
+關(guān)注
關(guān)注
0文章
24瀏覽量
3855
原文標(biāo)題:以太網(wǎng)存儲(chǔ)網(wǎng)絡(luò)的擁塞管理連載(七)
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論