機房建置,線速是體現網絡設備轉發性能的一項重要指標,很多數據中心在採購網絡設備時,都會要求設備具備線速能力,或者是部分線速能力。在RFC 1242中對線速做了定義:在不丟失任何一個幀的情況下最大轉發速率,以太網吞吐量最大理論值稱爲線速,若是千兆設備就要達到千兆的線速,若是萬兆設備就要達到萬兆的線速。理論歸理論,實際中畢竟要考慮很多外界的干擾因素,因此很多時候的網絡都是“僞線速”,線速是要在特定情況下,實驗室環境中才能測試出來的。在選型設備時,不必一味強調滿足各種情況下的線速,實際中除了廣播風暴,也不會設備所有端口都做線速轉發,那一定是一個異常的網絡狀態,一般端口速率超過80%時,數據中心都會開始網絡擴容了,根本不會等到端口線速轉發時纔去擴容。線速是理想化的東西,在選擇設備的時候千萬不要看重這個,否則會被欺騙的。就像我們購買的小汽車,最大行駛速度都可以達到200多公里∕小時,而很多人一輩子都不會將汽車開到那麼高的速度,小汽車設計的理論速度的確可以達到,但會有各種條件限制,所以對網絡設備線速的事兒,且不可鑽牛角尖。下面,就來詳細說一說網絡設備爲滿足線速性能裏的門道。
網絡設備有的只有1 u高,有的卻有20 u高,對外端口有千兆,萬兆,40克、100克甚至更高,尤其是在框式設備上,不同端口速率的板卡插在同一個機框裏,要全部滿足所有板卡都線速,是很難做到的。因爲低速端口板卡內部需要的連接器只要是低速的就可以,而高速端口板卡內存需要高速連接器,在一個機框裏很難全部滿足,或者在某些板卡組合的情況下,部分端口就無法達到線速。這種情況在早期的網絡設備中表現更爲明顯,那時內部連接器速率都比較低,內部還不是信元轉發,按照報文哈希轉發,內部很容易出現擁塞導致業務丟包。在這種情況下,如果數據中心要驗證採購設備的線速性能,往往設備商會將能線速部分展現出來,而小部分無法線速的部分儘量在測試中避免。還有隨着測試報文數量越大(或數據幀越短),網絡設備需要處理和校驗的負擔就會越重,出口轉發速度必然要下降的,但是越接近線性關係。很多網絡設備在大包數據的處理上是可以達到線速的,而報文長度越小,達到線速的難度越大,若報文只有64字節,對設備的性能考驗是最大的。在這種情況下,網絡設備可能達不到線速。其實,我們知道實際的網絡中,是不可能只有一種64字節長度的報文,肯定是各種長度的報文混雜在一起,這時對設備的壓力還不算最大。
線速的概念主要指的是交換機網絡設備,這種設備靠硬件芯片轉發,可以具備線速能力,而這些設備的CPU處理能力是比較弱的,所以CPU處理的報文是遠遠達不到線速的。交換機的CPU不會處理轉發數據報文,除非硬件芯片裏沒有了轉發表項的情況下才會考慮通過CPU轉發,交換機的CPU主要是協議報文的處理和設備管理,處理報文的能力相對很弱,沒有線速的概念,就算是硬件芯片也不是什麼情況下都能滿足所有端口線速,有的芯片受工藝水平所限,芯片整理的轉發帶寬就有瓶頸,當所有外部端口都線速轉發時,芯片就會有丟包,芯片只能保證部分端口線速情況下無丟包。我們知道,在很多選型測試中,經常使用蛇形測試,即將面板所有外部端口都收尾相連,打入線速流量,看是否有丟包,很多設備在這種情況下無法測試通過,就是芯片本身存在端口線速的數量限制。還有路由器,它是靠CPU轉發數據的。路由器雖然CPU能力很強,但是要滿足線速還是很困難,一般路由器會考慮用NP芯片來完成數據轉發,或者也植入硬件芯片來完成,靠硬件的處理速度來滿足線速的轉發,這種設計理念使得路由器和交換機的界限越來越模糊。在很多時候,有人拿路由器當交換機用,有人拿交換機當路由器用,讓兩者技術實現上不斷融合。
沒有留言:
張貼留言