Acropolis Virtual Switch 與 vsphere Virtual Switch 之說明與簡易設定範例 一 甚麼是 Virtual Switch 虛擬交換機 用以提供虛擬機器之間網路溝通使用, 與實體交換機功能相同, 不 止於提供封包傳遞 二 Acropolis Virtual Switch: Acropolis 使用開源的虛擬交換機 Open vswitch, 正式環境等級之 虛擬交換機套件, 支援協定如下 : Visibility into inter-vm communication via NetFlow, sflow(r), IPFIX, SPAN, RSPAN, and GRE-tunneled mirrors LACP (IEEE 802.1AX-2008) Standard 802.1Q VLAN model with trunking Multicast snooping IETF Auto-Attach SPBM and rudimentary required LLDP support BFD and 802.1ag link monitoring STP (IEEE 802.1D-1998) and RSTP (IEEE 802.1D-2004) Fine-grained QoS control Support for HFSC qdisc Per VM interface traffic policing NIC bonding with source-mac load balancing, active backup, and L4 hashing OpenFlow protocol support (including many extensions for virtualization) IPv6 support Multiple tunneling protocols (GRE, VXLAN, STT, and Geneve, with IPsec support) Remote configuration protocol with C and Python bindings
Kernel and user-space forwarding engine options Multi-table forwarding pipeline with flow-caching engine Forwarding layer abstraction to ease porting to new software and hardware platforms Open vswitch 是一個由 Nicira Networks 主導的開源項目, 通過運行在虛擬化平台上的虛擬交換機, 為實體機上的 VM 提供第二層網路接入, 跟其它實體交換機一樣工作在 Layer 2 層 Open vswitch 充分考慮了在不同虛擬化平台間的移植性, 採用平台無關的 C 語言開發 Nutanix 官方建議設計架構如下 : 上圖範例建立兩個 br0 br1(bridge 可視為一個獨立的交換機 ) 對內部的虛擬機器使用 tap 介面, 提供虛擬介面供虛擬機器網路卡
使用 對外將實體網路卡透過頻寬合併技術, 做成邏輯介面 bond0 bond1 連接到實體交換機, 達成頻寬加大及容錯 CVM 有預先建立的 vnet0 vnet1 虛擬介面,vnet0 會連接到 br0, 提供瀏覽器及 ssh,nutanix cluster 溝通等相關連線管理 Hypervisior 層有一個 virbro 的虛擬交換機, 上 vnet1 虛擬介面供 CVM 的虛擬網路卡連結,virbr0 與 Hypervisor 進行邏輯連接, 此為 Hypervisor 層與 CVM 透過 Kernel 直接存取資料使用 以上圖為範例, 基礎設定方式 : 於 open vswitch 上新增 bridge 0 與 bridge 1 #ssh root@192.168.5.1 ovs-vsctl add-br br0 #ssh root@192.168.5.1 ovs-vsctl add-br br1 將 10G 介面加入 bridge 0, 並且設定為 bond0 #manage_ovs --bridge_name br0 --bond_name bond0 --interfaces 10g update_uplinks 將 1G 介面加入 bridge 1, 並且設定為 bond1 #manage_ovs --bridge_name br1 --bond_name bond1 --interfaces 1g update_uplinks
觀察 bridge 0 狀態 #manage_ovs --bridge_name br0 show_uplinks 觀察介面狀態 #manage_ovs show_interfaces 觀察 AHV 上的 OVS bond 狀況範例指令 #ssh root@192.168.5.1 "ovs-appctl bond/show bond0" Prism 管理介面可以觀察到虛擬網路介面
觀察 AHV 上的 OVS Bridge 設定 #ssh root@192.168.5.1 "ovs-vsctl show" 可透過 allssh 指令對全部 Nutanix 節點進行設定與查看, 下面是範 例指令 #allssh "manage_ovs show_interfaces" #allssh "manage_ovs --bridge_name bridge show_uplinks" #allssh "manage_ovs --bridge_name bridge --interfaces <interfaces> update_uplinks"
於所有 AHV 上之 Bridge 0 上設定 VLAN ID 範例 #ssh root@192.168.5.1 "ovs-vsctl set port br0 tag=10" #ssh root@192.168.5.1 "ovs-vsctl list port br0" 修改 CVM VLAN ID 範例指令 #change_cvm_vlan 10 在 bond 介面中, 觀察 Load Balancing 設定, 範例指令 #ssh root@192.168.5.1 "ovs-appctl bond/show"
Load Balancing 設定範例,active-backup 模式 範例指令 : #ssh root@192.168.5.1 "ovs-vsctl set port bond0 bond_mode=activebackup"
SLB 模式 範例指令 : #ssh root@192.168.5.1 "ovs-vsctl set port bond0 bond_mode=balanceslb" #ssh root@192.168.5.1 "ovs-vsctl set port bond0 other_config:bondrebalance-interval=60000"
LCAP 模式 範例指令 : #ssh root@192.168.5.1 "ovs-vsctl set port bond0 lacp=active" #ssh root@192.168.5.1 "ovs-vsctl set port bond0 bond_mode=balancetcp" #ssh root@192.168.5.1 "ovs-vsctl set port bond0 other_config:lacpfallback-ab=true"
三 vsphere vswitch vsphere Virtual Switch 有下列兩種 VSS Virtual Standard Switch 適用於所有 vsphere 版本, 缺少 Network I/O Control(NIOC) 與集中化 管理 支援協定如下 : Forwarding of L2 frames VLAN segmentation 802.1q encapsulation support NIC Teaming (support for more than one uplink) Outbound (Tx) traffic shaping Cisco Discovery Protocol (CDP) support
VDS Virtual Distributed Switch 適用於 vsphere Enterprise Plus 版本, 與 VSS 比較多了 Network I/O Control(NIOC) Network Resource Pool 與集中化管理 下列是 vds 進階功能 : Datacenter level management Network I/O Control Traffic Filtering and Marking Inbound (Rx) traffic shaping Configuration backup and restore Private VLANs Link aggregation control support Port state monitoring NetFlow Port mirroring 下表為 vsphere vswitch 功能比較表
四 vsphere vswitch 與 Open vswitch 之差異 Open vswitch 與 VMware vsphere vswitch 相較之下, 在管理面較為不足, 欠缺圖形介面之管理, 大部分設定須透過指令方式設定, 欠缺集中化管理功能 簡而言之,VMware vsphere vswitch 支援在單一介面上同時對多台 vsphere vswitch 進行設定, 而原生的 Open vswitch 則無此功能, Nutanix AHV 平台針對此情況有開發大量執行指令, 改善管理上之不足之處 Open vswitch 優勢為一穩定免費之軟體, 不論作為個人用途或是商業用途皆足以勝任 Open vswitch 可依照需求新增其他套件模塊來增加其功能, 如 : ovs-openflowd --- OpenFlow 交換機 ovs-controller --- OpenFlow 控制器 ovs-ofctl --- Open Flow 的命令行配置介面 ovs-pki --- 建立和管理公鑰框架 tcpdump 的修補 --- 解析 OpenFlow 的訊息功能上可以隨時依照開源社群所發布的功能來進行更新, 相對的 vsphere vswitch 為商業化軟體, 如須額外其他功能, 須配合第三方
廠商進行產品整合, 如與 Cisco 合作所推出的 Cisco Nexus 1000v, 即 為整合入虛擬化平台之設備 針對虛擬化平台而言, 兩者皆支援標準 801.1q 協定, 並皆具有網路卡容錯 負載平衡的功能, 而 vsphere vswitch 多了集中化管理功能及網路流量控制,Cisco CDP 或標準 LLDP 功能, 這是兩者比較明顯的功能上差異