本發(fā)明涉及云計(jì)算虛擬網(wǎng)絡(luò)技術(shù),尤其涉及一種在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法及系統(tǒng)。
背景技術(shù):
在目前的云計(jì)算虛擬網(wǎng)絡(luò)中,使用了眾多的基于網(wǎng)絡(luò)功能虛擬化(networkfunctionvirtualization,nfv)架構(gòu)的虛擬網(wǎng)絡(luò)功能設(shè)備,比如虛擬負(fù)載均衡器(virtualloadbalance,vlb)、虛擬防火墻(virtualfirewall,vfw)、虛擬路由器(virtualrouter,vrouter)等,這些虛擬網(wǎng)絡(luò)功能設(shè)備一般是通過(guò)和keepalived工具組合使用實(shí)現(xiàn)高可用的,keepalived工具是一個(gè)實(shí)現(xiàn)了虛擬路由冗余協(xié)議(virtualrouterredundancyprotocol,vrrp)的高可用工具,比如:虛擬負(fù)載均衡器高可用:vlb+keepalived;虛擬防火墻高可用:vfw+keepalived虛擬路由器高可用:vrouter+keepalived;這些nfv設(shè)備在和keepalived工具組合使用來(lái)實(shí)現(xiàn)高可用時(shí),實(shí)現(xiàn)原理和部署方法基本一樣,haproxy是常用的一種虛擬負(fù)載均衡器,下面以haproxy+keepalived實(shí)現(xiàn)vlb高可用的實(shí)施方案來(lái)說(shuō)明現(xiàn)有技術(shù)。
以目前比較流行的openstack云計(jì)算平臺(tái)為例,該方案通過(guò)在兩臺(tái)服務(wù)器上分別運(yùn)行haproxy+keepalived,來(lái)實(shí)現(xiàn)haproxy虛擬負(fù)載均衡器的高可用;開(kāi)始時(shí),虛擬ip地址配置在服務(wù)器1上,當(dāng)用戶(hù)訪問(wèn)test.com時(shí),此時(shí)訪問(wèn)的是服務(wù)器1上的haproxy虛擬負(fù)載均衡器,當(dāng)服務(wù)器1上的haproxy虛擬負(fù)載均衡器不正常工作后,服務(wù)器1上的keepalived會(huì)檢測(cè)到,然后通知服務(wù)器2上的keepalived,并刪除服務(wù)器1上的虛擬ip地址;服務(wù)器2上的keepalived收到主備切換通知后,則把虛擬ip地址配置到服務(wù)器2上的haproxy虛擬負(fù)載均衡器, 后續(xù)用戶(hù)訪問(wèn)test.com時(shí),實(shí)際訪問(wèn)的是服務(wù)器2上的haproxy虛擬負(fù)載均衡器,這樣就實(shí)現(xiàn)了haproxy虛擬負(fù)載均衡器的高可用。
但是基于高可用工具(例如keepalived)實(shí)現(xiàn)虛擬負(fù)載均衡器的高可用會(huì)帶來(lái)如下缺點(diǎn):需要在現(xiàn)有基礎(chǔ)上,增加高可用工具資源的管理、配置等工作的復(fù)雜度,消耗系統(tǒng)資源過(guò)多,增加網(wǎng)絡(luò)帶寬的開(kāi)銷(xiāo)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例期望提供一種在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法及系統(tǒng),在保障系統(tǒng)高可用的前提下,降低工作的復(fù)雜度,減小系統(tǒng)資源的消耗,降低網(wǎng)絡(luò)帶寬的開(kāi)銷(xiāo)。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明提供一種在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法,所述方法包括:
開(kāi)放虛擬交換機(jī)openvswitch將獲得的地址解析協(xié)議arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播;
具有相同的虛擬ip地址的兩個(gè)完全一樣的網(wǎng)絡(luò)功能虛擬化nfv設(shè)備分別接收所述arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將所述各自的應(yīng)答報(bào)文發(fā)送給所述openvswitch;
所述openvswitch接收到所述兩個(gè)完全一樣的nfv設(shè)備發(fā)送的所述應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備。
上述方案中,所述根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備,包括:
將先到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述備nfv設(shè)備,將后到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述主nfv設(shè)備。
上述方案中,所述根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備之后,所述方法還包括:
代理器定時(shí)檢測(cè)所述主nfv設(shè)備的狀態(tài),當(dāng)所述主nfv設(shè)備的狀態(tài)為不正常工作狀態(tài)時(shí),所述代理器將所述主nfv設(shè)備的不正常工作狀態(tài)上報(bào)給控制器;
控制器接收到所述主nfv設(shè)備的不正常工作狀態(tài)后修改所述openvswitch的流表,使用戶(hù)訪問(wèn)所述虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到所述備nfv設(shè)備上。
上述方案中,在所述開(kāi)放虛擬交換機(jī)openvswitch將獲得的arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播之前,所述方法還包括:
控制器在所述兩個(gè)完全一樣的nfv設(shè)備上配置相同的所述虛擬ip地址。
上述方案中,所述nfv設(shè)備為虛擬負(fù)載均衡器、虛擬防火墻、虛擬路由器中的至少一個(gè);
所述流表為openflow流表。
本發(fā)明還提供一種在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng),所述系統(tǒng)包括:
開(kāi)放虛擬交換機(jī)openvswitch,用于將獲得的地址解析協(xié)議arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播;還用于接收到所述兩個(gè)完全一樣的網(wǎng)絡(luò)功能虛擬化nfv設(shè)備發(fā)送的所述應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備;
具有相同的虛擬ip地址的兩個(gè)完全一樣的nfv設(shè)備,用于分別接收所述arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將所述各自的應(yīng)答報(bào)文發(fā)送給所述openvswitch。
上述方案中,所述openvswitch,還用于將先到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述備nfv設(shè)備,將后到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述主nfv設(shè)備。
上述方案中,所述系統(tǒng)還包括:
代理器,用于定時(shí)檢測(cè)所述主nfv設(shè)備的狀態(tài),當(dāng)所述主nfv設(shè)備的狀態(tài)為不正常工作狀態(tài)時(shí),所述代理器將所述主nfv設(shè)備的不正常工作狀態(tài)上報(bào)給控制器;
控制器,還用于接收到所述主nfv設(shè)備的不正常工作狀態(tài)后修改所述openvswitch的流表,使用戶(hù)訪問(wèn)所述虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到所述備nfv設(shè)備上。
上述方案中,所述控制器,還用于在所述兩個(gè)完全一樣的nfv設(shè)備上配置相同的所述虛擬ip地址。
上述方案中,所述nfv設(shè)備為虛擬負(fù)載均衡器、虛擬防火墻、虛擬路由器中的至少一個(gè),
所述流表為openflow流表。
本發(fā)明實(shí)施例提供的在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法及系統(tǒng),通過(guò)控制器在兩個(gè)完全一樣的nfv設(shè)備上配置相同的虛擬ip地址;openvswitch將獲得的arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播;具有相同的虛擬ip地址的兩個(gè)完全一樣的nfv設(shè)備分別接收arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將各自的應(yīng)答報(bào)文發(fā)送給openvswitch;openvswitch接收到兩個(gè)完全一樣的nfv設(shè)備發(fā)送的應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)openvswitch的流表確定出主負(fù)載均衡器與備負(fù)載均衡器;代理器定時(shí)檢測(cè)主負(fù)載均衡器的狀態(tài),當(dāng)主負(fù)載均衡器的狀態(tài)為不正常工作狀態(tài)時(shí),代理器將主負(fù)載均衡器的不正常工作狀態(tài)上報(bào)給控制器;控制器接收到主nfv設(shè)備的不正常工作狀態(tài)后修改openvswitch的流表,使用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到備nfv設(shè)備上;通過(guò)利用openvswitch的流表,在保障系統(tǒng)高可用的前提下,降低工作的復(fù)雜度,減小系統(tǒng)資源的消耗,降低網(wǎng)絡(luò)帶寬的開(kāi)銷(xiāo),并且避免nfv設(shè)備之間的虛擬ip地址沖突;另外,通過(guò)代理器定時(shí)檢測(cè)主負(fù)載均衡器的狀態(tài),可以使主nfv設(shè)備與備nfv設(shè)備之間切換速度更快,實(shí)現(xiàn)秒級(jí)的高可用。
附圖說(shuō)明
圖1為本發(fā)明在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法實(shí)施例的流程圖;
圖2為本發(fā)明在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
本發(fā)明的在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法應(yīng)用于在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中,該系統(tǒng)由開(kāi)放虛擬交換機(jī)openvswitch、具有相同的虛擬ip地址的兩個(gè)完全一樣的網(wǎng)絡(luò)功能虛擬化(networkfunctionvirtualization,nfv)設(shè)備、控制器、代理器所組成;其中,該nfv設(shè)備可以為虛擬負(fù)載均衡器(virtualloadbalance,vlb)、虛擬防火墻(virtualfirewall,vfw)、虛擬路由器(virtualrouter,vrouter)等它們其中的至少一個(gè)。
圖1為本發(fā)明在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法實(shí)施例的流程圖,如圖1所示,本發(fā)明的方法可以包括如下步驟:
步驟101、控制器在兩個(gè)完全一樣的nfv設(shè)備上配置相同的虛擬ip地址。
在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的控制器在兩個(gè)完全一樣的nfv設(shè)備上配置相同的虛擬ip地址。
因?yàn)楦鞣Nnfv設(shè)備在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的實(shí)現(xiàn)原理和部署方法基本一樣,所以在本實(shí)施例中,僅以nfv設(shè)備為haproxy虛擬負(fù)載均衡器為例進(jìn)行詳細(xì)說(shuō)明;控制器在兩個(gè)完全一樣的haproxy虛擬負(fù)載均衡器上配置相同的虛擬ip地址為192.168.1.200。
步驟102、開(kāi)放虛擬交換機(jī)openvswitch將獲得的arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播。
當(dāng)用戶(hù)訪問(wèn)虛擬ip地址192.168.1.200時(shí),在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的openvswitch會(huì)獲取到地址解析協(xié)議(addressresolutionprotocol,arp)報(bào)文,這時(shí)openvswitch還沒(méi)有學(xué)習(xí)到openvswitch的流表,該arp報(bào)文也未匹配openvswitch的流表,所以openvswitch會(huì)將獲得的這個(gè)arp報(bào)文在二層虛擬網(wǎng)絡(luò)中進(jìn)行廣播。
其中,該流表可以為動(dòng)態(tài)流表,也可以為靜態(tài)流表;該流表還可以為 openflow流表。
步驟103、具有相同的虛擬ip地址的兩個(gè)完全一樣的nfv設(shè)備分別接收所述arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將所述各自的應(yīng)答報(bào)文發(fā)送給所述openvswitch。
具有相同的虛擬ip地址192.168.1.200的兩個(gè)完全一樣的haproxy虛擬負(fù)載均衡器首先分別接收到openvswitch廣播的該arp報(bào)文,然后經(jīng)過(guò)各自的負(fù)載均衡處理后得到各自的應(yīng)答報(bào)文,最后將各自對(duì)應(yīng)的應(yīng)答報(bào)文發(fā)送給openvswitch。
步驟104、所述openvswitch接收到所述兩個(gè)完全一樣的nfv設(shè)備發(fā)送的所述應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)所述openvswitch的流表確定出主負(fù)載均衡器與備負(fù)載均衡器。
具體的,所述根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備,包括:
將先到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述備nfv設(shè)備,將后到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述主nfv設(shè)備。
在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的openvswitch接收到兩個(gè)完全一樣的haproxy虛擬負(fù)載均衡器分別發(fā)送來(lái)的應(yīng)答報(bào)文后會(huì)進(jìn)行openvswitch的流表的學(xué)習(xí),openvswitch會(huì)將先到達(dá)openvswitch的流表中的應(yīng)答報(bào)文所對(duì)應(yīng)的haproxy虛擬負(fù)載均衡器確定為備haproxy虛擬負(fù)載均衡器,將后到達(dá)openvswitch的流表中的應(yīng)答報(bào)文所對(duì)應(yīng)的haproxy虛擬負(fù)載均衡器確定為主haproxy虛擬負(fù)載均衡器。
例如,第二haproxy虛擬負(fù)載均衡器的應(yīng)答報(bào)文先到達(dá)openvswitch,則openvswitch會(huì)學(xué)習(xí)到一條流表,此流表會(huì)把用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文轉(zhuǎn)發(fā)到第二haproxy虛擬負(fù)載均衡器;之后第一haproxy虛擬負(fù)載均衡器的應(yīng)答報(bào)文也到達(dá)openvswitch,雖然第一haproxy虛擬負(fù)載均衡器的應(yīng)答報(bào)文的源ip地址和第二haproxy虛擬負(fù)載均衡器的應(yīng)答報(bào)文的源ip地址相同,但端口不一樣, 此時(shí)openvswitch會(huì)重新學(xué)習(xí)流表,然后把之前學(xué)習(xí)到的流表覆蓋掉;后續(xù)用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文,在openvswitch里會(huì)匹配到最新的流表,由于最新的流表目的地是第一haproxy虛擬負(fù)載均衡器,后續(xù)所有報(bào)文會(huì)被轉(zhuǎn)發(fā)到第一haproxy虛擬負(fù)載均衡器,即第一haproxy虛擬負(fù)載均衡器為主haproxy虛擬負(fù)載均衡器;此時(shí)雖然第二haproxy虛擬負(fù)載均衡器上也配置了虛擬ip地址,但openvswitch里沒(méi)有流表指向第二haproxy虛擬負(fù)載均衡器,所以用戶(hù)無(wú)法訪問(wèn)到第二haproxy虛擬負(fù)載均衡器,即第二haproxy虛擬負(fù)載均衡器作為備haproxy虛擬負(fù)載均衡器,暫時(shí)不提供服務(wù)。
假如第一haproxy虛擬負(fù)載均衡器不正常工作后,沒(méi)有及時(shí)檢測(cè)到,用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文還是會(huì)被轉(zhuǎn)發(fā)到故障的第一haproxy虛擬負(fù)載均衡器,導(dǎo)致業(yè)務(wù)不通,用戶(hù)無(wú)法正常訪問(wèn);在這種情況下,可以利用openvswitch的流表老化的特點(diǎn),提供高可用,即openvswitch學(xué)習(xí)到的去往第一haproxy虛擬負(fù)載均衡器的流表,會(huì)在一定時(shí)間內(nèi)自動(dòng)老化(一定時(shí)間可以根據(jù)實(shí)際需求進(jìn)行配置),即一段時(shí)間后,這條流表會(huì)被自動(dòng)刪除,此時(shí)用戶(hù)訪問(wèn)虛擬ip地址的時(shí)候,報(bào)文會(huì)被openvswitch重新廣播,由于第一haproxy虛擬負(fù)載均衡器不工作了,所以不會(huì)應(yīng)答這個(gè)報(bào)文,只有第二haproxy虛擬負(fù)載均衡器會(huì)應(yīng)答,這時(shí)openvswitch會(huì)學(xué)習(xí)到去往第二haproxy虛擬負(fù)載均衡器的流表,使用戶(hù)后續(xù)訪問(wèn)這個(gè)虛擬ip地址的報(bào)文都會(huì)被轉(zhuǎn)發(fā)到第二haproxy虛擬負(fù)載均衡器,利用openvswitch的流表特性實(shí)現(xiàn)高可用,具有高可靠性,與現(xiàn)有技術(shù)相比,由于不需要使用高可用工具,可以節(jié)約系統(tǒng)資源,降低網(wǎng)絡(luò)帶寬的開(kāi)銷(xiāo);另外,利用openvswitch的流表特性可以進(jìn)行網(wǎng)絡(luò)隔離,避免haproxy虛擬負(fù)載均衡器之間的虛擬ip地址沖突。
步驟105、代理器定時(shí)檢測(cè)所述主負(fù)載均衡器的狀態(tài),當(dāng)所述主負(fù)載均衡器的狀態(tài)為不正常工作狀態(tài)時(shí),所述代理器將所述主負(fù)載均衡器的不正常工作狀態(tài)上報(bào)給控制器。
在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的代理器定時(shí)(定時(shí)時(shí)間長(zhǎng)度可以根據(jù)實(shí)際需求進(jìn)行設(shè)置)檢測(cè)主nfv設(shè)備的狀態(tài),當(dāng)主nfv設(shè)備的狀態(tài)為不正常 工作狀態(tài)時(shí),該代理器將主nfv設(shè)備的不正常工作狀態(tài)上報(bào)給控制器,并將主nfv設(shè)備的網(wǎng)口關(guān)閉,不再讓報(bào)文在主nfv設(shè)備上進(jìn)行傳遞。
例如,在openstack云計(jì)算平臺(tái)中,代理器可以為neutron-lbaas-agent,控制器可以為neutron-server;利用neutron-lbaas-agent每1秒來(lái)檢測(cè)第一haproxy虛擬負(fù)載均衡器的工作狀態(tài),如果發(fā)現(xiàn)第一haproxy虛擬負(fù)載均衡器不正常工作時(shí),neutron-lbaas-agent及時(shí)將該第一haproxy虛擬負(fù)載均衡器的不正常工作狀態(tài)上報(bào)給neutron-server,并將該第一haproxy虛擬負(fù)載均衡器的網(wǎng)口關(guān)閉,不再讓報(bào)文在該第一haproxy虛擬負(fù)載均衡器上進(jìn)行傳遞。
步驟106、控制器接收到所述主nfv設(shè)備的不正常工作狀態(tài)后修改所述openvswitch的流表,使用戶(hù)訪問(wèn)所述虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到所述備nfv設(shè)備上。
在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)中的控制器接收到主nfv設(shè)備的不正常工作狀態(tài)后修改openvswitch的流表,使用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到備nfv設(shè)備上。
例如,neutron-server在接收到第一haproxy虛擬負(fù)載均衡器的不正常工作狀態(tài)后會(huì)及時(shí)修改openvswitch的流表,使用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文根據(jù)修改后的openvswitch的流表轉(zhuǎn)發(fā)到第二haproxy虛擬負(fù)載均衡器上,由第二haproxy虛擬負(fù)載均衡器提供服務(wù);這樣由于檢測(cè)故障和故障切換的處理簡(jiǎn)單,切換速度更快,可以提供秒級(jí)的高可用。
本發(fā)明提供的在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的方法,通過(guò)控制器在兩個(gè)完全一樣的nfv設(shè)備上配置相同的虛擬ip地址;openvswitch將獲得的arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播;具有相同的虛擬ip地址的兩個(gè)完全一樣的nfv設(shè)備分別接收arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將各自的應(yīng)答報(bào)文發(fā)送給openvswitch;openvswitch接收到兩個(gè)完全一樣的nfv設(shè)備發(fā)送的應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)openvswitch的流表確定出主負(fù)載均衡器與備負(fù)載均衡器;代理器定時(shí)檢測(cè)主負(fù)載均衡器的狀態(tài),當(dāng)主負(fù)載均衡器的狀態(tài)為不正常工作狀態(tài)時(shí),代理器將主負(fù)載均衡器的不正常工作狀態(tài) 上報(bào)給控制器;控制器接收到主nfv設(shè)備的不正常工作狀態(tài)后修改openvswitch的流表,使用戶(hù)訪問(wèn)虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到備nfv設(shè)備上;通過(guò)利用openvswitch的流表,在保障系統(tǒng)高可用的前提下,降低工作的復(fù)雜度,減小系統(tǒng)資源的消耗,降低網(wǎng)絡(luò)帶寬的開(kāi)銷(xiāo),并且避免nfv設(shè)備之間的虛擬ip地址沖突;另外,通過(guò)代理器定時(shí)檢測(cè)主負(fù)載均衡器的狀態(tài),可以使主nfv設(shè)備與備nfv設(shè)備之間切換速度更快,實(shí)現(xiàn)秒級(jí)的高可用。
圖2為本發(fā)明在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖,如圖2所示,本發(fā)明的在虛擬網(wǎng)絡(luò)中實(shí)現(xiàn)高可用的系統(tǒng)02可以包括:開(kāi)放虛擬交換機(jī)openvswitch21、兩個(gè)完全一樣的nfv設(shè)備22;其中,
所述開(kāi)放虛擬交換機(jī)openvswitch21,用于將獲得的arp報(bào)文在二層虛擬網(wǎng)絡(luò)中廣播;還用于接收到所述兩個(gè)完全一樣的網(wǎng)絡(luò)功能虛擬化nfv設(shè)備22發(fā)送的所述應(yīng)答報(bào)文后進(jìn)行openvswitch的流表的學(xué)習(xí),根據(jù)所述openvswitch的流表確定出主nfv設(shè)備與備nfv設(shè)備;
具有相同的虛擬ip地址的兩個(gè)完全一樣的nfv設(shè)備22,用于分別接收所述arp報(bào)文后經(jīng)過(guò)各自處理得到各自的應(yīng)答報(bào)文,分別將所述各自的應(yīng)答報(bào)文發(fā)送給所述openvswitch。
進(jìn)一步的,所述openvswitch21,還用于將先到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述備nfv設(shè)備,將后到達(dá)所述openvswitch的流表中的所述應(yīng)答報(bào)文所對(duì)應(yīng)的nfv設(shè)備確定為所述主nfv設(shè)備。
進(jìn)一步的,所述系統(tǒng)還包括:代理器23、控制器24;其中,
所述代理器23,用于定時(shí)檢測(cè)所述主nfv設(shè)備的狀態(tài),當(dāng)所述主nfv設(shè)備的狀態(tài)為不正常工作狀態(tài)時(shí),所述代理器23將所述主nfv設(shè)備的不正常工作狀態(tài)上報(bào)給所述控制器24;
所述控制器24,還用于接收到所述主nfv設(shè)備的不正常工作狀態(tài)后修改所述openvswitch的流表,使用戶(hù)訪問(wèn)所述虛擬ip地址的報(bào)文被轉(zhuǎn)發(fā)到所述備nfv設(shè)備上。
進(jìn)一步的,所述控制器24,還用于在所述兩個(gè)完全一樣的nfv設(shè)備22上配置相同的所述虛擬ip地址。
進(jìn)一步的,所述nfv設(shè)備為虛擬負(fù)載均衡器、虛擬防火墻、虛擬路由器中的至少一個(gè);
所述流表為openflow流表。
本實(shí)施例的系統(tǒng),可以用于執(zhí)行上述所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用硬件實(shí)施例、軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。