2014年9月23日 星期二

NIC 小組概觀

NIC 小組概觀

轉載至 http://technet.microsoft.com/zh-tw/library/hh831648.aspx

發佈時間: 2012年2月
更新日期: 2012年2月
適用於: Windows Server 2012 R2

NIC 小組,也就是負載平衡與容錯移轉 (LBFO),可讓某部電腦上的多張網路介面卡因為下列用途而放入一個小組:
  • 頻寬彙總
  • 流量容錯移轉以防網路元件故障時中斷連線
這個功能已經是獨立硬體廠商 (IHV) 進入伺服器網路介面卡市場的其中一個需求,但到目前為止,NIC 小組尚未包含在 Windows Server 作業系統中。

NIC 小組需要有單一 Ethernet 網路介面卡,這個介面卡可用於分隔使用 VLAN 的流量。透過容錯移轉提供錯誤保護的所有模式都至少需要有兩張 Ethernet 網路介面卡。Windows Server® 2012 在一個小組中最多支援 32 張網路介面卡。

本指南包括下列各節,說明 Windows Server 2012 中的 NIC 小組技術:
  • NIC 小組架構
  • 頻寬彙總 (也就是負載平衡) 機制
  • 流量分佈演算法
  • 虛擬機器中的 NIC 小組
  • 不相容性
  • 需求

現今市場上,所有 NIC 小組解決方案都有類似的架構,如圖 1 所示。
標準 NIC 小組解決方案架構
圖 1   小組解決方案架構
兩張或多張實體網路介面卡連接至 NIC 小組解決方案多工單元,然後向作業系統呈現一張或多張虛擬介面卡 (也就是「小組網路介面卡」)。有幾種不同的演算法可在實體網路介面卡之間分佈輸入和輸出流量。在最新的非 Microsoft NIC 小組解決方案中,小組網路介面卡會依虛擬 LAN (VLAN) 分配流量,讓應用程式可以同時連線至不同的 VLAN。在技術上,這個流量的分離並不是 NIC 小組的一部分。不過,因為其他 NIC 小組在商業上的實作有這個功能,因此 Windows Server 2012 實作也包含這個功能。

有兩組基本的演算法可用於 NIC 小組:
  • 需要交換器才能參與小組的演算法,也就是所謂的「交換器相依模式」。這些演算法通常需要小組的所有網路介面卡都連接至相同的交換器。
  • 不需要交換器就能參與小組的演算法,也就是所謂的「交換器獨立模式」。由於交換器並不知道網路介面卡是小組的一部分,因此小組網路介面卡可以連接至不同的交換器。交換器獨立模式不需要小組成員連線至不同的交換器,它們只不過是使這個狀況變成可能。
NIC 小組的交換器相依模式有兩個常見的選項:
  • 一般或靜態小組 (IEEE 802.3ad draft v1)。這個模式需要交換器和電腦上的設定,以識別哪些連結形成小組。因為這是以靜態方式設定的解決方案,因此沒有其他通訊協定可協助交換器和電腦識別錯誤地插入的纜線,或可能造成小組失敗的其他錯誤。伺服器等級的交換器通常會支援這個模式。
  • 動態小組 (IEEE 802.1ax, LACP)。IEEE 802.1ax 使用連結彙總控制通訊協定 (Link Aggregation Control Protocol,LACP),以動態方式識別電腦與特定交換器之間的連結。這樣可以自動建立小組,而且理論上,只要從對等網路介面卡傳輸或接收 LACP,就可以擴充或縮減小組。一般伺服器等級的交換器支援 IEEE 802.1ax,但大部分的交換器需要手動管理,才能在連接埠上啟用 LACP。

    note備註
    IEEE 802.1ax 也是一般所熟知的 IEEE 802.3ad,因為在發行為 IEEE 802.1ax 之前,這是由 IEEE 802.3ad 委員會所開發。
兩種模式應該都會導致輸入和輸出流量接近彙總頻寬的實際限制,因為小組中的連結集區會當做單一管線運作。

您可以使用多種方式,在可用的連結之間分佈輸出流量。嘗試保留單一網路介面卡上與單一流量 (TCP 資料流) 相關的所有封包。將順序錯誤的封包到達案例減至最少時需要這個動作。
Windows Server 2012 中的 NIC 小組支援下列流量分佈方法:
  • Hyper-V 交換器連接埠。如果虛擬機器有獨立的媒體存取控制 (MAC) 位址,虛擬機器的 MAC 位址就可以提供分配流量的基礎。在虛擬化中使用這個配置有一個優點。由於相鄰的交換器可以判定特定來源 MAC 位址僅位於一個連接的網路介面卡,因此交換器將會根據虛擬機器的目的地 MAC 位址,平衡多個連結上的輸出負載 (交換器到電腦的流量)。搭配虛擬機器佇列使用時,這特別有幫助。不過,這個模式可能不夠明確,無法取得平衡良好的分佈,而且它會將單一虛擬機器限制為單一網路介面卡上可用的頻寬。

    note備註
    Windows Server 2012 使用 Hyper-V 交換器連接埠做為識別碼,而非來源 MAC 位址,因為在某些情況下,虛擬機器可能會在交換器連接埠上使用多個 MAC 位址。
  • 雜湊。這個演算法會根據封包的元件建立雜湊,然後將擁有該雜湊值的封包指派給其中一個可用的網路介面卡。這樣會使來自相同 TCP 資料流的所有封包保留在相同的網路介面卡上。單獨雜湊通常會透過可用的網路介面卡建立平衡。市面上的部分 NIC 小組解決方案會監視流量的分佈,然後將特定的雜湊值重新指派給不同的網路介面卡,嘗試以更好的方式平衡流量。動態重新分佈也就是「智慧載入平衡」或「彈性負載平衡」。
可用來做為雜湊函式輸入的元件包括:
  • 來源和目的地 MAC 位址
  • 來源和目的地 IP 位址 (需要/不需要考慮 MAC 位址 (2-Tuple 雜湊))
  • 來源和目的地 TCP 連接埠,通常與 IP 位址 (4-Tuple 雜湊) 一起使用
Quadruple 雜湊會建立一個較為精細的流量資料流分佈,這會導致可以在網路介面卡之間獨立移動的資料流較小。不過,它無法用於非 TCP 或 UDP 流量的流量,或者從堆疊隱藏 TCP 和 UDP 連接埠的流量,例如網際網路通訊協定安全性 (IPsec) 所保護的流量。在這些情況下,雜湊會回復到 2-Tuple 雜湊。如果該流量不是 IP 流量,雜湊產生器將會使用來源和目的地 MAC 位址。

Windows Server 2012 中的 NIC 小組在虛擬機器中也適用。這可讓虛擬機器擁有連接到多個 Hyper-V 交換器的虛擬網路介面卡,而且即使在該交換器底下的網路介面卡中斷連接,仍然還是有連線能力。使用單一根目錄 I/O 虛擬化 (SR-IOV) 之類的功能時,這特別重要,因為 SR-IOV 流量不會進出 Hyper-V 交換器。因此,在 Hyper-V 交換器底下的小組無法保護它。系統管理員可以使用虛擬機器小組選項設定兩個 Hyper-V 交換器,每個交換器都連接到自己支援的 SR-IOV 網路介面卡。此時:
  • 每個虛擬機器都可以從一張或兩張 SR-IOV 網路介面卡安裝虛擬功能。之後,如果網路介面卡中斷連接,虛擬機器可以從主要虛擬功能容錯移轉到備份虛擬功能。
  • 或者,虛擬機器可能有一個來自其中一張網路介面卡的虛擬功能,以及連接到另一個交換器的非虛擬功能網路介面卡。如果與虛擬功能相關的網路介面卡中斷連接,該流量可以在不失去連線能力的情況下,容錯移轉到另一個交換器。
note備註
因為在虛擬機器中,網路介面卡之間的容錯移轉可能會導致使用另一張網路介面卡的 MAC 位址傳送流量,因此,與使用 NIC 小組的虛擬機器相關的每個 Hyper-V 交換器連接埠,都必須設為允許 MAC 詐騙,或者必須使用 Set-VmNetworkAdapter PowerShell Cmdlet 設定 “AllowTeaming=On” 參數。

NIC 小組與 Windows Server 2012 中的所有網路功能相容,但有三個例外:SR-IOV、遠端直接記憶體存取 (RDMA) 以及 TCP Chimney。對於 SR-IOV 和遠端直接記憶體存取 (RDMA),資料是直接傳遞到網路介面卡,而不需要通過網路堆疊。因此,網路介面卡小組無法查看資料,或將資料重新導向至小組中的其他路徑。使用 Windows Server 2012 中的 NIC 小組時,不支援 TCP Chimney。

NIC 小組需要有單一 Ethernet 網路介面卡,這個介面卡可用於分隔使用 VLAN 的流量。透過容錯移轉提供錯誤保護的所有模式都至少需要有兩張 Ethernet 網路介面卡。Windows Server 2012 實作在一個小組中最多支援 32 個 NIC。

您可以在 Windows Server 2012 中,透過 NIC 小組管理介面或豐富的 PowerShell 介面,設定 NIC 小組。NIC 小組管理 UI 是一個簡單的介面,這個介面使用 PowerShell Cmdlet 來管理小組。 如需 NIC 小組 PowerShell Cmdlet 的完整指南,請參閱下方。有多種方式可以叫用 NIC 小組管理介面。

  1. 開啟 [伺服器管理員]。
  2. 在主控台樹狀目錄中,按一下 [本機伺服器]。
  3. 在詳細資料窗格的 [屬性] 區段中,按一下 [遠端桌面] 下方的 [NIC 小組管理]。

  1. 按一下 [開始],輸入 lbfoadmin,然後按 Enter。或者,依序按一下 [開始] 和 [執行],輸入 lbfoadmin,然後按 ENTER
若要同時管理多部伺服器,您可以透過 [新增伺服器] 工作項目,或使用下列命令來新增伺服器:
lbfoadmin /servers servername1 servername2 …
這將會以指定伺服器名稱的清單執行 NIC 小組管理介面。

  1. 按一下伺服器清單中的伺服器名稱 (即使只有一個單一的伺服器)。
  2. 從 [小組] 區段的 [工作] 下拉式功能表中,按一下 [新增小組]。
  3. 在 [新增小組] 對話方塊中,輸入小組名稱,然後選取小組中的網路介面卡。
  4. 如果您使用 VLAN,請清除 [預設] 核取方塊,然後指定 VLAN 識別碼。根據預設,小組將會向上傳遞所接收到的所有流量,而不管 VLAN 識別碼為何 (雖然 VLAN 識別碼是與封包一起傳遞,因此堆疊中的其他元件可以正確進行排序)。
  5. 如果您要使用預設值之外的其他模式,按一下 [進階],然後依需要指定小組模式 (交換器獨立、靜態小組或 LACP) 以及負載分散模式 (位址雜湊)。
  6. 按一下 [確定] 來建立小組。
    note備註
    負載分散模式的 [位址雜湊] 選項為先前所述的 4 Tuple 雜湊。NIC 小組的 PowerShell Cmdlet 可讓您設定其他位址雜湊模式。
    若要修改網路介面卡小組的設定,按一下小組清單中的小組名稱,然後按一下工作清單中的 [修改小組]。

Windows Server 2012 NIC 小組所擁有的 PowerShell Cmdlet 會針對下列物件類型運作:

 

要管理的物件
物件上支援的作業
1. NetLbfoTeam
Get、New、Remove、Rename、Set
2. NetLbfoTeamMember
Add、Get、Remove、Set
3. NetLbfoTeamNic
Get、New、Remove、Set
如需 NIC 小組 PowerShell Cmdlet 的進一步資訊及完整描述,請參閱適用於 NIC 小組的 PowerShell Cmdlet 參考。

沒有留言:

張貼留言