家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

對於速度的渴求是我們與生俱來的天性,在這個千兆入戶光纖開始普及,5G移動網絡即將上線的時代,內網千兆鏈路100MB/S左右的傳輸性能,對於NAS等網絡存儲設備的用戶而言已不能滿足日益膨脹的速度需求。

高端玩家們開始嘗試利用光纖內網、萬兆銅纜、InfiniBand等一些企業級的技術手段提升傳輸性能;但是對於大多數普通玩家而言,技術入門、配置摸索的學習成本就讓人頭痛;設備、和線路改造的資金投入更加無法接受。好在技術的升級往往會跨越設備的壁壘,今天我們就來聊聊微軟為我們帶來的福利,利用Windows 最新SMB3實現簡單易用的多通道帶寬疊模式。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

對於不想看詳細內容,只關心使用方法的朋友,簡單概括如下:

1、多通道帶寬疊無需任何專用設備支持,普通集成網卡、傻瓜交換機均可實現,只要客戶機、服務器、交換機上的網口足夠就可以隨意疊加。

2、多通道帶寬疊基於軟件功能,無需任何專業設置,即插即用,方便穩定。但是需要服務器和客戶機安裝Windows 8、Server 2012以上操作系統,或者內置固件支持此特性。

本文涉及SMB 3和多通道帶寬疊加均已安裝Windows 10系統的PC或者DIY NAS系統為例,對於成品NAS各大廠家的多通道帶寬疊功能目前還在測試階段,群暉已經可以通過SSH命令手動開啟,但是實際使用效果還不穩定,所以這次暫時不做分享。

只要滿足以上兩方面,即可插上網線開始享受帶寬疊加帶來的高速快感。而對於想詳細瞭解這一功能與性能測試的朋友,請繼續看如下介紹和測試:

技術背景

本文所分享的多通道帶寬疊功能均基於使用SMB3協議進行的內網數據傳輸,通俗的來說就是Windows下通過共享的網絡驅動器進行的數據交換。對於FTP、NFS這些傳輸協議都是無效的。

SMB協議是微軟與Intel共同開發的網絡文件共享協議,通過該協議可以讓應用程序讀取和寫入文件以及從計算機網絡中的服務器程序請求服務。

SMB 協議可在其 TCP/IP 協議或其他網絡協議上使用。使用 SMB 協議時,應用程序(或應用程序用戶)可訪問遠程服務器上的文件或其他資源。這讓應用程序可以讀取、創建和更新遠程服務器上的文件。它還可以與任何設置為接收 SMB 客戶端請求的服務器程序通信,這種協議被廣泛的應用在NAS存儲中。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

基於SMB 3的多帶寬疊加早已不是什麼新鮮的技術了,早在Windows 8發佈之初與之配套的SMB3.0規範便已實現,現在的Windows 10已經更新到3.1.1;我在2015年便有分享相關經驗的想法,卻一直拖拖拉拉直到現在才總算完成。對於一直催我更新的值友們這裡先說聲抱歉了。。。。

目前基於傳統RJ45網絡接口+銅纜網線的有線網絡環境中,目前最常用的方法就是帶寬疊加,將多條獨立的千兆鏈接進行聚合、疊加,以實現總帶寬的擴容。目前常用的有鏈路聚合疊加(Link Aggregation Control Protocol)和SMB3多通道帶寬疊加(SMB 3 Multichannel)兩種方式,我們先看下他們之間的區別。

鏈路聚合疊加(Link Aggregation Control Protocol)

鏈路聚合(LACP)是基於IEEE802.3ad標準的網絡傳輸協議,指將多個物理端口匯聚在一起,形成一個邏輯端口,以實現出/入流量吞吐量在各端口的負載均衡並增加帶寬。

鏈路聚合最大的優勢在於屬於硬件層面的端口聚合,不侷限於某一種操作系統或者傳輸協議,這對於企業級較為複雜的網絡環境有著不可替代的作用。

在NAS產品大量湧現的當下,鏈路聚合等相關技術為了眾多廠商的宣傳亮點之一。支持鏈路聚合的NAS產品都具備2個以上的LAN接口,按照廠家的宣傳,通過將網口聚合,可以達到2Gbps以上的傳輸帶寬。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

從技術本質上來說廠家的描述沒有什麼問題,只不過因為大多數消費者都並非精通網絡技術,所以對於鏈路聚合產生了不切實際的幻想。

實際使用情況以下圖為例:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

當存儲服務器與交換機均支持LACP相關協議並完成設置後,兩者之間的網絡連接就實現了帶寬聚合。若服務器有兩個網口,則聚合後的總帶寬為2Gbps。兩臺客戶端使用千兆有線鏈路連接交換機同時存取服務器上的數據時,兩者均可達到1Gbps的讀寫速度;此時服務器端網絡總吞吐帶寬也達到了2Gbps。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

但是如果按照下圖,單客戶端加兩條千兆有線鏈路連接交換機存取服務器上的數據,則有效傳輸帶寬依然為1Gpbs,無法利用疊加後的2Gpbs帶寬。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

所以這裡需要強調,鏈路聚合是帶寬疊加技術的一種,但是他只對於交換機-交換機、交換機-服務器之間的鏈路進行疊加,無法提升點對點的傳輸帶寬。

SMB3多通道帶寬疊加(SMB 3 Multichannel)

多通道帶寬疊是SMB3規範眾多新功能中的一項,以下圖為例:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

假設服務器與客戶機均配有多網卡,如啟用SMB多通道模式,系統則會利多通道技術,會對每個會話建立多個TCP/IP連接,這樣就可以充分提高整個鏈路的吞吐而實現物理帶寬的疊加。不過這種帶寬疊加僅僅支持使用SMB3規範的數據傳輸,對於其他數據傳輸協議均無效。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

兩種技術之間的具體區別如下:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

對於網絡系統規模較小、應用較為單一的個人、家庭用戶而言,使用SMB3的多通道功能來提升內網傳輸速度,無論在投入的設備成本、學習成本還是實際效果表現來看都遠高於傳統的LACP鏈路聚合技術。唯一對於操作系統方面的限制在Windows10已經廣泛普及的當下也已不再是障礙。

硬件選購

實現SMB3規範下的多通道帶寬疊加功能是不需要添加任何專用設備的,不過為了實現帶寬疊加就需要更多的網口來接通更多的傳輸鏈路,所以假如這方面硬件規格不足的朋友還是需要增加一些基礎設備的。

網卡

對於帶寬要求不高,且服務器和客戶機上已經集成雙網卡的用戶,其實並不需要在單獨採購網卡。對於像我一樣希望使用更高帶寬的用戶可能需要再選購一塊多端口網卡

正規渠道的多端口千兆網卡價格都很貴。淘寶上有拆機的二手網卡,價格低廉,但存在假貨的風險,所以建議瞭解清楚情況後再下手。我最終通過HP代理購入了2塊NC364T 四端口千兆網卡。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

交換機我選用NETGEAR GS316 16口千兆交換機,非網關傻瓜交換機,做工優良,價格便宜。假如對於帶寬要求不朋友也可以使用更加實惠的8口交換機,甚至路由器附帶的LAN接口。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

美國網件(NETGEAR)GS316 16口全千兆非網管交換機 中小型企業商用以太網交換機429元京東

去購買

NETGEAR GS316採用網口平鋪佈局,體型扁平且小巧,便於在我狹小的書房中安裝與佈線;而16個千兆接口也讓我足夠使用盡情折騰。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

功能配置

實現SMB3的多通道功能非常簡單,只需滿足以下條件即可

1、服務器與客戶端基於Windows8以上操作系統,或者支持SMB 3;

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

不同Windows系統組合之間所能夠支持的最高的SMB版本

2、服務器和客戶端的所有網線都在同一網關下的內網中,最好都接於同一臺服務器。

當以上條件條件都滿足,且兩者間存在一條以上網絡鏈接,便可自動實現帶寬疊加功能,無需進行任何相關係統參數配置。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

實際使用時由於存在多個網絡端口,服務器和客戶機會存在多個IP地址,但用戶無需考慮這些,直接使用服務器主機名或者服務器任意IP地址進行文件瀏覽和數據傳輸,都可享受多通道功能帶來的網速疊加體驗。

性能測試

測試環境

服務器與客戶端相關硬件規格

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

服務器我使用主板集成網卡和PCI-E 4端口千兆網卡建立了達到6Gbps的疊加帶寬,主客戶機則一共使用了5個千兆網口,總疊加帶寬為5Gbps。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

服務器與客戶端所用硬盤測試性能如下:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

客戶機所用三星 SM951 256G硬盤因為使用M.2接口使用NVME接口規範,所以讀寫速度對於網絡傳輸負載來說不存在任何瓶頸。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

服務器所用的Sandisk Extreme II 480G屬於較早期產品,所以速度不及支持NVME規範的產品,實際讀取551MB/S、寫入427MB/S對於高帶寬疊加還是存在一定瓶頸,尤其是寫入性能。

雙鏈路帶寬疊加

首先測試一下雙鏈路下的帶寬疊加,此狀態下服務器與客戶機只需具備雙網口即可實現。這對於很多用戶來說這是最容易實現也最為有效的提速方式。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

雙路網絡鏈接總帶寬2Gpbs,理論傳輸速度為256MB/S。客戶機通過SMB協議複製服務器中的數據時,點對點的實際傳輸帶寬輕鬆突破220MB/S傳輸速度。因為傳輸速度均在兩端SSD硬盤的讀寫性能範圍之內,所以傳輸曲線相當平滑,兩條千兆鏈路均處於滿負荷吞吐狀態。

三鏈路帶寬疊加:

服務器與客戶機之間增加一條千兆有線鏈路,理論帶寬為3Gbps。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

實際傳輸速度338MB/S,曲線平穩,三條千兆鏈路依然處於滿負荷吞吐狀態。可以看出似乎只要在兩端硬盤讀寫性能之內,疊加的帶寬就可以全力釋放出接近與理論帶寬的傳輸性能。

五鏈路帶寬疊加:

接下來我不打算依次增加鏈路數量,直接將我客戶機與服務器上網絡端口全部開啟,共計5條千兆鏈路實現了5Gbps的理論數據帶寬,數據帶寬已經達到服務器上SSD硬盤讀寫性能極限;而此時網絡端口的佔用也達到了10個,所以這種模式作為極限狀態測試。我詳細測試客戶機從服務器讀取數據和客戶機向服務器寫入數據兩種傳輸模式下的性能表現。

服務器向客戶端傳輸數據,此時服務器端硬盤為讀取狀態,客戶端硬盤為寫入狀態。

此時網絡傳輸帶寬與服務器端的SSD的讀取性能基本相當,傳輸曲線變不如前兩次測試那樣平滑了,不過平均速度依然維持在480MB/S的水平,這對於網絡傳輸算是相當可觀的性能了。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

客戶端向服務器傳輸數據,此時服務器端硬盤為寫入狀態,客戶端硬盤為讀取狀態。

網絡傳輸性能超過服務器SSD的寫入性能,傳輸曲線出現比較劇烈的波動,這應該是SSD主控芯片滿負荷運行時產生的。最終平均傳輸速度穩定為410MB/S,這也與之前測試的數據基本吻合。

而且通過這次測試還可以看出,當總體傳輸出現波動時,每塊網卡同樣隨之波動,而且5快網卡的大致波形基本吻合,這也印證了SMB3網絡多條通道中的負載均衡功能發揮了作用。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

功能體驗

鏈路冗餘

首先以5條千兆鏈路同時工作開始數據傳輸,初始傳輸速度約480MB/S,然後我開始依次拔掉交換機上的網線接口,以模擬網絡出現故障時的狀態,最終我只保留一條網線來保持連接。然後我再依此插回網線,繼續模擬網絡恢復。最終完成測試後的數據傳輸曲線如下:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

可以看出當進行帶寬疊加的端口組中,如果有一個或幾個帶寬出現故障時,系統會自動將剩餘端口繼續傳輸數據;而當網絡恢復後系統也會立即將其加入到正在進行的數據傳輸中。整體都是動態進行調整的,一部分端口的故障或者恢復均不會影響整體數據傳輸的連貫性。

同時我們可以看出,每次端口增加或者減少後,整體的傳輸曲線只會成臺階狀的整體上升、下降,並不會出現劇烈的波動,這也可以驗證出在單客戶端傳輸環境下,負載均衡機制很好的發揮了作用,使網絡傳輸更加穩定。

多客戶端負載均衡

我找了兩臺客戶端來進行測試,一臺配備了5個千兆網絡接口,與服務器實現5鏈路聚合;而另一臺僅適用單千兆網口與服務器相連。兩臺客戶端同時與服務器進行數據傳輸時,實際效果如下:

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

首先服務器優先滿足了低帶寬客戶端的帶寬需求,使之滿速運行,最終傳輸速度穩定在113MB/S的千兆網絡傳輸極限速度。

然後再將剩餘4個網絡端口進行聚合,向高帶寬客戶端傳輸數據。由於受到服務器硬盤讀取性能限制,最終傳輸速度穩定在343MB/S。

而當低帶寬客戶端結束數據傳輸後,高帶寬客戶端也隨即恢復了滿負荷傳輸狀態。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

使用感受

穩定性

基於SMB3規範的帶寬疊加,無需專用設備;無需繁雜的系統設置,搭建的成本相當低廉,而獲得的效果也非常出眾。

除了點對點完美實現了多寬帶傳輸速度疊加之外,原先基於端口匯聚的線路冗餘、負載均衡都功能也一應俱全。對於小規模網絡使用的個人用戶基本可以捨棄技術和裝備門檻都高很多的端口匯聚了。

實際使用效果也非常穩定可靠,只要網絡設備穩定,存儲系統性能達標,就可以獲得持續穩定的高速鏈接。我在使用的3年時間裡從未出現過失效或者不穩定情況。

可用性

這項應用,使用雙千兆帶寬疊加模式是收益最大、性價比最高的使用模式

對於狂熱追求高速的玩家來說

3寬帶以上的網速疊加,可以最大程度上發揮和利用NAS設備上高端SSD倉庫盤的讀寫速度。這對於SSD的基本性能也提出了更高的要求,對於大多數中低端大容量SSD,雖然標稱性能都很可觀,測試成績也很優秀,但是這些很可能只是基於容量有限的緩存的成績,而實際在進行大塊數據讀寫存儲時往往就會出現如下圖的傳輸曲線。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

所以在實際使用前一定要區分清楚廠家標稱的讀寫速度是持續是所謂的“緩存讀寫速度”還是真實的“持續讀寫速度”

對於追求性價比的普通用戶

一臺傻瓜型的八口交換機就可以負擔兩臺客戶端與一臺服務器的鏈接,對於設備上已經集成雙網口的用戶來說,基於SMB3.規範的帶寬疊加可以說是白送的福利,而且就算增加一塊千兆網卡花費也相當低廉。

對於使用普通大容量HDD的存儲系統的用戶來說,得益於單盤容量的不斷增大,平均讀寫速度也早已不再侷限於100MB/S的性能水平了。以我目前正在使用的希捷酷狼 8T HDD為例,讀、寫的最低速度都已經超過100MB/S,平均速度達到了180MB/S,在這樣的性能下使用雙千兆帶寬疊加,可以說是胃腸有效的性能提升手段

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

實際測試性能如下,140MB/S的傳輸速度已經超過單千兆網卡的帶寬限制。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

而且因為機械磁盤存儲載體為旋轉的圓形磁碟,所以雖然硬盤的轉速恆定,但是隨著磁頭從碟片的外圈向內心移動就會持續降低線速度,因此磁盤外圈的傳輸率最高;內圈則傳輸率最低。所以實際傳輸速度與數據存儲的扇區位置有很大的關係,對於存儲在靠近外圈的數據理論上還可以獲得更高的傳輸速度。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊

實用性

對於我現在所用的5千兆帶寬疊加,其實屬於性能嚴重過剩的浪費模式,因為在一般工作和家用環境中很少有軟件需要如此大的網絡傳輸帶寬,而我現在唯一能夠受益的也只有大容量視頻渲染後的存出輸出。

所以這種模式更多的只是對於極限性能的追求和發燒的折騰,一般用戶完全無需照搬使用。但是由於實現起來非常方便,這也可以看作一種技術的儲備,日後如有用武之地便可立即投入使用。

家庭網絡:乘著SMB3的翅膀,低成本實現內網多通道帶寬疊


分享到:


相關文章: