前言
本文為閱讀 Best Practices - Nutanix AHV Networking | Nutanix 文件後,整理的個人重點心得。在本文中,官方文件有提到,請優先使用 GUI 進行操作,除非 GUI 不支援才使用 CLI 指令操作。
Load Balancing in Bond Interfaces
在 Nutanix 運作架構中,支援三種模式將網卡整合達到負載平衡和容錯的機制,分別是 Active-Backup、Balance-SLB、LACP and Balance-TCP,下圖為這三種機制的使用情境:
模式一、Active-Backup
這是 Bond mode 的預設模式,AHV 在啟用這個 Bond mode 時,會隨機挑選其中一個成員網卡當成 Active 其餘則是 Backup,優點是簡單易用且無須上層 Switch 支援即可使用,缺點是平時只有使用 Active 網卡,只有等到 Active 網卡發生故障時,Backup 網卡才接手網路流量。
圖、Active-Backup Fault Tolerance 運作示意圖
模式二、Balance-SLB
Nutanix 不建議使用這個 Bond mode,原因在於,Balance-SLB 負載平衡機制 (透過來源 MAC Hash 後平均分散流量),在 vSwitch 層級會將 Inbound Multicast 進行轉送,但實體交換器上「預設」開啟的 IGMP Snooping 機制,會干擾這種運作方式,所以必須停用實體交換器上的 IGMP Snooping,或組態設定 Static IGMP Groups 才行。此外,也不能跟實體交換器上的 LACP 結合使用。
值得注意的是,即便 Balance-SLB 負載平衡機制可行也要記得,只有 AHV Host 才能使用多個網卡頻寬,VM 虛擬主機還是只能使用單一網卡頻寬,如下圖所示。
圖、Balance-SLB Load Balancing 運作示意圖
圖、Virtual Switch Configuration for Balance-SLB 組態設定示意圖
模式三、LACP with Balance-TCP
此 Bond mode 模式,無論是 AHV 或 VM 虛擬主機,都能使用到 Bond 內所有網路卡頻寬。值得注意的是,Nutanix 和 OVS 要搭配實體交換器的 Dynamic link aggregation with LACP 設定才行,請不要使用 Static link aggregation with LACP,例如,EtherChannel with AHV。此外,建議在實體交換器上設定,當 LACP Negotiation Fails 時退回 Active-Backup 模式。
組態設定完成後,透過 Balance-TCP 負載平衡機制,會使用 Source IP、Destination IP、Source Port、Destination Port 將網路流量進行負載平衡,這也是為何無論是 AHV 或 VM 虛擬主機,都能使用到 Bond 內所有網路卡頻寬。
值得注意的是,預設情況下,AHV 主機會以「每秒 1 個」速率的方式,向實體交換器請求 LACP Control Packet (LACPDU),但大多數實體交換器的預設值為「30 秒」,所以建議將實體交換器的組態設定,調整為跟 AHV 主機相同,以達到一致性和快速故障偵測的目的,並且將實體交換器上的 lacp-time 組態設定為「fast」,屆時 LACP 故障偵測時間,便會從 90 秒縮減至 3 秒,也就是說只要 AHV 主機未接收到「3 個 (3 秒)」LACPDUs 時,那麼就會判定 LACP 連接故障。
圖、LACP and Balance-TCP Load Balancing 運作示意圖
圖、Virtual Switch Configuration for Balance-TCP with LACP 組態設定示意圖
AHV Networking Best Practices
- AHV Networking Best Practices - Part 1 | Nutanix
- (本文) AHV Networking Best Practices - Part 2 | Nutanix
- AHV Networking Best Practices - Part 3 | Nutanix