posted

0 Comments

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。

在與客戶以及經銷夥伴介紹NSX的過程當中發現一件事情,就是了解vDS (vSphere Distributed Switch) 架構與管理方式的用戶,還真不是很普遍。一個原因或許是與其他地區相比,在台灣的超大型與大型客戶較少(這些絕大部分都已經用vDS了),而在中小型部署環境內,常常管理者與經銷商這邊覺得用vSS (vSphere Standard Switch)也就可以了。結果在大家轉移到NSX的過程當中還卡了一關:vDS是NSX的必要核心構件,但很多人還不太了解vDS。

而另一個狀況是很多虛擬化的工程師並不了解網路(因此對vDS卻步),而網路工程師並不了解虛擬化,而用原本實體交換器的概念來看vDS也是看得一團霧水,我早期開始學vDS的時候就是這種情形。因此這篇網誌其實是先跳脫出NSX,與大家分享一下一些vDS的簡單架構,希望能讓大家很快速地理解vDS的基本概念

但開始之前,如果大家要完整、深入地了解vDS的架構與功能,請務必閱讀下面這篇White Paper:http://www.vmware.com/files/pdf/techpaper/vsphere-distributed-switch-best-practices.pdf

為什麼要用vDS?我們的環境只有8台伺服器也要用vDS嗎

vDS講穿了,就只是一個將原本分散在各台vSphere Host上的vSS,進行集中管理組態的虛擬交換器方案。想像現在你需要在虛擬環境內加上一個新的網段,具備獨立的IP配置 / VLAN等配置。在原本分散的vSS環境內,工程師需要到每一台vSphere Host上把對應這個新網段的Port Group加入。但如果在有vDS的環境內,相關的配置都僅需要在vCenter內進行,設置了一次後,相關的配置就會自動送到各台vSphere Host上完成網路設定。

不採用vDS時,用戶會需要考慮下列問題:

• 所有的虛擬環境網路設定必須一台一台設,而且要小心不能設錯。比如說Port Group名稱一個打錯,然後vMotion就過不去了…

• 雖然標準的虛擬網路功能,包括L2 Frame Forwarding / VLAN與Trunking對應 / Teaming與Load Sharing等等功能在vSS與vDS都支援,但vDS內支援更多進階、企業等級的網路功能,比如說flow monitor / flow mirror / IO Control & shaping / LACP / Multiple TCPIP Stack等等…

如果企業環境內網路變動很少,管理者覺得自己可以Handle所有的分散式異動,用vSS當然也還OK。但即使只有八台伺服器,只要時常有虛擬網路的設定變動,考慮到每個異動要做八次,而且出問題時要到八台伺服器各自去對組態、抓問題、找設定這一大堆管理問題來比較,用vDS真的是比較好的管理方案並提供更好的虛擬網路功能。

要用vDS得用vSphere Enterprise Plus,很貴耶…

單純就純vSphere環境來說,是需要License的提升。但如果貴單位原本由於安全或是網路虛擬化的理由,已經要採購NSX了,或是貴單位要採用VSAN (Virtual SAN)在vSphere環境使用,那無論原本環境內是vSphere Standard / Enterprise / Enterprise plus的版本,在NSX / VSAN安裝時都會將vDS的功能打開。相關授權的說明可以在下面的Link看到: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1010555

上面的功能需要vSphere 5.5U3 or vSphere 6內才支援。目前採用NSX或是VSAN的用戶越來越多,vSphere License採購時選擇Enterprise Plus的企業比例也逐步提升,能夠使用vDS的環境也越來越廣泛了。

接下來我們做幾個名詞解釋。通常第一次接觸vDS / vSS會對這些名詞很困惑。

什麼是vDS的Port Group?

虛擬交換器不像一台24-port或是48-port實體交換器一樣,是有一個一個獨立的網路硬體埠。當我們把一個虛擬機器的vNIC或是vSphere的Kernel Port接上虛擬交換器,此時交換器上才會有對應的接口出現。因此當一個Cisco工程師常常在IOS的interface mode內做VLAN / Security等等的設定時,會發現在虛擬交換器內找不到這個地方,然後就很困惑。

在vDS或是vSS內我們要設定這些東西的地方就是Port Group。當管理者設定了一個Port Group時相當於設定一個具備同樣屬性的網路群組,這個群組內的虛擬機器vNIC或是Kernel Port介面會

• 屬於同一個VLAN

• 具備同樣的Teaming / Load-Sharing Policy

• 具備同樣的安全Policy以及QoS Policy…

大家可以這樣想像的是Port Group就像是在實體交換器內對一個Port Range或是一群Port同時下指令。實際上的生產環境內我們通常都會把一個Port Group直接對應給一個獨立的網段 / 一個指定的VLAN,然後把屬於這個網段的虛擬機器都接上此Port Group。

什麼是vDS的Uplink?

Uplink用來指定虛擬交換器如何透過vSphere Host的實體網卡來接取到實體交換器。vSphere環境內可能有很多台Host,每個Host上可能有不同的網卡配置,Uplink是一個統一的抽象化名稱來代表不同的實體網卡。比如說vDS上有Uplink1, Uplink2 … Uplink 8,在每一個vSphere Host要加入這個vDS時,就要指定Uplink 1 / Uplink 2 / Uplink 3…分別是對應到哪一個實體網路埠。

Uplink基本上跑的都是Trunk Mode,也就是說概念上就像是vDS是使用Uplink的Trunk Port接取到實體交換器的介面。當然在實體交換器上,這些與vSphere Host介接的介面,也應該要設定為Trunk Mode

一個好的vSphere架構內,應該要同時把不同的Kernel與VM Traffic進行分流與備援規劃,而這也是為何我們需要設定Uplink的重要原因。舉例來說,用戶可能想要

• 每台伺服器上有8個Uplink (實體網路埠),Management / vMotion要跑在Uplink 1 / Uplink 2,Storage要跑在Uplink 3 and 4,VM Traffic相關的Port Group要跑在Uplink 5~8

• 同樣是在Uplink 1&2,Management的PG主要要跑在Uplink 1,Uplink 2備援;而vMotion的PG要主要在Uplink 2,Uplink 1備援

• Storage的Traffic要同時使用Uplink 3與4,網路流要分散並同時在兩個Uplink上使用

或另外更複雜的例子,在上面提到的vSphere Distributed Switch Best Practice裡的一個範例像下圖:

即使新的伺服器網卡多為比如說兩個10G Port,相關程度的分流與備援規劃也都是必要的,舉例來說我們可能會想用On-board的1G網卡做Management,第一個10 Port做vMotion / Storage,第二個10 G Port做VM Service等等。

我自己覺得,把Port Group與Uplink的概念搞懂,對於虛擬交換器的理解應該就已經懂了八成,剩下就只是去細部研究不同的功能。而在下一篇網誌,我們會繼續討論使用NSX時,需要與vDS整合的注意事項。