HPC7000刀片Flex-10_VC配置與vsphere網絡設計


    本文主要描述了HP C7000刀片服務器系統中的Flex-10 VirtualConnect模塊的配置 及VMware vSphere的網絡,分析講解了FlexNIC和vmnic的對應關系,以及如何設計一個高可用高冗余的VMware基礎架構。
【C7000刀箱和VMware虛擬機架構的千兆網絡設計】

圖片來源:P4《HP Virtual Connect for the Cisco Network Administrator 2.3》

    HP C7000刀片服務器機箱(以下簡稱“刀箱”)正面可以插16個半高的服務器,每把半高的刀片服務器最多支持8個物理網絡端口(分別為板載2個,Mezz1插槽可插1個雙端口卡,Mezz2插槽可以插1個四端口卡)。在刀箱的背面可以插8個半寬的網絡模塊,每個網絡模塊一一對應刀片服務器上的一個網絡端口。每個網絡模塊通常都有16個downlink,一一對應正面的16台半高的服務器。刀片服務器上的網絡端口和網絡模塊上的Downlink一一對應,通過刀箱的矩陣背板無阻塞的連接在一起。

上圖所示的就是一把半高刀片服務器的網絡接口和背部網絡模塊之間的關系。
·板載的LOM1是刀片服務器上的第一個網絡端口,對應於Bay1中的網絡模塊;(注:LOM是LAN On Motherboard的縮寫,意思就是主板板載網卡)
·LOM2是刀片服務器上第2個網絡端口,對應於Bay2的網絡模塊;
·Mezz1插槽插了一個雙端口網卡,Mezz1:1是這網卡上的第一個端口,也是服務器第三個網絡端口,對應Bay3的網絡模塊
·Mezz1:2是網卡上第2個端口,是服務器第4個網絡端口,對應Bay4的網絡模塊
·以此類推。。。。。。
·Mezz2:4是Mezz2插槽上插的4端口網卡的第4個網絡端口,是服務器的第8個網絡端口,對應Bay8的網絡模塊。(下文有些地方將Mezz1:1簡寫為M1:1)
這里所說的網絡模塊可以是一個網絡交換機,也可以是一個VC模塊。
(注:VC是Virtual Connect的縮寫,它不具備網絡交換功能,但是可以將downlink端口靈活的映射到uplink端口上,這是HP獨有的模塊。(Cisco有類似的產品,本文不作介紹)。關於VC的進一步介紹,可以參考HP的官方網站:http://h18000.www1.hp.com/products/blades/virtualconnect/)
網絡模塊的downlink端口和刀片也是一一對應的。每個網絡模塊的第一個端口,總是連接到第一把刀片上去的。以此類推,第16個端口肯定是和第16把刀片相連接。
?
因此我們有:
·Bay1網絡模塊的downlink1 對應於第1把刀片服務器的第1個網口;
·Bay1網絡模塊的downlink2對應於第2把刀片服務器的第1個網口;
·。。。。。。
·Bay1網絡模塊的downlink16對應於第16把刀片服務器的第1個網口;
同時
·Bay2網絡模塊的downlink1 對應於第1把刀片服務器的第2個網口;
·Bay2網絡模塊的downlink2對應於第2把刀片服務器的第2個網口;
·。。。。。。
·Bay2網絡模塊的downlink16 對應於第16把刀片服務器的第2個網口;
並且
·Bay3網絡模塊的downlink1 對應於第1把刀片服務器的第3個網口;
·。。。。。。
·Bay4網絡模塊的downlink1 對應於第1把刀片服務器的第4個網口;
·。。。。。。
最后
·Bay8網絡模塊的downlink1 對應於第1把刀片服務器的第8個網口;
·Bay8網絡模塊的downlink2 對應於第2把刀片服務器的第8個網口;
·。。。。。。
·Bay8網絡模塊的downlink16對應於第16把刀片服務器的第8個網口。
?
好吧,原諒我這么羅嗦。但是搞清楚這些是非常重要的,因為更暈更復雜的還在后面呢。
再上一個圖,這次看懂了么?

圖片來源:P5 《HP Virtual Connect for the Cisco Network Administrator 2.3》
?
到了ESX/ESXi主機中,按照LOM – Mezz1 – Mezz2 的順序,網卡的對應關系是:


原先我們的VMware ESX 主機的配置是這樣的:
·LOM1配置為僅用於service console
·LOM2 (vmnic1)和M2 :2 (vmnic5)組合在一起,用於VM Network
·M1:1(vmnic2) 和M2:3(vmnic6)組合在一起,用於存儲網絡NFS或者iSCSI
·M1:2(vmnic3) M2:4(vmnic7)組合在一起,用於vMotion。將vMotion和存儲網絡分開,是為了減少網絡擁堵。
·M2:1(vmnic4)作為第2個service console,一方面做冗余,另一方面,它位於獨立的備份網絡中,用於第三方的軟件(如Symantec NBU 7)備份虛擬機。
這個設計中,所有2個網絡接口的組合都故意分布在不同的物理網卡上,這樣可以避免因為某一個板塊的物理故障,導致服務下線。

在ESX主機中看出來大概是這樣的:


【萬兆網絡設計】
    自從G7系列的服務器開始,HP將Flex-10網卡集成到了自家服務器的主板上,服務器正式進入了萬兆時代。Flex-10網卡是很強勁的網卡,配合Flex-10 VC 模塊,每個Flex-10網口都可以拆分成4個FlexNIC或者3個FlexNIC+1個iSCSI HBA或者3個FlexNIC+1個FC HBA。是的,這塊卡不是一塊普通的以太網卡,它是虛擬化時代的產物,一卡多用,既可以作為以太網卡,也可以作為HBA卡。
    HP VC Flex-10 Enet模塊和前面所說的網絡模塊一樣,也是插在HP c7000刀箱背部的半寬的網絡模塊,同樣具有16個downlink,通過背板和刀片服務器網卡相連通。在HP VC Flex-10 Enet模塊的面板上有8個SFP+插槽(分別標記為x1到x8),可以最多連接8個萬兆光纖上聯。不過要注意的是,盡量不要使用x1、x7和x8,這3個端口通常用作VC模塊之間的堆疊。在水平方向上的2個VC模塊之間,通過x7和x8端口以背板通道內部接通。而x1端口則和一個CX4的銅纜接口共用,用於垂直方向上的堆疊。

    配合了VC Flex-10 模塊,每個刀片服務器上的萬兆端口都可以靈活的根據需要,變身為帶寬各不相同的最多4個端口。
有了VC Flex-10 Enet模塊和Flex-10網卡之后,不僅ESXi主機的帶寬大大提高,而且還可以根據實際情況 的需要安排帶寬的分配,同時兼顧到物理鏈路、物理板塊和模塊的冗余。
    這樣,我的刀片服務器網卡部分的設計就變成這樣。


 
    同樣,你可以觀察到,上圖這樣的設計也是為了避免物理網卡或VC模塊損壞造成的單點失敗。
【FlexNIC】
    關於FlexNIC有個常見的誤區,(在沒接觸實物之前我也一直沒能理解正確)就是此時並非每個萬兆端口可以最多分成4個FlexNIC,而是必須不多不少分成4個FlexNIC。就算你只划分了1個FlexNIC,並且把所有10G帶寬都分配給了這第一個FlexNIC,后面3個FlexNIC甚至都沒出現在VC管理器的列表中,這3個帶寬為0的FlexNIC還是存在的,還能被主機操作系統認出來。只不過此時,網卡的表現為Disconnect狀態(Windows下,相當於一個沒插網線的物理網口),或Down的狀態(ESXi下)。?
    下圖說明的是VC中,Flex-10物理網卡和FlexNIC的對應關系。每個Flex-10端口都被分成 了a、b、c、d四個FlexNIC端口,例如:LOM:1就分解成了LOM:1-a、LOM:1-b、LOM:1-c和LOM:1-d。

結合前面的VMware網卡設計中帶寬的分配,就變成了這樣。


    注意這里每個FlexNIC前面的序號,這是在VC Manager (一個Web GUI管理界面)中配置的時候生成FlexNIC時候的順序,這個順序是固定的。第1個端口必然是在LOM:1上划分出來的a,第2個端口是LOM:2上划出的第a口,第3個端口則是Mezz1:1上的第a口,依次類推。
    出於對幾台老的刀片服務器的兼容考慮,我們多配置了2個GBE2C交換機模塊在刀箱網絡模塊的Bay5和Bay6。也意外多配置了一個雙端口千兆網卡在Mezz2插槽(注:這個千兆網卡其實是沒有必要的)。讓我們來看看混插了千兆網卡和Flex-10的網卡的情況下,網絡端口是怎樣的情況。
    最終我們的刀片服務器是這樣的:


安裝完ESXi后,在vSphere Client配置界面中看出來的情況卻是這樣的

    細心的同學可能已經發現了,vmnic的編號是從0開始的,但是和VC Manager中的順序不同,是先依次編排完第一個雙端口板載物理網卡再去編排Mezz1卡,然后再編排Mezz2卡的。因此對應關系如下表:

    看到這里,大家是不是有點暈呢?好吧,建議你先去休息幾分鍾,抽支煙或者喝杯咖啡。然后再接下去看。因為搞懂網卡的對應關系對於設計出一個好的方案並且正確的實施起來,真的真的非常重要。
下面我們通過具體的操作進一步加強大家的理解。
?
【划分FlexNIC的操作】
    划分FlexNIC的工作是通過VCM(Virtual Connect Manager)完成的,VCM可以通過刀箱的OA訪問到,也可以直接通過VC模塊的iLO地址訪問到。
在最近的Virtual Connect Manager版本3.51中,具體的做法如下:
    從菜單中選擇Define—> Server Profiles。起個Profile名稱,選擇將應用到哪一把刀片服務器上,然后依次添加Ethernet Adapter Connections (也可以添加1個iSCSI HBA或1個FC HBA,不過本文不討論這2種情況)。這里添加Ethernet Adapter Connections的過程就是划分FlexNIC的過程。
默認已經分配好了2個端口,它們是無法被刪除的。之后可以依次添加新的網絡端口,每個可以配置單個VLAN(此時服務器網絡端口為untagged)或者多個VLAN(tagged)。

·要使得當前網絡接口只支持一個VLAN,選擇Select a network,然后從列表中選擇想要的那個VLAN。
·要支持多個VLAN,則選擇Multiple Networks,並從列表中選擇多個VLAN,拖拽添加到右側列表中。
·如果你想分配一個帶寬為0的端口,則選擇Unassigned。
下圖顯示的是選擇Multiple networks時添加多個網絡的界面,可以多選並同時拖拽。

    此外,端口的速率是可以自定義的。選擇CUSTOM就可以分配給當前端口一定的帶寬。最小100M,最大10G,粒度為100M。

    點擊Apply以后,就會給這些端口分配好MAC地址並且映射一個FlexNIC。前面我們說過,一個物理Flex-10網卡將產生4個FlexNIC,這4個FlexNIC的命名規律是<物理網卡名>后面跟上a/b/c/d,例如Mezz1:1就分成了Mezz1:1-a、Mezz1:1-b、Mezz1:1-c和Mezz1:1-d。如下圖所示。

    玩過幾次以后,你就會發現,新添加的虛擬端口和FlexNIC之間的添加順序是有規律可尋的。那就是先是第1個物理網口(LOM:1)的第1個FlexNIC(LOM:1-a),然后是第2個物理網口(LOM:2)的第1個FlexNIC(LOM:2-a),然后是第3個物理網口(Mezz1:1)的第一個FlexNIC,等所有的物理網口都輪過一次之后,再從第1個物理網口(LOM:1)開始分配第2個FlexNIC(LOM:1-b)。
    另外,你會發現,delete只存在一處,只能從最后一個開始刪,不能從中間刪。因此這些端口是有嚴格順序的。
    這里的MAC地址是VC自動生成的,配置給了Server Profile。而不是和物理網卡相關的。換句話說,當物理的刀片服務器出現故障的時候,我們只需要簡單的插入備用服務器並重新將Server Profile應用起來,所有的MAC地址(如果配置過HBA的話也包括HBA的WWN地址)都會維持原樣,一絲一毫都不會影響到網絡(例如交換機中的快速轉發表、負載均衡設備上的均衡算法等等)。
    接下去讓我們來看看這些VC模塊上聯是怎么設計的。
?
【SUS的設計】
    考慮到冗余,上聯鏈路的設計如下圖所示。每4個端口組成一個SUS,這4個端口2個和核心交換機1相連,另外2個和核心交換機2相連。每2個端口都捆綁在一起形成一條802.3ad LACP的20G聚合鏈路。
·Shared_Uplink_Set_1上主要運行生產網絡
·Shared_Uplink_Set_2上主要運行存儲網絡。(這里的存儲網絡可以是iSCSI SAN或者NFS)
(注:在運行SAN的環境中,存儲網絡也可以連接到獨立的SAN交換機)

    下圖是另外一個放大的背部VC模塊示意圖:
    圖中紅線是堆疊線。HP VC Flex-10模塊的CX4銅纜x1端口和SFP x1端口是共享的,CX4端口連接后SFP模塊就會失效。下圖中紅色垂直聯系連接的就是CX4端口。所以,上聯端口避開了SFP 的x1端口,選擇了x2和x3端口。

    這里要着重指出的是,雖然水平方向VC之間默認已經通過背板連在了一起,垂直方向上則必須使用外部堆疊線連通。只有全部連通后形成一個完整的VC Domain,任一downlink端口的數據包才能從任一uplink的端口轉發出去。
    我起初就沒有配置外部堆疊連接線,VC Manager就一直報錯。

    Vendor工程師告訴我說,既然VC Manager能認到這4個VC模塊,配置SUS的時候也能夠選擇任一VC上的任一上聯端口,這說明VC Domain其實是通的,不需要垂直的外部連線。我做了一個測試,將SUS1只留下bay1-x2端口和bay3-x2端口,然后在刀片服務器上配置LOM1網卡,用ping 外部地址 -t 來確保網絡可以連通外部網絡。此時斷開bay1上的vc模塊,網絡立刻就中斷了,重新啟動bay1的vc后恢復連接。這說明LOM1沒能通過內部的鏈路,把數據包傳送到Bay3上的uplink口上。這個測試證明了之前vendor工程師的說法是不對的,垂直方向上沒有內部的通道。
    此外,由於堆疊線已經將4個VC Flex-10模塊連在了一起,因此上聯端口並不需要分散在4個模塊上。例如我們完全可以把上圖Bay1上x2/x3這2條上聯鏈路連接到Bay3模塊的x4/x5端口上。(大拿Kenneth的例子就是這么設計的,文章在此 http://virtualkenneth.com/2009/11/04/understanding-hp-flex-10-mappings-with-vmware/)。我這么設計是考慮在模塊故障的時候,盡量減少受影響的上聯端口數量,分散風險。
添加一個新的SUS時候的要點如下圖所示:
(1) 給SUS起一個名字
(2) 選擇連接模式:Auto或Failover,我們因為要做LACP鏈路聚合,所以選Auto
連接模式如果要做鏈路聚合,那么必須在這里選擇Auto,並且請你的網管協助,對應的交換機端口必須設成LACP Mode Active或者LACP Mode Passive。
(3) 添加端口
(4)添加相關的vNet。在這里可以忽略,vNet和SUS的關聯的配置可以在下一步vNet的配置中完成。

【vNET設置】
這里的設計采用Simple network的模式,也就是一個vNet對應一個VLAN。
點擊加號添加新的網絡。

我的設計是每個vNet的名字都用VLAN號表示,這樣顯得一目了然。
勾選上Smart Link。Smart Link的意思是,當該vNet的所有Uplink都失效的時候,VC會自動禁用downlink,這樣主機操作系統就會意識到某個物理端口掉線了,從而引導數據流量走向備用的端口,以保證網絡的持續暢通。
由於VMware的主機服務器會位於不同的子網,因此主機的VM Network肯定對應了多個VLAN,要在主機上配置多少個VLAN,就必須在這里添加多少個vNet。

【故障檢驗】
第一種情況:VC模塊出現故障。例如圖中Bay1的VC模塊 故障,此時LOM1的網卡也完全失效,並且Bay1 VC模塊上的上聯到Core1的網絡也中斷了。由於vmware中我們每個vSwitch都設計了2個互為備份的上聯端口,而且這2個上聯端口分布在2塊物理網卡上,因此LOM1故障時,Mezz1:1的端口承擔了上聯的任務。同時,SUS1鏈路中還有2條通道是激活狀態的,因此上聯也不會中斷。
我們可以通過在OA中斷開VC模塊的電源來模擬這種故障的發生,測試冗余是否真正生效。

第二種情況,物理網卡故障。同樣,互為備份的端口位於LOM上,因此LOM上的網卡將承擔起主機上聯的任務,VMware還是能正常運行,不會收到任何中斷。

第三種情況,上聯交換機發生故障。由於SUS中另外還有兩條鏈路是通往另外一個核心交換機的。因此網絡也不會產生任何中斷。

當然,對於VMware來說,還有一種情況,就是主機本身整個壞掉。這時候就要靠VMware HA來保證高可用性了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM