在雲計算/數據中心中,虛擬機遷移為何要保持同一個VLAN?

看到一個文檔的解釋:

一些伺服器虛擬化軟體可實現在兩台虛擬化的物理伺服器之間對虛擬機做動態遷移,遷移至另一中心的
虛擬機不僅保留原有IP地址,而且還保持遷移前的運行狀態(如TCP會話狀態),所以必須將涉及虛擬機
遷移的物理伺服器接入同一個二層網路(虛擬機在遷移前後的網關不變),這種應用場景要求構建跨中
心的二層互聯網路。

我的理解是,僅僅IP不變這一條件就要保證VLAN不改變(否則會引起路由動蕩吧?),但這與保持遷移前
的會話狀態有何關係?


這是一個很好的問題,先來假設如果數據中心是三層互聯,會出現什麼幺蛾子。假定伺服器A的IP為10.1.1.10/24,網關為10.1.1.1,數據中心三層互聯,那三層連接的兩個數據中心不可能使用同一網段的IP,另外一個數據中心不會再使用10.1.1.0/24 這個網段,否則如何路由?(如果有人說用NAT可以解決地址衝突問題,當我這裡的文字沒寫)所以如果做伺服器在不同數據中心的遷移,必須要給伺服器重新分配不同的IP。所以TCP連接肯定斷,另外增加網路管理負擔。

如果數據中心是二層互聯,伺服器遷移前後在同一個VLAN中,伺服器A可以繼續使用10.1.1.10,如果只有一個網關GW1,假定伺服器A從DC1遷移到DC2遷移前的雙向流量模型:

客戶端---&>GW1----&>A

A---&>GW1----&>客戶端

遷移後的雙向流量模型:

客戶端---&>GW1----&>DC1 二層ED1====&>DC2 ED2 ----&>A

A---&>DC2 層ED2====&>DC1 ED1 ----&>GW1---&>客戶端

圖中二層ED(Edge Device) 代表負責二層互聯的設備伺服器遷移到新的DC,一般會發送主動ARP,即gratuitous ARP,可以刷新二層交換機的轉發表,即使不發ARP,流量數據可能會有一些丟失,很快伺服器A會發送TCP retransmit ,流量包同樣可以刷新交換機的轉發表,即MAC對應交換機埠的映射表。

如果在每個DC都有GW,假定GW2為DC2的網關,流量模型很類似,有一點變化:

客戶端---&>GW1----&>DC1 二層ED1====&>DC2 ED2 ----&>A

A---&>GW2---&>客戶端


車小胖的答案很好了。俺再補充一下,其實想跨網路遷移的話,用gre或者vxlan這類隧道技術就行,而且連設備都不用買用openvswitch就行。當然這種僅限於自己折騰玩玩。真要實現生產系統跨機房遷移,網路能通僅僅是個開始。。。。。


搞網路/虛擬化要有2個微小的概念,邏輯拓撲和物理拓撲

邏輯拓撲:去掉物理視覺上的交換機/路由器等能看得到的東西,抽象出來的形象。網路里二層上同個VLAN可以想像成一個游泳池,只要都是接入這個池子的,數據都是可以互通的。

虛擬化遷移最基本的就是,二層要通,也就是,你從A地遷移到B地或者物理機變成虛擬機,實際上介面上的Vlan都是一樣的。

物理拓撲:顧名思義了……


如果要實現跨機房的網路遷移,肯定不是vlan的方案。可考慮SDN,它隔離了物理網路的變動,把用戶的網路拓撲通過軟體的方式實現,並把相關配置可以持久化下來,網路遷移的時候只需在目的機房重建用戶的網路拓撲。以前經典的三層拓撲已經不能滿足,網路的拓撲的設計需要重新規劃。


推薦閱讀:

關於不同vlan之間通信 在vlan之間跳線可以么?
當交換機埠的pvid=vid時,兩個PC就ping不通了,當pvid!=vid時反而可以ping通?

TAG:雲計算 | 數據中心 | 虛擬機 | VLAN | 網路虛擬化 |