Windows Server 2012 虛擬化實戰:網絡(二)

關於Windows Server的虛擬化網絡,前文描述了在操作系統層面上的出現的配置變化。其中的一些配置通過Windows Server提供的小工具即可實現,如網卡組的配置,而有些需要安裝Windows Server的服務器角色,如Hyper-V,然後通過Hyper-V Manager或者其命令行工具來配置虛擬交換機。但是要進行全局配置管理和實現一些高級功能,就需要接下來介紹的主角System Center Virtual Machine Manager(SCVMM)。關於SCVMM的安裝和部署可以參考另一篇博文——Windows Server 2012 虛擬化實戰:SCVMM的安裝和部署。下面圖給出SCVMM在我們數據中心部署的情況。

wKiom1eYLd7irwhOAAEX9LYVgyQ062.png-wh_50

如圖右側是處於SCVMM管理下的所有物理服務器和物理集羣,所有物理機器上都安裝了Windows Server 2012 R2的操作系統,安裝了Hyper-V服務器角色,同時也安裝了與SCVMM服務器通信的SCVMM Agent。而左上的3臺服務器構成SCVMM網絡架構的核心。SCVMM Database是用於存儲了所有配置信息和狀態信息的Sql Server數據庫。爲實現高可用,該Sql Server也可以配置成Sql Server故障轉移物理集羣。SCVMM其實是一個後臺服務,主要負責將Console控制檯管理的配置信息通過SCVMM Agent應用到被管理的物理機器上,並實時更新物理服務器及其上虛擬機的狀態。SCVMM Console則是用戶界面,SCVMM Console可以與SCVMM服務部署在一起也可以分開在不同服務器部署。SCVMM的架構與其他其他任何一個分佈式網絡架構類似,有集中的地方,SCVMM及其Database作爲核心,需要特別保護,避免崩潰。而每個被管理的物理節點崩潰與否卻不是那麼至關重要。

以上簡單介紹了SCVMM的網絡架構,大家有個總體的印象,接下來我們回到本文的主題,繼續討論使用SCVMM相關功能實現網絡的虛擬化。

三、SCVMM中的網絡虛擬化實戰

1、物理網絡拓撲

通過SCVMM的Console控制檯和命令行工具,可以對網絡中獨立的服務器和故障轉移集羣(Failover Cluster)的進行統一的配置和管理,其中最重要的功能即是在這些物理服務器上實現網絡虛擬化,爲搭建一個完整的虛擬化平臺奠定基礎。下圖爲我們數據中心2014年建設初期的物理網絡拓撲圖:

wKioL1eYLd6gbqVuAAFZpCWozjU449.png-wh_50

在建設初期,所有物理機器都安裝Windows Server 2012 R2並加入域。在上圖中藍色Network01、綠色Network02、紅色Network03、紫色Network04分別代表4個不同的物理網絡。爲什麼是4個物理網絡,因爲我們的服務器都有4個網卡,我們希望都利用上,並實現負載均衡。

2、網絡虛擬化的目標

我們初步考慮其中藍色與綠色綁定爲網卡組用於內部網絡,名稱定爲Internal Network,紅色和紫色綁定爲網卡組用於外部網絡,名稱定爲Public Network,也就是說我們計劃在這兩個網卡組的基礎上進行網絡的虛擬化。

在Internal Network上要建立4個虛擬網絡:

(1) Management Network 用於域和管理,配置給所有物理服務器和部分虛擬機,內網地址192.168.0.0/24

(2) Cluster Network 用於集羣心跳,配置給建立集羣的物理服務器,內網地址192.168.10.0/24

(3) Migration Network 用於虛擬機遷移,配置給所有成爲宿主的物理服務器,內網地址192.168.20.0/24

(4) Application Network 用於虛擬機之間自定義網絡,配置需要自定義網絡的那些虛擬機,這個是網絡虛擬化最徹底的部分,稍後將解釋,內網地址192.168.30.0/24

在Public Network上要建立2個虛擬網絡:

(1) Cernet Network 用於教育網,配置給所有需要教育網的虛擬機,公網地址121.192.x.x/26

(2) Datacenter Network 用於反向代理的內部網絡,配置給所有需要從外部通過非教育網連接的虛擬機,內部地址172.16.8.0/24。這個網絡比較特殊,如果電信網絡或者移動網絡需要連接虛擬機,需要通過反向代理服務器即如上圖的cloud-pm-ag01進行方向代理,以實現多種外網接入虛擬化平臺上的虛擬機。

如上面描述並不是每個物理服務器或者虛擬機都將接入上面所有虛擬網絡,而是可以進行非常靈活的配置,那麼我們就來看看如何在SCVMM中實現。

3、SCVMM中網絡虛擬化的關鍵概念

在SCVMM中有些功能的名稱看起來並不是那麼合理,許多配置項容易使人誤解,因而帶來了許多困擾。

在Windows  2012 R2中的網絡虛擬化小節中,我們提到了在操作系統層面發生的關於網絡配置的改變包含:網卡組、虛擬交換機,虛擬網卡。很容易發現這些配置其實只針對某個物理服務器或者某個虛擬機(虛擬網卡可用於虛擬機),那麼這些物理服務器和虛擬機的虛擬網卡如何算是連接在同一個網絡中,其實非常容易想到的就是我們必須在物理網絡的基礎上,爲這些物理服務器和虛擬機進行相同的配置,讓他們擁有同樣的虛擬交換機和虛擬網卡的配置,那麼整個虛擬化平臺就能正常工作了。因而在SCVMM上所做所有工作其最終目的就是爲了在多個物理服務器和虛擬機之間實現配置的一致性,當然最終也帶來的配置的便捷性。

其實在SCVMM中關於網絡虛擬化最重要的概念有以下幾個,我來看看他們本質上對應到操作系統層面將改變什麼?

(1) Logical Networks邏輯網絡和VM Networks虛擬機網絡

可以簡單的認爲就是上文中我們需要創建的虛擬網絡。這裏需要注意的是一個邏輯網絡(虛擬網絡)並不代表只有一個子網,例如上文中我們的目的之一是創建Management Network,並標識使用內網地址192.168.0.0/24,原因是我們並沒有超過255臺的機器。倘若我們的確有那麼多機器需要接入Management Network,並且它們分佈在不同地方,例如在不同的樓棟,不同的樓層或只是不同的房間,那麼在可能我們會遇到它們不僅僅使用同一個子網的情況。我們可以簡單的擴大子網來容納更多的機器,但是倘若它們之間能夠路由,那麼就不用在同樣的子網裏。也就是說邏輯網絡代表了可以路由的所有子網的集合,例如在樓棟A有子網192.168.0.0/24,在樓棟B有子網172.16.0.0/24,倘若它們可以路由,那麼它們可以劃入同一個的邏輯網絡中,實現同一個目的。因而邏輯網絡的配置與Network Site站點(可以理解爲物理上部署在一起的服務器構成一個站點)一起配置,也是爲了這個原因。同一個邏輯網絡中的所有機器是可路由的,也即是可以相互連接的,而不同的邏輯網絡是相互隔離的。

image

上圖是創建邏輯網絡的第1個界面,這裏有3個選項,代表的是3個不同的物理網絡環境。其中VLAN-baseed independent networks和Private VLAN network表示兩種不同的基於VLAN的物理網絡環境,如果的確有就選,但是一般情況下,我們不會在數據中心內使用VLAN,因而我們重點關注第1個選項One connected network,就是一般的情況下直接通過交換機路由器連接,而沒有做VLAN配置的物理網絡。

其中有兩個複選框:Allow new VM networks created on this logical network to use network virtualization,這個需要特別注意VM network並不是虛擬網絡的意思,而是虛擬機網絡。該選項的意思是在這個邏輯網絡的基礎上允許自定義虛擬機網絡,也就是第二層虛擬化。第二層虛擬化是我想的,不是官方概念,下圖表示虛擬機網絡的示意圖。

image

由於SCVMM是支持多租戶的,也就是說在同一個邏輯網絡上(邏輯網絡由管理員確定,租戶無法更改),允許租戶自定義自己的網絡,租戶可以控制自己的虛擬機,也可以控制自己的虛擬機網絡,這樣可以滿足了租戶的個性需求。

Create a VM network with the same name to allow virtual machines to access this logical network directly,則允許創建一個同名的虛擬機網絡,以便用於虛擬機接入該邏輯網絡。

虛擬機必需連接虛擬機網絡,而虛擬機網絡與邏輯網絡關聯。第一個複選框允許對邏輯網絡做第二層虛擬化,那麼隨後還可以在該邏輯網絡上再創建多個虛擬機網絡,並自定義虛擬機網絡IP池;第二複選框則允許默認創建一個同名的虛擬機網絡,並且使用邏輯網絡相同的IP池。如果以上兩個複選框都不選擇的話,那麼該邏輯網絡將毫無用處。虛擬機網絡並不只用於虛擬機,而是用於虛擬網卡。物理服務器上創建的虛擬網卡也需要接入虛擬機網絡,所以默認創建一個同名的虛擬機網絡,並且使用邏輯網絡相同的IP池的選項是非常重要的。

微軟的官方文檔中,邏輯網絡之間是絕對隔離的,但是對於實現第二層虛擬化的虛擬機網絡(非默認創建,這裏容易混淆)之間卻不是,那僅僅是便於租戶對網絡進行管理而已。

(2) Port Profiles端口配置文件

端口配置文件是爲虛擬交換機的各類接口提供配置的,有兩種端口的配置文件,我們參照一個物理交換機來理解會簡單的多。物理交換機上的端口按照網絡結構可以分爲兩種:一種是普通端口即連接下行設備的,例如連接每個服務器;另一種是上行端口即連接上行設備,例如連接上級交換機或路由器。端口配置文件也是爲這兩類在虛擬交換機上的端口而生。

Virtual Port Profile普通端口配置文件,可以規範下行端口的行爲,例如該端口在Offload減負載,Security安全和Bandwidth帶寬上的配置。其中網絡領域Offload技術是蓬勃發展的,其主要目的都是爲了減少網絡I/O對CPU的消耗,提高效率,因而將CPU的負載轉移到網卡上,那麼可能就需要物理網卡的支持。另一個在帶寬配置上,一個虛擬交換機可能連接多個邏輯網絡(虛擬網絡),那麼可以配置它們之間的帶寬如何分配。

image

Uplink Port Profile上行端口配置文件,配置虛擬交換機將連接那些邏輯網絡(虛擬網絡)。這裏Network configuration可以詳細到站點與邏輯網絡的組合,本質上是決定哪些物理服務器參與連接邏輯網絡,哪些邏輯網絡參與連接虛擬交換機。

image

(3) Logical Switch邏輯交換機

Logical Switch邏輯交換機在操作系統層面上將對應創建一個虛擬交換機,並且圍繞該虛擬交換機進行配置,也可以認爲是一個虛擬交換機的配置中心。其配置的本質就是組合普通端口配置和上行端口配置,以方便在物理服務器和虛擬機上的配置。

image

如上圖,我們將把藍色與綠色標識的物理網絡綁定爲網卡組用於內部網絡Internal Network,並通過Internal Logical Switch進行統一管理。將其上關聯目標中的4個邏輯網絡(虛擬網絡)。其中有個選項SR-IOV單根虛擬化,如圖中說明,即允許虛擬機直接使用某個物理網卡,簡單可認爲即某個物理網卡直接當做虛擬機的虛擬網卡,以提高網絡I/O性能。那麼該選項不符合我們的期望,因爲我們希望創建網卡組做負載均衡,與SR-IOV是矛盾的。

另外兩個配置項Uplink和Virtual Port即使分別配置關聯哪些上行端口配置文件和普通端口配置文件。其中普通端口配置文件並不是直接一對一的配置,而是通過Port Classifications端口分組進行關聯。因而我們中心的總體的配置邏輯如下圖:

image

4、SCVMM中網絡虛擬化配置

結合上文我們的網絡虛擬化目標和SCVMM的相關配置功能,我們大體上需要完成如下圖配置:

image

上圖中的配置是一個完全的配置,也就是說並不是所有物理機器都需要4個Physical Network物理網絡,也並不是每個虛擬機都需要接入所有的VM Network虛擬機網絡,實際應用中,要根據實際需要。

(1) 創建Logical Network邏輯網絡

我們利用每個物理機器上的4個物理網卡兩兩組合成網卡組,並在其上創建6個邏輯網絡(虛擬網絡),因爲物理環境中沒有VLAN配置,都選擇One connected network方式。站點分爲兩個,一部分服務器在Buliding A,一部分服務器在Buidling  N。這6個邏輯網絡的配置如下:

邏輯網絡基於網卡組站點IP地址池第二層虛擬化同名虛擬機網絡虛擬機網絡
Management NetworkInternalBuilding A          
Buidling N
192.168.0.0/24Management Network
Cluster NetworkInternalBuidling N192.168.10.0/24
Migration NetworkInternalBuidling N192.168.20.0/24
Application NetworkInternalBuidling N192.168.30.0/24App Network          
Database Network
Cernet NetworkPublicBuilding A          
Buidling N
121.192.x.x/26Cernet Network
Datacenter NetworkPublicBuilding A          
Buidling N
172.16.8.0/24Datacenter Network

完成後如下圖:

image

(2) 創建Port Profile端口配置文件

每個物理網卡或者網卡組虛擬化後,可以在其上創建多個邏輯網絡,但是這句話在SCVMM卻不是顯而易見的。你需要事先配置好邏輯網絡,端口配置文件和邏輯交換機,而後在配置每個物理服務器的時候,將這些配置與物理機器的某個網卡或者多個網卡(自動構成網卡組)關聯。也就是說你在進行邏輯網絡,端口配置文件和邏輯交換機配置時是與硬件無關的,但是你需要知道你的目的是最終要與硬件網卡關聯。

image

上行端口配置文件的配置方式是非常靈活的,有時讓人難以把握。我們需要回到上行端口配置文件的本質,是爲了統一配置物理服務器和邏輯網絡的連接。這時你可能還需要明白處於不同地理位置的服務器,如不同樓棟或樓層的服務器可能配置會又不一樣,那麼上行端口配置文件就不會一樣。也就是說上行端口配置文件出於需要關聯的邏輯網絡有關外還與站點有關。與站點關聯的目的是規定該上行端口配置文件可以被應用到哪些物理服務器上。

我們以Internal Uplink Port- Building N爲例看看上行端口配置文件的屬性。Internal Uplink Port- Building N主要關聯內部的邏輯網絡,並且選擇的服務器位於在Building N。

image

普通端口配置文件本質上是爲了控制端口的行爲,在不同邏輯網絡間調配負載。SCVMM內置了一些,我們根據不同的邏輯網絡也分別創建了一些。我們以Management Port Profile爲例,Security暫不選,其他配置如下圖,其中帶寬權重爲10,即不要超過總帶寬的10%。

image

image

(3) 創建Logical Switch邏輯交換機

邏輯交換機的目的在於組合以上配置。需要特別注意的是對於普通端口配置文件,我們需要創建Port Classifications端口分組,而後通過端口分組關聯普通端口配置文件。如下我們針對兩個網卡組分別創建了兩個邏輯交換機,其中Internal Logical Switch關聯4個邏輯網絡:Management Network、Cluster Network 、Migration Network和Application Network;Public Logical Switch關聯2個邏輯網絡:Cernet Network和Datacenter Netwrok。

image

接下來我們來看看Internal Logical Switch的配置。在Uplink選項卡中關聯所有域Internal有關的上行端口配置文件。這樣就讓Internal Logical Switch關聯上所有相關位置和所有屬於Internal的邏輯網絡。

image

在Virtual Port選項卡中關聯相關的普通端口配置文件。

image

(4) 爲物理服務器配置虛擬網絡

所有的配置都準備好了,那麼最後的步驟就是讓物理服務器應用這些配置。我們通過在物理服務器上右鍵屬性的Virtual Switches選項卡中來實現。如下圖我們爲名稱爲cloud-pm-cn01的物理服務器加入瞭如下兩個Logical Switch(Virtual Switch),Internal Logical Switch和Public Logical Switch,每個Logical Switch都使用兩張物理網卡,並在在其下加入需要該物理服務接入的邏輯網絡所需要的Virtual Network Adapter虛擬網卡。

這裏需要特別注意,每臺物理服務器配置需保持一致,並且劃歸某個Logical Switch的物理網卡在物理鏈路上必須在同一個網絡中。如果加入的物理網卡多於一個,將自動組成網卡組。在Uplink Port Profile列中需要選擇該物理服務器物理位置相同的那個上行端口配置文件,以便與其所處物理位置相同的物理服務器通訊。

image

對其中每個虛擬網卡的配置如下圖。需要特別注意的是Management虛擬網卡的配置。在完成物理服務器操作系統安裝後,將物理機器加入域中,這時物理網卡Ethernet 01會配置域網絡,當我們配置Management虛擬網卡時注意勾選This virtual network adapter inherits settings from the physical manangement adapter。這樣Management虛擬網卡將獲得Ethernet 01的配置(這時域網絡會短暫斷開)。VM Network選擇對應的虛擬機網絡,Port Profile選擇對應的普通端口分組,以應用相關端口配置策略。

image

其實上圖中對虛擬網卡的配置界面與虛擬機的虛擬網卡是相同的,接下來我們也看看虛擬機中如何應用虛擬網卡配置。

(5) 爲虛擬機配置虛擬網絡

我們對需要配置網絡的虛擬機右鍵,選擇Hardware Configuration選項卡,併爲其添加虛擬網卡Network Adapter 1,如下圖可見對該虛擬網卡的配置。

image

 

至此我們大體瞭解了Windows Server 2012 R2下通過SCVMM進行網絡虛擬化配置流程,及其中的難點。接下來我會繼續總結更多SCVMM搭建虛擬化平臺的知識,請大家繼續關注。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章