本章重點(diǎn)介紹不使用TCP 而使用無(wú)損以太網(wǎng)網(wǎng)絡(luò)的存儲(chǔ)協(xié)議,如FCoE、RoCE 和RoCEv2。第8 章"TCP 存儲(chǔ)網(wǎng)絡(luò)中的擁塞管理"主要介紹在有損以太網(wǎng)網(wǎng)絡(luò)中使用TCP 傳輸?shù)拇鎯?chǔ)協(xié)議,如iSCSI 和NVMe/TCP。
以太網(wǎng)流量控制
以太網(wǎng)流量控制有兩種類型
1. 鏈路級(jí)流量控制(LLFC):LLFC 可在直接連接的設(shè)備之間對(duì)鏈路上的所有流量進(jìn)行流量控制。LLFC 是一項(xiàng)IEEE 標(biāo)準(zhǔn)(IEEE 802.3x)。
2.基于優(yōu)先級(jí)的流量控制(PFC):PFC 可在直接連接的設(shè)備之間對(duì)特定流量類別進(jìn)行流量控制,而其他流量類別則在無(wú)流量控制的情況下繼續(xù)運(yùn)行。PFC 也是IEEE 標(biāo)準(zhǔn)(IEEE 802.1Qbb)。
LLFC 類似于光纖通道B2B 流量控制機(jī)制,它對(duì)鏈路上的所有流量進(jìn)行流量控制(第2 章"了解光纖通道Fabric 中的擁塞",光纖通道流量控制部分)。相反,當(dāng)光纖通道鏈路使用多個(gè)虛擬鏈路或電路(VL 或VC)運(yùn)行時(shí),PFC 類似于ER_RDY(或VC_RDY)流量控制機(jī)制(第6 章"在光纖通道Fabric 中防止擁塞",了解虛擬鏈路一節(jié))。在光纖通道Fabric 中,所有流量都需要無(wú)損行為,因此所有VL 都啟用了流量控制,而在以太網(wǎng)網(wǎng)絡(luò)中,只有部分流量類別受流量控制,其他類別的流量則不受流量控制。這有助于在同一以太網(wǎng)鏈路上實(shí)現(xiàn)有損和無(wú)損行為。
如第1 章"無(wú)損網(wǎng)絡(luò)"一節(jié)所述,以太網(wǎng)流量控制(或一般無(wú)損網(wǎng)絡(luò))并不能保證不丟幀。當(dāng)幀因比特錯(cuò)誤而損壞時(shí),以及當(dāng)擁塞嚴(yán)重時(shí)幀在緩沖區(qū)中長(zhǎng)時(shí)間滯留時(shí),仍然會(huì)丟棄幀。這些細(xì)節(jié)將在后面的"通過(guò)丟棄幀恢復(fù)擁塞"一節(jié)中解釋。
以太網(wǎng)流量控制如何工作?
以太網(wǎng)使用一種稱為暫停幀的特殊幀進(jìn)行流量控制。暫停幀的內(nèi)容、發(fā)送時(shí)間和發(fā)送頻率允許直接連接的發(fā)送方調(diào)整傳輸速率,以避免接收方緩沖區(qū)超限。這就避免了因接收方缺乏空閑緩沖區(qū)而造成的數(shù)據(jù)包丟失,從而實(shí)現(xiàn)了無(wú)損網(wǎng)絡(luò)。
暫停時(shí)間
暫停幀有一個(gè)稱為quanta的字段,用于表示必須停止幀傳輸?shù)某掷m(xù)時(shí)間(稱為暫停時(shí)間)。quanta值范圍在0 到65535 之間(16 位最大值為0xFFFF)。要計(jì)算暫停時(shí)間,可將quanta值乘以在鏈路上傳輸512 比特所需的時(shí)間。無(wú)論鏈路的運(yùn)行速度如何,這一方案都有助于實(shí)現(xiàn)一致的執(zhí)行。它還能確保最大暫停時(shí)間隨著鏈路速度的增加而減少,這是適應(yīng)高速鏈路上更快傳輸速率的需要。
如下式所示,要將暫停quanta轉(zhuǎn)換為秒,需要將其乘以512,再除以每秒比特的端口速度。
Pause time in seconds = (Pause quanta x 512) / Port speed in bits per second
例如,在10 GbE 鏈路上,單個(gè)暫停幀的最大暫停時(shí)間為3.355 ms((65535 x 512)/(10 x 109))。當(dāng)10 GbE 端口收到quanta值為0xFFFF 的暫停幀時(shí),可停止傳輸3.355 毫秒。同樣,100 GbE 鏈路的最大暫停時(shí)間為0.355 ms。
數(shù)據(jù)流接收器在發(fā)送非零quanta的暫停幀后,可通過(guò)兩種方式請(qǐng)求數(shù)據(jù)流發(fā)送器重新開始傳輸:
1. 等待最后發(fā)送的暫停幀所代表的持續(xù)時(shí)間。例如,10 GbE 端口只需等待3.355 毫秒。
2. 發(fā)送新的零quanta暫停幀,要求數(shù)據(jù)流發(fā)送方立即恢復(fù)傳輸。因此,零quanta的暫停幀也被稱為恢復(fù)幀或解除暫停幀。
在以下兩個(gè)條件下,因收到quanta為非零的暫停幀而處于"暫停"狀態(tài)的數(shù)據(jù)流發(fā)送方將立即恢復(fù)傳輸:
1. 暫停幀中指定的持續(xù)時(shí)間結(jié)束。例如,10 GbE 端口在接收到quanta為65535 的暫停幀3.355 毫秒后。
2.它接收到quanta設(shè)為零的暫停幀。同樣,這也可以稱為"恢復(fù)"或"取消暫停"幀。
這意味著暫停幀具有雙重用途。非零quanta的暫停幀會(huì)停止或暫停流量,而零quanta的暫停幀則會(huì)啟動(dòng)或恢復(fù)流量。
接下來(lái),讓我們了解一下這些暫停幀是何時(shí)發(fā)送的。
何時(shí)發(fā)送暫停幀?
圖7-1 顯示了交換機(jī)-1 的兩個(gè)端口之間的速度不匹配情況,這兩個(gè)端口以10 GbE 連接目標(biāo)-1,以1 GbE 連接主機(jī)-1。交換機(jī)-1 為無(wú)損流量分配緩沖區(qū),并將這些緩沖區(qū)組織到入口無(wú)丟棄隊(duì)列中。為簡(jiǎn)單起見,假設(shè)只有一種流量類別需要無(wú)損行為,則只顯示一個(gè)無(wú)丟棄隊(duì)列。
Figure 7-1Ethernet flow control with Pause Threshold and Resume Threshold
當(dāng)Target-1 開始以10 Gbps 的速度傳輸無(wú)損流量時(shí),Switch-1 只能以1 Gbps 的速度向Host-1 傳輸。流量速率的差異會(huì)導(dǎo)致幀過(guò)多,從而開始消耗交換機(jī)-1 上不丟幀隊(duì)列的緩沖區(qū)。當(dāng)交換機(jī)-1 的緩沖區(qū)填滿超過(guò)閾值(稱為暫停閾值)時(shí),它會(huì)向目標(biāo)-1 發(fā)送一個(gè)非零quanta的暫停幀。目標(biāo)-1 收到該暫停幀后,會(huì)在一個(gè)特定的時(shí)間間隔內(nèi)停止傳輸流量,該時(shí)間間隔稱為暫停時(shí)間(如上一節(jié)所述)。因此,Switch-1 的緩沖區(qū)利用率不會(huì)進(jìn)一步增加,而是隨著向Host-1 的傳輸繼續(xù)進(jìn)行而開始下降。
最終,當(dāng)Switch-1 的緩沖區(qū)利用率低于恢復(fù)閾值時(shí),Switch-1 會(huì)發(fā)送一個(gè)零quanta的暫停幀,這是目標(biāo)-1 恢復(fù)流量傳輸?shù)?a target="_blank">信號(hào)。如果在發(fā)送第一個(gè)非零quanta的暫停幀后的暫停時(shí)間內(nèi),Switch-1 的緩沖區(qū)利用率沒(méi)有降至恢復(fù)閾值以下,它將繼續(xù)發(fā)送更多非零quanta的暫停幀,以停止或暫停來(lái)自目標(biāo)-1 的傳輸,直到Switch-1 的緩沖區(qū)利用率降至恢復(fù)閾值以下。
目標(biāo)-1 最終會(huì)恢復(fù)傳輸,要么是因?yàn)樽詈笠粋€(gè)非零quanta的暫停幀中指定的持續(xù)時(shí)間已過(guò),要么是因?yàn)樗盏搅艘粋€(gè)零quanta的暫停幀。但目標(biāo)-1 較快的傳輸速率再次導(dǎo)致交換機(jī)-1 上的不丟棄隊(duì)列被填滿,并很快超過(guò)了暫停閾值。這時(shí),交換機(jī)-1 再次向目標(biāo)-1 發(fā)送非零quanta的暫停幀,同樣的事件重復(fù)發(fā)生。
最后,交換機(jī)-1 的"暫停閾值"和"恢復(fù)閾值"之間的緊密配合以及"暫停幀"(非零quanta)和"未暫停幀"(零quanta)的發(fā)送實(shí)現(xiàn)了以太網(wǎng)流量控制。
請(qǐng)注意以下幾點(diǎn):
1. 圖7-1 中的以太網(wǎng)流量控制會(huì)導(dǎo)致入口端口(連接到Target-1)和出口端口(連接到Host-1)之間的速率均衡。如果在此狀態(tài)下對(duì)鏈路進(jìn)行監(jiān)控,Host-1 鏈路上就不會(huì)有暫停幀流過(guò),而許多暫停幀會(huì)從Switch-1 流向Target-1。
2. 如果不啟用圖7-1 中的流量控制,交換機(jī)-1 將丟棄目標(biāo)-1 的任何多余幀。這將使其成為一個(gè)有損網(wǎng)絡(luò)。
3. 雖然quanta值的范圍在0 到65535 之間,但大多數(shù)產(chǎn)品(包括Cisco MDS 交換機(jī)、Nexus 交換機(jī)和UCS)都將其設(shè)置為最大可能值65535。將時(shí)間quanta設(shè)置為較小值將要求接收器預(yù)測(cè)準(zhǔn)備接收更多幀的持續(xù)時(shí)間。這種預(yù)測(cè)的實(shí)現(xiàn)比較復(fù)雜。大多數(shù)產(chǎn)品將暫停時(shí)間量值設(shè)置為最大值65535,然后在準(zhǔn)備好接收流量時(shí)發(fā)送取消暫停幀(時(shí)間量值為0),從而使實(shí)現(xiàn)簡(jiǎn)單易行。由于這些原因,Cisco MDS 交換機(jī)、Nexus 交換機(jī)和UCS 不允許配置暫停quanta值。
4. 如果認(rèn)為在發(fā)送非零quanta的暫停幀時(shí),流量會(huì)在quanta所代表的時(shí)間內(nèi)停止,那是不正確的。通常情況下,非零quanta的暫停幀之后很快就會(huì)出現(xiàn)取消暫?;蚧謴?fù)幀。流量暫停的最長(zhǎng)時(shí)間實(shí)際上就是暫停和取消暫停幀之間的時(shí)間。在10 GbE 鏈路上,這可能是0.05 微秒(接收64 字節(jié)暫停幀的時(shí)間),也可能是3.355 毫秒或介于兩者之間的任何時(shí)間。如果緩沖區(qū)利用率仍高于暫停閾值,則可在根據(jù)實(shí)施情況確定的時(shí)間(小于量子所代表的時(shí)間)后發(fā)送另一個(gè)非零quanta的暫停幀。這個(gè)暫停幀會(huì)"延長(zhǎng)"流量暫停的時(shí)間。
5.暫停幀不會(huì)搶先傳輸已經(jīng)開始的幀。
6. 暫停閾值也稱為XOFF 閾值,恢復(fù)閾值也稱為XON 閾值。XOFF 和XON 中的X 是傳輸?shù)氖鬃帜缚s寫。由于暫停幀的流動(dòng)方向與流量相反,因此XOFF 閾值與停止流量有關(guān),而XON 閾值與重啟/恢復(fù)流量有關(guān)。一般來(lái)說(shuō),XOFF 表示"暫停流量",XON 表示"取消暫停流量"。在排除擁塞問(wèn)題時(shí),請(qǐng)記住這一細(xì)節(jié),因?yàn)閄OFF 和XON 術(shù)語(yǔ)也可能被使用。
入口和出口隊(duì)列
Cisco Nexus 9000 交換機(jī)采用出口緩沖架構(gòu)。這意味著出口端口上會(huì)保留隊(duì)列。
只有對(duì)于不丟棄類,才會(huì)為所有可以接收不丟棄類流量的入口端口預(yù)留額外的緩沖區(qū)。如圖7-1 所示,除了出口隊(duì)列外,不丟棄流量還被排入入口隊(duì)列(具有暫停閾值和恢復(fù)閾值)。
在擁塞期間,首先出口隊(duì)列會(huì)開始填滿。對(duì)于有損流量,如果這些出口隊(duì)列已滿,任何新傳入的幀都會(huì)被丟棄。
但是,對(duì)于無(wú)損流量,在不丟棄出口隊(duì)列滿之前,會(huì)對(duì)入口隊(duì)列施加內(nèi)部反向壓力(具有暫停閾值和恢復(fù)閾值)。這樣,任何新進(jìn)入的流量都會(huì)占用入口隊(duì)列,而不會(huì)被丟棄。如前所述,通過(guò)發(fā)送暫停幀來(lái)控制入口隊(duì)列的利用率。
這些入口隊(duì)列有暫停閾值和恢復(fù)閾值,與出口隊(duì)列的主動(dòng)隊(duì)列管理(AQM)機(jī)制(如加權(quán)隨機(jī)早期檢測(cè)(WRED))不同??梢允褂肗X-OS 命令show queuing interface 顯示Cisco Nexus 9000 交換機(jī)端口上的入口和出口隊(duì)列。
在Cisco Nexus 交換機(jī)上,所有流量都要經(jīng)過(guò)出口隊(duì)列處理,因此,AQM 與有損和無(wú)損流量相關(guān)。第8 章"交換機(jī)緩沖區(qū)管理"一節(jié)介紹了出口隊(duì)列的處理和AQM 機(jī)制。本章主要關(guān)注入口隊(duì)列(具有暫停閾值和恢復(fù)閾值)的處理。了解兩個(gè)隊(duì)列(出口隊(duì)列和入口隊(duì)列)的處理至關(guān)重要,因?yàn)槿缜八?,只有在出口?duì)列填滿后才會(huì)使用入口隊(duì)列。因此,監(jiān)控出口隊(duì)列的使用情況也是顯示擁塞的一個(gè)關(guān)鍵指標(biāo)。有關(guān)詳細(xì)信息,請(qǐng)參閱第8 章隊(duì)列深度監(jiān)控和微爆發(fā)檢測(cè)一節(jié)。
入口無(wú)損隊(duì)列的位置
無(wú)損以太網(wǎng)網(wǎng)絡(luò)中的所有端口都有入口無(wú)損隊(duì)列。為簡(jiǎn)單起見,圖7-1 僅顯示了一個(gè)位置的入口無(wú)損隊(duì)列,但實(shí)際上所有端口都有入口無(wú)損隊(duì)列。
1.圖7-1 顯示了交換機(jī)-1 上用于接收目標(biāo)-1 流量的入口無(wú)損隊(duì)列。利用該無(wú)損隊(duì)列可控制向目標(biāo)-1 發(fā)送暫停幀。
2. 交換機(jī)-1 上也有類似的入口無(wú)損隊(duì)列,用于接收來(lái)自主機(jī)-1 的流量。利用該無(wú)損隊(duì)列可控制向Host-1 發(fā)送暫停幀。
3. 目標(biāo)-1 創(chuàng)建一個(gè)或多個(gè)入口無(wú)損隊(duì)列,用于接收來(lái)自交換機(jī)-1 的流量。利用該無(wú)損隊(duì)列可控制向Switch-1 發(fā)送暫停幀。
4. 主機(jī)-1 創(chuàng)建一個(gè)或多個(gè)入口無(wú)損隊(duì)列,用于接收來(lái)自交換機(jī)-1 的流量。利用該無(wú)損隊(duì)列可控制向Switch-1 發(fā)送暫停幀。
每個(gè)端口的輸入無(wú)損隊(duì)列數(shù)
通常情況下,一個(gè)無(wú)損流量類的每個(gè)端口需要一個(gè)無(wú)損隊(duì)列。也可根據(jù)使用情況創(chuàng)建多個(gè)無(wú)損隊(duì)列,如通過(guò)同一鏈路傳輸FCoE 和RoCE 流量。多個(gè)無(wú)損隊(duì)列有各自的"暫停閾值"和"恢復(fù)閾值"。設(shè)備上無(wú)損隊(duì)列的最大數(shù)量取決于其功能。例如,Cisco Nexus 9000 交換機(jī)最多支持三個(gè)無(wú)損隊(duì)列。但根據(jù)鏈路的最大幀大小和長(zhǎng)度,還需要考慮更多因素。這些限制之所以適用,是因?yàn)闊o(wú)損隊(duì)列需要預(yù)留緩沖區(qū),而每個(gè)設(shè)備的緩沖區(qū)空間都是有限的。請(qǐng)參考您環(huán)境中設(shè)備的文檔,但總的來(lái)說(shuō),要了解這些限制并制定相應(yīng)的計(jì)劃。
實(shí)施差異和本書的范圍
有些實(shí)現(xiàn)(盡管不太常見)會(huì)在沒(méi)有擁塞的情況下持續(xù)發(fā)送quanta為零的暫停幀。換句話說(shuō),即使緩沖區(qū)利用率低于恢復(fù)閾值,它們也會(huì)發(fā)送取消暫停幀。這樣做是不必要的,因?yàn)橹恍枰粋€(gè)"取消暫停"幀就足以恢復(fù)流量,除非中間發(fā)送一個(gè)非零quanta的"暫停"幀,否則沒(méi)有必要連續(xù)發(fā)送。雖然這種實(shí)現(xiàn)方式并不違反標(biāo)準(zhǔn),但由于無(wú)法分別報(bào)告暫停和解除暫停幀,也無(wú)法報(bào)告流量暫停的持續(xù)時(shí)間(TxWait/RxWait),因此這種不必要的操作幾乎無(wú)法進(jìn)行擁塞檢測(cè)。有關(guān)這些指標(biāo)的更多詳情,請(qǐng)參閱后面的"擁塞檢測(cè)指標(biāo)"部分。此外,大量連續(xù)發(fā)送的"取消暫停"幀可能會(huì)導(dǎo)致明顯的鏈路利用率,因?yàn)檫@些幀實(shí)際占用了帶寬。這種類型的實(shí)施超出了本書的范圍。本書中講解的大多數(shù)擁塞檢測(cè)和故障排除技術(shù)都不適用于此類實(shí)施。
本書主要介紹只發(fā)送一個(gè)(或幾個(gè))取消暫停幀(零quanta)來(lái)恢復(fù)流量,并且在緩沖區(qū)利用率低于恢復(fù)閾值時(shí)不連續(xù)發(fā)送取消暫停幀的實(shí)現(xiàn)。這是最常見的實(shí)施類型,包括Cisco MDS 交換機(jī)、Nexus 交換機(jī)和UCS。本書僅介紹這種實(shí)施方式。
以下是Cisco MDS、Nexus 和UCS 的實(shí)現(xiàn)詳情:
1. 當(dāng)超過(guò)暫停閾值時(shí),發(fā)送一個(gè)具有最大暫停quanta的暫停幀。
2. 如果緩沖區(qū)利用率高于"恢復(fù)閾值",則在50%的最大暫停時(shí)長(zhǎng)到期后,發(fā)送下一個(gè)具有最大暫停時(shí)長(zhǎng)的暫停幀。
3. 如果緩沖區(qū)利用率低于恢復(fù)閾值,則發(fā)送一個(gè)零quanta的暫停幀(取消暫停)。隨后不再發(fā)送零quanta的暫停幀。如果該暫停幀損壞或丟失,流量將在前一個(gè)暫停幀所傳達(dá)的暫停時(shí)間結(jié)束后恢復(fù)。
很明顯,思科的實(shí)現(xiàn)是僅在必要時(shí)發(fā)送暫停幀。這種發(fā)送"暫停幀"的保守方法為通過(guò)計(jì)算"暫停幀"的數(shù)量來(lái)檢測(cè)擁塞奠定了基礎(chǔ),如第9 章中詳細(xì)介紹的UCS 流量監(jiān)控(UTM) 應(yīng)用程序所使用的方法。
暫停閾值和恢復(fù)閾值
本節(jié)將解釋暫停閾值和恢復(fù)閾值對(duì)正確的headroom和footroom緩沖區(qū)大小的重要意義。如圖7-1 所示。
緩沖區(qū)(隊(duì)列)大小取決于設(shè)備的能力。每個(gè)啟用PFC 的端口都必須預(yù)留緩沖區(qū)。因此,隊(duì)列大小是設(shè)備總緩沖空間和啟用PFC 端口數(shù)量的函數(shù)。
暫停閾值
如前所述,當(dāng)流量接收器的緩沖區(qū)(隊(duì)列)利用率超過(guò)暫停閾值時(shí),它就會(huì)發(fā)送一個(gè)非零quanta的暫停幀。
恢復(fù)閾值
如前所述,當(dāng)流量接收器的緩沖區(qū)(隊(duì)列)利用率低于恢復(fù)閾值時(shí),它就會(huì)發(fā)送一個(gè)零quanta的暫停幀(取消暫停)。
暫停閾值必須大于恢復(fù)閾值。整個(gè)緩沖區(qū)(隊(duì)列)的大小必須足夠大,以滿足暫停閾值和恢復(fù)閾值之間的足夠差值。
Headroom
緩沖區(qū)(隊(duì)列)大小與暫停閾值之間的空間稱為headroom。
暫停閾值應(yīng)足夠小于最大緩沖區(qū)大?。ɑ蜿?duì)列大?。员3肿銐虻膆eadroom。headroom不足可能導(dǎo)致數(shù)據(jù)包丟失。暫停閾值也不能太低。如果出現(xiàn)這種情況,發(fā)送方會(huì)過(guò)早暫停,而headroom仍未使用,這可能會(huì)導(dǎo)致鏈路利用率低于預(yù)期。
由于流量接收器必須保持足夠的"headroom"來(lái)容納,因此它必須在暫停閾值處而不是在其緩沖區(qū)完全耗盡時(shí)(圖7-1)發(fā)送具有非零quanta的暫停幀:
發(fā)出的數(shù)據(jù)幀已經(jīng)在物理線路上
發(fā)送方已計(jì)劃發(fā)送且不能中斷的數(shù)據(jù)幀。
暫停幀從流量接收方到流量發(fā)送方的序列化和傳播所造成的延遲。
隨著距離的增加,流量接收器必須增加其headroom,因?yàn)榭赡軙?huì)有更多的幀在傳送中,而且暫停幀到達(dá)流量發(fā)送器所需的時(shí)間也會(huì)更長(zhǎng)。但緩沖區(qū)是有限的資源,因此無(wú)損以太網(wǎng)鏈路的最大支持距離取決于其端點(diǎn)的能力。當(dāng)時(shí)可用空間無(wú)法容納的輸入數(shù)據(jù)包會(huì)被丟棄。這偏離了無(wú)損網(wǎng)絡(luò)的行為。充足的headroom應(yīng)避免出現(xiàn)這種情況。
Footroom
低于恢復(fù)閾值的緩沖空間稱為footroom。
恢復(fù)閾值應(yīng)大于零,以保持足夠的空間,從而在"解除暫停"幀到達(dá)流量發(fā)送方、設(shè)備恢復(fù)傳輸以及這些幀到達(dá)時(shí),無(wú)損隊(duì)列中有足夠的幀。如果恢復(fù)閾值過(guò)低,在發(fā)送"解除暫停"幀和接收流量之間的一段時(shí)間內(nèi),無(wú)損隊(duì)列將是空的。這可能會(huì)導(dǎo)致鏈路利用率低于預(yù)期。
配置緩沖區(qū)大小、暫停閾值和恢復(fù)閾值
在大多數(shù)實(shí)際應(yīng)用中,數(shù)據(jù)中心內(nèi)短距離鏈路不需要更改緩沖區(qū)(隊(duì)列)大小、暫停閾值和恢復(fù)閾值。大多數(shù)產(chǎn)品(包括Cisco MDS 交換機(jī)、Nexus 交換機(jī)和UCS)都會(huì)根據(jù)鏈路的支持長(zhǎng)度(如100 米)默認(rèn)配置測(cè)試值。有關(guān)詳細(xì)信息,請(qǐng)參閱產(chǎn)品文檔。
Cisco Nexus 9000 交換機(jī)的默認(rèn)緩沖區(qū)大小和閾值足以滿足100 米長(zhǎng)電纜的需要。如果需要更改這些值,例如用于長(zhǎng)度超過(guò)100 米的電纜,如例7-1 所示,可使用Cisco Nexus 交換機(jī)上的pause buffer-size 命令更改閾值。不同類型的設(shè)備可能會(huì)根據(jù)其緩沖區(qū)可用性和架構(gòu)使用不同的值。因此,例7-1 僅用于一般理解,在未查閱產(chǎn)品文檔的情況下,請(qǐng)勿直接使用這些值。
Example 7-1在Cisco Nexus 9000 交換機(jī)上配置緩沖區(qū)大小、暫停閾值和恢復(fù)閾值。
policy-map type queuing INPUT_Q
class type queuing RDMA
pause buffer-size 120000 pause-threshold 46000 resume-threshold 32000
InExample 7-1:
1. 命令pause buffer-size 中的值以字節(jié)為單位。
2. 緩沖區(qū)大小(120,000 字節(jié))是隊(duì)列大小。暫停閾值為46,000 字節(jié),恢復(fù)閾值為32,000 字節(jié)。
3. 緩沖區(qū)大小和暫停閾值之間的差值就是headroom(120,000 - 46,000 = 74,000 字節(jié))。如前所述,如果headroom不足,當(dāng)時(shí)無(wú)法容納的入口數(shù)據(jù)包就會(huì)被丟棄。
4. 恢復(fù)閾值是footroom(32,000 字節(jié))。如前文所述,headroom不足可能導(dǎo)致鏈路利用率低于應(yīng)有水平。
5. 根據(jù)最大幀大小,這些閾值的配置應(yīng)至少容納最低數(shù)量的幀。默認(rèn)的以太網(wǎng)有效載荷為1500 字節(jié),因此在計(jì)算報(bào)頭后,幀大小為1522 字節(jié)。但存儲(chǔ)流量通常需要更大的幀大小。例如,F(xiàn)CoE 幀最多可達(dá)約2300 字節(jié)。RoCE 幀最大可達(dá)約2 KB 或4 KB。以太網(wǎng)巨型幀最大可達(dá)9216 字節(jié)。在例7-1 中,74,000 字節(jié)的凈空可容納約8 個(gè)9216 字節(jié)的全尺寸巨型幀,盡管并非所有幀的大小都相同。
如例7-2 所示,使用命令show queuing interface 驗(yàn)證Cisco Nexus 9000 交換機(jī)上無(wú)損隊(duì)列的"暫停閾值"、"恢復(fù)閾值"和headroom。
Example 7-2驗(yàn)證Cisco Nexus 9000 交換機(jī)上的緩沖區(qū)大小、暫停閾值和恢復(fù)閾值。
switch# show queuing interface ethernet 1/1
Ingress Queuing for Ethernet1/1
-----------------------------------------------------
QoS-Group# Pause
Buff Size Pause Th Resume Th
-----------------------------------------------------
7 - - -
6 - - -
5 - - -
4 - - -
3 120000 46000 32000
2 - - -
1 - - -
0 - - -
帶PFC 的長(zhǎng)途鏈路
長(zhǎng)距離無(wú)損以太網(wǎng)鏈路的使用不如短距離鏈路普遍。大多數(shù)使用短距離SFP 的數(shù)據(jù)中心內(nèi)鏈路都在幾百米以內(nèi)。支持無(wú)損以太網(wǎng)的設(shè)備應(yīng)該有足夠的緩沖區(qū)來(lái)處理這些數(shù)據(jù)中心內(nèi)鏈路。但是,如果遇到啟用了PFC 的長(zhǎng)距離以太網(wǎng)鏈路,請(qǐng)驗(yàn)證端點(diǎn)的支持情況,并按照供應(yīng)商的指導(dǎo)增加緩沖區(qū)大小、暫停閾值和恢復(fù)閾值。
如前所述,Cisco Nexus 9000 交換機(jī)的默認(rèn)緩沖區(qū)大小、暫停閾值和恢復(fù)閾值足以滿足100 米電纜長(zhǎng)度的要求。更改配置后,Cisco Nexus 93180YC-FX 通過(guò)10 千米鏈路支持FCoE。對(duì)于任何其他使用情況和更長(zhǎng)的距離,請(qǐng)遵循官方文檔。
一般概念是,所有無(wú)損網(wǎng)絡(luò)都有距離限制,因?yàn)殡S著距離的增加,它們需要額外的緩沖區(qū)。光纖通道和無(wú)損以太網(wǎng)都是如此。對(duì)于光纖通道,需要增加B2B 信用點(diǎn)的數(shù)量,這與物理緩沖區(qū)直接相關(guān)。對(duì)于以太網(wǎng)上的PFC/LLFC,在暫停閾值(headroom)以上和恢復(fù)閾值(footroom)以下必須有足夠的緩沖空間。
緩沖區(qū)不足對(duì)光纖通道和無(wú)損以太網(wǎng)的影響是不同的。在光纖通道中,B2B 緩沖區(qū)不足會(huì)導(dǎo)致鏈路利用率低于預(yù)期,因?yàn)榱髁堪l(fā)送方大部分時(shí)間都在等待緩沖區(qū)。在使用PFC 的無(wú)損以太網(wǎng)中,會(huì)產(chǎn)生兩種影響。首先,如果headroom不足,那么數(shù)據(jù)包可能會(huì)在無(wú)損流量類中丟棄。其次,如果footroom不足,其結(jié)果類似于光纖通道中缺乏B2B 信用額度,從而導(dǎo)致性能不佳,因?yàn)樵谟猩倭客nD的情況下,鏈路永遠(yuǎn)達(dá)不到預(yù)期的流量速率。
審核編輯:劉清
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5419瀏覽量
171595 -
接收器
+關(guān)注
關(guān)注
14文章
2468瀏覽量
71871 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2637瀏覽量
99528 -
TCP
+關(guān)注
關(guān)注
8文章
1353瀏覽量
79055 -
存儲(chǔ)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
31瀏覽量
8100
原文標(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)論