您好,登錄后才能下訂單哦!
SMB多通道是微軟Windows Server 2012時新增的一項功能,微軟SMB3.0協議的一部分,主要用于SMB文件傳輸時,檢測到多張可通信網卡,自動使用多張網卡進行傳輸,提高吞吐量,鏈路容錯。
Windows Server 2012和之前的服務器操作系統最大的一個不同點就在于,2012利用操作系統本身實現了很多原來只有硬件才能做的技術,同時又和各大硬件廠商合作,使各大硬件廠商的設備能夠在微軟OS上面發揮出最好的性能,例如,2012實現了原生的SMB 多通道,NIC teaming,可以和存儲設備感知,實現ODX技術,等等
SMB多通道,很多人可能沒有關心過,其實這是一項很好用的技術,我們不需要額外配置什么,Windows Server 2012 /Win8 之后的OS原生自帶,只要你有兩臺機器,它們之間要進行SMB傳輸,機器1上面有兩張網卡 192.168.1.1和192.168.2.1 ,機器二上面有兩張網卡 192.168.1.2 192.168.2.2,那么SMB多通道技術就會自動聚合兩站網卡的帶寬,進行協議傳輸,一旦其中一張網卡壞掉,自動使用單條通道進行傳輸
通過SMB多通道,我們可以實現類似于MPIO的效果,它的優點就是自動聚合多網卡帶寬,最大化利用網卡性能,自動容錯,自動擴展,發現有可用通道自動加入傳輸。缺點就是SMB多通道,只能在SMB協議傳輸時有用,其它協議傳輸時無效,但SMB多通道技術可以和NIC teaming技術配合,SMB協議傳輸使用SMB多通道,其它流量使用NIC teaming
SMB多通道技術要求:
至少需要兩臺運行Windows Server 2012,Windows Server 2012R2或Windows 8計算機
不需要安裝其他功能 - 默認情況下啟用SMB Multichannel
多個可通信網絡適配器
可選要求
一個或多個支持RSS的網絡適配器
使用NIC Teaming配置的多個網絡適配器之一
一個或多個支持遠程直接內存訪問(RDMA)的網絡適配器
SMB多通道適用場景
多個支持RSS的網卡
此為SMB多通道典型配置,在2012之前,即便兩個節點具備多張可以通訊的網卡,但是傳輸流量的時候也只會使用一個接口建立連接,并不會自動聚合所有接口帶寬,2012開始,一旦檢測到多張可通訊網卡,將自動聚合所有網卡,如果網卡支持RSS功能,則SMB為單個會話創建多個TCP / IP連接,每個接口至少有一個或多個連接,此配置使SMB能夠使用可用的組合網絡適配器帶寬,并使得SMB客戶端可以在網絡適配器出現故障的情況下繼續而不會中斷。
多個NIC Teaming中的網卡
Windows Server 2012 R2和Windows Server 2012支持通過使用稱為網卡綁定的功能將多個網絡適配器合并到一個網絡適配器的功能。盡管一個Teaming總是提供容錯功能,但是當SMB沒有SMB多通道部署時,SMB每個團隊只能創建一個TCP / IP連接。此配置會導致所使用的CPU內核數量和隊列帶寬的最大使用量受到限制。
當使用SMB多通道部署SMB時,SMB為單個會話創建多個TCP / IP連接,以實現CPU內核之間更好的平衡并更好地利用可用帶寬。NIC Teaming繼續提供故障轉移功能,這比單獨使用SMB Multichannel更快,我們還建議使用網卡組合綁定,因為它為不依賴SMB的其他工作負載提供故障切換功能,這些工作負載無法從SMB多通道的故障切換功能中受益。
單個或多個支持RDMA的網絡適配器
SMB多通道檢測網絡適配器的RDMA功能,這使得SMB Direct功能(SMB Direct over RDMA)成為可能,當使用SMB多通道部署SMB時,SMB檢測網絡適配器的RDMA能力,并為該單個會話創建多個RDMA連接,每個接口有兩個RDMA連接,通過此配置,SMB可以利用RDMA支持的網絡適配器提供的高吞吐量,低延遲和低CPU利用率,當您使用多個RDMA接口時,它還提供容錯功能。
RDMA技術在大型數據傳輸時性能提升特別明顯,在2012R2時,這項技術并不支持NIC teaming,因此如果您想要獲得SMB Direct技術,在2012時代,只有選擇SMB多通道+RDMA,2016時代起,支持融合網絡架構能夠獲得RDMA技術。
簡單介紹完SMB多通道技術,我們再來看下它和WSFC的關系,在WSFC 2012時×××始,群集開始支持SMB多通道技術,SMB多通道和群集,我們分為兩個層面來看
存儲流量
CSV重定向流量
典型的場景是Hyper-V over SMB,或 SQL over SMB,前面是應用群集,后面是存儲群集,應用通過SMB協議訪問存儲群集,利用RDMA技術和SMB多通道技術提高傳輸效率
在這種場景下,SMB多通道,會僅使用角色1的群集網絡,即挑選啟用客戶端和群集通信的網絡來做存儲流量負載均衡使用
WSFC場景下的SMB多通道通常會遵循以下規則
1.挑選不同子網,度量值盡可能相近的群集網絡進行SMB多通道匯總
2.只有網卡速率,RSS , RDMA等參數完全相同的網卡,才會被納入SMB多通道傳輸
3.如果有多個不同速率的網卡都可以使用,則SMB多通道將首選速率塊的網卡建立通道
什么是度量值呢,事實上這是隱藏在群集網絡內部的運作參數,界面上我們看不到它
在WSFC 2008時×××始,可以通過Powershell命令獲得
Get-ClusterNetwork | ft Name, Metric, AutoMetric
WSFC 2008時代,默認情況下群集內部網絡度量值為1000,群集首個發現的內部網絡為1000,之后的內部網絡依次向上遞增100,群集以未設置網卡網關為內部網絡挑選依據
所有對外網絡的群集網絡度量值默認為10000,之后發現的依次遞增100,群集以設置網卡網關為對外網絡挑選依據。
所有無群集通訊的群集網絡度量值默認為10100,之后發現的依次遞增100,群集以檢測到網卡具備ISCSI通信為依據。
一個典型的架構如下
群集網絡獲得最低的度量值,因此WSFC 2008時代,CSV流量,群集數據庫流量,心跳檢測流量將首先通過這個網絡進行
實時遷移網卡獲得第二低的度量值,因此群集將會使用此網卡進行實時遷移,直接通過GUI界面選擇實時遷移網卡,可覆蓋此決定。
默認情況下群集網絡度量值由群集根據算法自動生成,對于高端用戶也可以手動進行修改
看過一些外國的設計通常針對管理網卡和群集網卡會設置備用網卡,例如這樣的架構
Cluster1 900
Cluster2 910
MGMT1 10200
MGMT2 10300
這樣設計的一個好處是,可以防止一旦群集功能或管理功能網卡壞掉,去使用其它不應該使用的網卡,事先規劃出度量值網卡,到時群集會自動挑選下一度量值網卡使用
到了Windows Server 2012時代 群集網絡度量值的評定發生了變化,不僅可以基于角色,還可以基于硬件功能
接下來我們將通過實際搭建一個利用SMB多通道的SOFS群集來實際看下效果
實驗環境
當前SOFS群集已經配置完成
SOFS群集角色已配置完成
群集網絡設置如下
默認情況下SMB多通道已啟用,可以看到,當我們把文件在兩個節點間互相拷貝時,調用了所有網卡
禁用SMB多通道功能
再次拷貝文件,發現已經沒有了SMB多通道,只會調用一塊網卡進行拷貝。
再次啟用SMB多通道功能
拷貝過程重新調用所有網卡
查看群集網絡度量值,發現不太標準,并不是我們想要的,CLUS網卡度量值沒有是最低,CLUS MGMET SMB02 度量值過于接近,容易產生負載均衡
重新定義度量值 CLUS3000 ,SMB01為50000 ,SMB02為50001 ,MGMET為70000。規劃控制SMB多通道只在SMB01 SMB02網絡傳輸
上面我們在SOFS群集內部中查看了SMB多通道的效果,下面我們安裝hyper-v群集,進一步查看
當前HV01 HV02節點已經完成Hyper-V群集配置
新建虛擬機,設置存儲路徑為SOFS群集路徑
在虛擬機所在節點查看SMB多通道,可以看到,當前HV節點通過30 40兩條通道連接到SOFS存儲群集節點,同時利用兩張網卡的帶寬,并獲得了容錯性。
通過查看網絡配置我們可以發現 在HV群集中,網絡度量值為規范,只有SMB01,SMB02網絡度量值接近,其它條件也都滿足,因此HV群集優先使用此兩條鏈路進行連接
在一些情況下,可能并不會這樣順利,有時度量值計算可能不會像這樣按照我們希望的來,會有一些偏差,導致其它網絡,例如管理網絡,實時遷移網絡也和存儲網絡處于接近的度量值,這樣就有可能會產生負載均衡,一旦您部署了SOFS群集與前端群集,發現前端群集沒有使用想要的鏈路去連接到SOFS群集,除了修改度量值,您還可以選擇手動創建SMB多通道限制策略,強制限制SMB多通道僅在我們想要的網卡上面執行
首先在前端群集,指連接到SOFS群集的HV或SQL群集,上面運行Get-NetAdapter,查看網卡index記錄,記下它
創建SMB多通道限制策略
New-SmbMultichannelConstraint -ServerName wisdom -InterfaceIndex 13,16
New-SmbMultichannelConstraint -ServerName wisdom.oa.com -InterfaceIndex 13,16
ServerName的的地方建議輸入SOFS VCO名稱及FQDN名稱,這樣,凡是HV群集連接到SOFS群集的這個名稱,都僅會調用到我們指定的網卡,來完成SMB多通道
此設置需在HV群集 或 SQL群集 的每個節點上面進行設置
需要注意:SMB多通道限制策略,只有在網卡已滿足SMB多通道要求的情況下才有意義,例如,三塊網卡,速率,RSS,RDMA參數相同,度量值也接近,但是你不想要同時使用這三塊網卡,只想使用其中兩塊,那么可以通過SMB多通道限制策略,如果是兩塊網卡,但是速率不同,創建SMB多通道限制策略無意義,因為SMB多通道必須多網卡速率相同才可以構建多條通道,速率不同的情況下,將僅使用速率高的網卡建立通道。
設置SMB多通道限制策略,主要有以下幾種場景
防止存儲通信淹沒管理網絡,希望管理網絡更多的流量來做其它事情
防止CSV redirect IO流量淹沒管理網絡
關于CSV redirect IO流量,老王在后面會提到
到這里相信大家對于SMB多通道在WSFC群集的應用有了個初步的認識,簡單來說,就是微軟在SMB領域的一個創新,讓大家更多的去使用它的SMB架構,我們可以部署一個SOFS,交付給前端的HV,SQL,應用使用RDMA SMB多通道技術連接到后端,獲得高性能和容錯性,為IT基礎架構多了一種新的選擇,SMB多通道在群集中也可以得到應用,WSFC 2012時代只要滿足多子網群集網絡,網卡速率參數相同就可以利用SMB多通道技術
SMB多通道技術在WSFC 2012群集中主要有兩種應用場景
傳統SMB流量,HV SQL SOFS群集本身使用SMB協議傳輸存儲的流量,這種類型的SMB多通道,會挑選群集網絡中,客戶端可訪問的網絡
CSV 重定向流量
在正常的情況下,所有一個群集中,所有節點對于CSV - 存儲,都是直接訪問IO,一個寫入請求直接通過CSV寫入到存儲,此流量成為南北向流量,還有一種東西向流量,假設群集中的單個節點失去到存儲的訪問資格,即是說該節點到鏈路出現問題,那么CSV卷就會進入重定向模式,在這種模式下,雖然上層連接到CSV的應用不會中斷,但會感覺到性能有明顯的下降,因此每一次的寫入IO,都會由失去資格的節點把IO重定向到可以訪問存儲的節點,然后該節點再完成IO請求
通常情況下CSV卷進入重定向模式,有以下幾種可能
單節點失去到存儲的訪問資格
節點上安裝了不兼容的篩選器驅動程序
CSV備份,2008 R2無法創建CSV的單個同步VSS快照,導致在備份操作過程中大量重定向IO,有些存儲系統會受到壓力,導致2008 R2 Hyper-V群集崩潰
在2012時代,針對于CSV備份機制發生了改變,不再使用VSS備份操作,而是采用分布式快照機制來簡單的備份CSV卷
因此在2012時代發生CSV重定向大概有幾種可能 1.存儲鏈路 2.節點篩選器驅動干擾 3.元數據更新
通常情況下元數據更新數據量很小,我們不需要過多關心它,篩選器驅動通常如果節點很干凈也不會出現
WSFC 2012時代出現CSV重定向幾率最多的還是單節點存儲鏈路失敗,或還原操作的場景
實際上CSV重定向流量是一種很危險的流量,在2008時代,很多人不知道這一點,于是就放了帶寬很低的一個群集通信網絡,結果發現當單節點存儲鏈路出問題,CSV重定向模式下整個群集幾乎沒辦法執行IO操作
在WSFC 2008 時代,對于CSV重定向流量,默認情況下,只使用度量值最低的群集網絡,來完成重定向時的東西向流量
WSFC 2012時×××始,CSV重定向流量有了新的變化,不再根據度量值挑選,而是使用SMB協議,SMB多通道來完成CSV重定向時的流量傳輸,使用新的方式傳輸CSV重定向流量將比原來方式提高四倍,更好的處理CSV重定向時的性能問題,對于CSV重定向時的SMB多通道挑選,將遵循以下規則
1.SMB多通道優先于NetFT的網絡優先級,以決定CSV重定向流量使用哪些子網
2.CSV重定向將僅使用內部群集網絡進行SMB Multichannel,此行為可以更改為也使用外部網絡修改UseClientAccessNetworksForSharedVolumes群集參數
3.SMB多通道需要相同的鏈路速度和特性(RSS和/或RDMA)才能同時在不同的子網上傳輸CSV重定向的流量
4.如果適配器不相同,SMB多通道將使用更快的適配器來傳輸CSV重定向的流量
5.只有在SMB Multichannel不可用或禁用的情況下,故障轉移群集才會故障返回到NetFT決定使用哪個子網。然后,將應用最低度量標準邏輯,并通過最低度量子網發送CSV重定向流量
如果不希望重定向流量使用SMB多通道,僅使用單個網絡,那么您可以直接關閉節點SMB多通道功能
Set-SMBClientConfiguration -EnableMultichannel $ False”
在一個理想的情況下,一個SMB架構的群集
應該是使用兩種不同的SMB多通道,兩種SMB多通道網絡類型都按照規則執行
存儲流量使用對外的網絡進行SMB多通道
CSV重定向流量使用群集內部網絡進行SMB多通道
如果在WSFC 2012時代遇見CSV重定向流量淹沒其它網絡的情況,例如還原一個備份失敗,CSV重定向流量調用了CSV網卡和管理網卡,淹沒了管理網卡,導致管理網卡不能訪問,這時候您可以使用New-SmbMultichannelConstraint 來強制限制CSV多通道SMB多通道流量
建議 1.不要使用會產生CSV重定向的備份工具 2.規劃特定的網卡來完成CSV重定向 SMB多通道流量
對于這里的場景來說,老王相信國內使用這種SMB架構用于企業生產的還是不多,而且在一個群集里面完成兩組SMB多通道,也稍微有點麻煩,需要分別制定不同的SMB多通道策略,那么怎么能夠實現一組SMB多通道,完成存儲流量和CSV重定向流量,老王想到一種辦法,修改群集的一個參數,UseClientAccessNetworksForSharedVolumes,讓CSV重定向流量也可以使用對外類型的群集網絡,這樣的話,只要存儲流量和CSV重定向網卡類型的網卡,速率,RSS ,RDMA參數相同,就可以使用SMB多通道功能,屆時將是一組SMB多通道,完成存儲流量和CSV重定向流量,也可以通過New-SmbMultichannelConstraint 來強制限制CSV多通道SMB多通道的網卡。
那么一個SOFS群集就是 管理網卡一張,對外存儲網卡兩張 心跳卡一張,對外存儲網絡既完成SMB存儲流量多通道,也完成CSV重定向流量多通道
以上我們看了
SMB多通道技術介紹
SMB多通道在WSFC群集的應用及要求
SMB多通道在SOFS群集內部的應用
SMB多通道在SOFS群集與HV群集之間的應用
SMB多通道的兩種不同類型流量:存儲連接流量,CSV重定向流量
在WSFC 2016時代,SMB多通道技術和群集的結合變的更為融洽,群集不再要求必須多個子網才可以在群集中做SMB多通道,現在相同子網的多張網卡也可以在群集中構建多通道,事實上,SMB多通道技術本身就支持相同子網多網卡,或不同子網多網卡,只是說2012時代的WSFC有所限制,構建網絡拓撲時,相同子網的多張網卡不會被構建到群集的網絡拓撲,WSFC 2016時代群集修改了這個規則,相同子網的多個網卡也可以被構建到群集網絡拓撲,實現群集SMB多通道
所謂的相同子網多個網卡構建到群集網絡拓撲,并不是說,相同子網,會出現多個群集網絡,而是可以讓一個群集網絡下面包含單個子網的多個網卡
本例中共計16node1 16node2兩個節點,各節點四塊網卡,分別MGMET SMB01 SMB02 Heart
其中
節點1 SMB網卡30.0.0.18 30.0.0.19
節點2 SMB網卡30.0.0.0.20 30.0.0.21
在兩個節點之間拷貝文件,可以看到SMB多通道調用了所有網卡
創建SMB多通道限制策略 ,在各節點分別執行
再次拷貝,發現只調用選定網卡
運行命令查看,發現當前對于HV02節點的文件拷貝,只是通過30網段的四張網卡進行
除了限制SMB默認傳輸流量,我們還可以限制CSV重定向流量
配置群集,允許CSV重定向流量使用外部網絡 (可選,建議最好可以單獨布置多張內部通信網卡)
分別新建存儲各節點CSV重定向 SMB多通道限制策略
針對于CSV重定向 SMB多通道限制策略,server name不能輸入常規的機器名稱,根據結果來看應該是NETFT虛擬出來的一個地址,該名稱可以通過下圖命令獲得
此策略需分別在連接存儲的CSV各節點設置其它節點的名稱
創建完成后,模擬CSV重定向
通過命令可以查看到,節點1由于模擬了CSV重定向模式,因此節點1對于CSV的東西向流量訪問都將通過節點2完成
細心的朋友可能會發現,這里的命令和 2012時代不太一樣, 2016的Get-SmbMultichannelConnection命令 多了一個 SmbInstance參數
通過這個參數,我們可以看出,SMB多通道在各個不同的類型中所使用的網卡
Default:傳統SMB傳輸
CSV:CSV重定向
SBL:2016 SDS特定流量
SR:2016 存儲復制特定流量
由于環境有限,在WSFC 2016場景中,我并沒有完整的展示后端SOFS群集,前端HV群集的場景
本例我們是以一個融合群集為例
事實上如果說是前端HV群集,后端SOF群集,才是最佳的架構
在這種架構里面
SMB多通道限制策略應該這樣設計
HV群集設計由那兩塊網卡完成存儲連接SMB存儲連接多通道
SOFS群集設計由那兩塊網卡完成CSV重定向多通道
對于SMB存儲多通道只需要在HV一方設計即可,SOFS群集會檢測到對方只與我開放兩條通道,而自動選擇兩條通道去建立連接
SOFS群集直接和存儲連接,承載CSV卷,因此有必要設計CSV重定向流量多通道,可以通過添加多個內部群集網卡,然后通過策略限定,或修改參數,允許CSV重定向使用對外網卡
需要注意的一點是,SMB多通道限制策略,需要輸入一個ServerName名稱,在完成場景下,應該是在HV或SQL各節點創建這條策略,輸入名稱應該SOFS的VCO和VCO FQDN名稱
本例我們用于模擬測試輸入的對方節點名稱,實際場景是不會這樣做的!
對于CSV重定向 SMB多通道的限制是特殊的,因為它的Server Name不是使用的節點名稱,而是使用的奇怪的地址,這點可以通過事先模擬CSV重定向,獲取到對方地址,然后創建CSV重定向的 SMB多通道限制策略
以上為WSFC 2016 SMB多通道的新功能介紹,WSFC 2016時×××始,支持群集使用單個子網不同網卡構建SMB多通道,新增SMB Instance命令,用于查看SMB多通道用途
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。