欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種云計(jì)算平臺(tái)網(wǎng)絡(luò)虛擬化實(shí)現(xiàn)方法及相應(yīng)插件和代理與流程

文檔序號(hào):11959747閱讀:549來(lái)源:國(guó)知局
一種云計(jì)算平臺(tái)網(wǎng)絡(luò)虛擬化實(shí)現(xiàn)方法及相應(yīng)插件和代理與流程

本發(fā)明涉及云計(jì)算平臺(tái)技術(shù)領(lǐng)域,尤其涉及網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)方法及其相應(yīng)的插件和代理。



背景技術(shù):

現(xiàn)在的云計(jì)算平臺(tái)架構(gòu)主要有兩種,一種是以數(shù)據(jù)存儲(chǔ)為主的云平臺(tái),比如Hadoop;一種是以計(jì)算為主的云平臺(tái),比如AWS和Openstack。

以計(jì)算為主的云平臺(tái)擴(kuò)展了虛擬化技術(shù)和容器技術(shù)。使得現(xiàn)代云計(jì)算平臺(tái)體現(xiàn)出以下特性:按需分配,用戶自服務(wù);寬帶網(wǎng)絡(luò)連接;資源池化;快速的彈性伸縮;可測(cè)量的服務(wù)。

服務(wù)器的虛擬化抽象了CPU,內(nèi)存,網(wǎng)卡等資源,使其不依賴于物理硬件。與之類似,網(wǎng)絡(luò)虛擬化抽象了網(wǎng)絡(luò),路由器等網(wǎng)絡(luò)資源,使邏輯網(wǎng)絡(luò)和物理網(wǎng)絡(luò)解耦,各自可以獨(dú)立的演化。

服務(wù)器虛擬化和網(wǎng)絡(luò)虛擬化帶來(lái)的好處是,提高硬件使用效率,提升運(yùn)維自動(dòng)化程度,提高網(wǎng)絡(luò)服務(wù)開發(fā)速度。

云計(jì)算平臺(tái)不一定需要網(wǎng)絡(luò)虛擬化,但是網(wǎng)絡(luò)虛擬化可以豐富云計(jì)算平臺(tái)的功能。

云計(jì)算平臺(tái)網(wǎng)絡(luò)虛擬化剛出現(xiàn)時(shí)是以插件的形式。架構(gòu)上通常采取主從的架構(gòu),一個(gè)網(wǎng)絡(luò)虛擬化服務(wù)器節(jié)點(diǎn),通過(guò)多個(gè)計(jì)算節(jié)點(diǎn)上的代理搜集和處理網(wǎng)絡(luò)信息。這樣的架構(gòu)在集群規(guī)模擴(kuò)大時(shí),使得服務(wù)器節(jié)點(diǎn)成為瓶頸。后來(lái)為了解決瓶頸問(wèn)題,出現(xiàn)了一些多節(jié)點(diǎn)服務(wù)器的方案,比如Openstack的Neutron DVR,但是在多個(gè)服務(wù)器節(jié)點(diǎn)之間,容易出現(xiàn)不平衡的問(wèn)題。

一些通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的方案也存在單節(jié)點(diǎn)瓶頸問(wèn)題,比如Openstack的Neutron floodlight插件、NEC插件或者Dragonflow插件的單控制器方式。 Dragonflow支持分布式控制器的方式,在每個(gè)計(jì)算節(jié)點(diǎn)上部署一個(gè)控制器。這種方式解決了單節(jié)點(diǎn)瓶頸問(wèn)題,但是也存在一些其他問(wèn)題:1、SDN控制器數(shù)量的多少應(yīng)該由控制器的負(fù)載大小決定。實(shí)際需要的控制器節(jié)點(diǎn)數(shù)量可能大于計(jì)算節(jié)點(diǎn)數(shù)量也可能少于計(jì)算節(jié)點(diǎn)數(shù)量,將控制器部署在每個(gè)計(jì)算節(jié)點(diǎn)上使得控制器節(jié)點(diǎn)的數(shù)量不能自由改變。2、每個(gè)控制節(jié)點(diǎn)承擔(dān)本地計(jì)算節(jié)點(diǎn)虛擬機(jī)的網(wǎng)絡(luò)負(fù)載,各個(gè)計(jì)算節(jié)點(diǎn)之間負(fù)載常常是不平衡的??刂破鞴?jié)點(diǎn)之間應(yīng)該能動(dòng)態(tài)的負(fù)載平衡。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種云計(jì)算平臺(tái)網(wǎng)絡(luò)虛擬化實(shí)現(xiàn)方法及相應(yīng)插件和代理。本方法沒(méi)有單節(jié)點(diǎn)瓶頸的問(wèn)題,而且解決了多個(gè)服務(wù)器節(jié)點(diǎn)之間不平衡的問(wèn)題。

云計(jì)算平臺(tái)的計(jì)算節(jié)點(diǎn)上存在多個(gè)的虛擬機(jī)或者容器,這些虛擬機(jī)或者容器可能屬于同一個(gè)租戶也可能屬于不同的租戶,可能屬于同一個(gè)網(wǎng)絡(luò)也可能屬于不同的網(wǎng)絡(luò)。為了在虛擬機(jī)或容器之間建立數(shù)據(jù)鏈路存在兩種方式。

方式一:如果連接虛擬機(jī)和容器的是可編程交換機(jī),則需要:

在任意兩個(gè)虛擬機(jī)或容器之間建立二層連接,在計(jì)算節(jié)點(diǎn)上安裝虛擬交換機(jī),比如OpenVSwitch,所有的虛擬機(jī)和容器要連接到虛擬交換機(jī)。

各個(gè)計(jì)算節(jié)點(diǎn)之間要存在三層連接,所有的虛擬路由器連接到這個(gè)三層網(wǎng)絡(luò)上。

通過(guò)大二層技術(shù)在,使得任意兩個(gè)虛擬機(jī)或者容器之間存在二層連接。

服務(wù)器通過(guò)設(shè)置可編程交換機(jī)對(duì)數(shù)據(jù)包的修改或轉(zhuǎn)發(fā)規(guī)則,在任意兩個(gè)虛擬機(jī)或容器之間連接。虛擬網(wǎng)絡(luò)之間的隔離通過(guò)vlan實(shí)現(xiàn)。這種方式下服務(wù)器的負(fù)擔(dān)較輕。

方式二:如果連接虛擬機(jī)、容器的是不可編程的交換機(jī)或者網(wǎng)橋,虛擬機(jī)的數(shù)據(jù)包全部發(fā)給服務(wù)器,并通過(guò)服務(wù)器修改或轉(zhuǎn)發(fā)給目標(biāo)。虛擬網(wǎng)絡(luò)之間的隔離也是通過(guò)vlan實(shí)現(xiàn)。這種方式下,服務(wù)器的負(fù)擔(dān)較重,但是對(duì)交換機(jī)的要求較低。

數(shù)據(jù)中心的網(wǎng)絡(luò)流量通常分為東西流向和南北流向。東西流向指的是數(shù)據(jù)中心內(nèi)主機(jī)之間的流量。南北流向指的是數(shù)據(jù)中心與外部的數(shù)據(jù)流量。在使用可編程的交換機(jī)時(shí),東西流量不經(jīng)過(guò)服務(wù)器,南北流量實(shí)現(xiàn)NAT轉(zhuǎn)換有兩種方法:

方法一:流量經(jīng)過(guò)服務(wù)器。服務(wù)器對(duì)數(shù)據(jù)包做NAT轉(zhuǎn)換,然后轉(zhuǎn)發(fā)給網(wǎng)關(guān)。服務(wù)器可以根據(jù)SOURCE IP、VLAN ID、TUNNEL ID和交換機(jī)ID區(qū)分?jǐn)?shù)據(jù)包的來(lái)源,所以允許虛擬網(wǎng)絡(luò)之間共享IP地址空間;

方法二:流量不經(jīng)過(guò)服務(wù)器。計(jì)算節(jié)點(diǎn)上的可編程交換機(jī)完成NAT轉(zhuǎn)換,然后將數(shù)據(jù)包直接轉(zhuǎn)發(fā)給網(wǎng)關(guān)。

本發(fā)明通過(guò)插件的方式向云計(jì)算平臺(tái)提供網(wǎng)絡(luò)虛擬化服務(wù),比如虛擬網(wǎng)絡(luò)、虛擬路由器等。插件負(fù)責(zé)將云計(jì)算平臺(tái)的網(wǎng)絡(luò)虛擬化服務(wù)請(qǐng)求轉(zhuǎn)換和轉(zhuǎn)發(fā)給服務(wù)器。

本發(fā)明通過(guò)在計(jì)算節(jié)點(diǎn)上的代理完成網(wǎng)絡(luò)虛擬化必須的工作,比如鋪設(shè)二層網(wǎng)絡(luò)、修改交換機(jī)配置、搜集網(wǎng)絡(luò)信息等。在有多個(gè)服務(wù)器時(shí),代理還負(fù)責(zé)在多個(gè)服務(wù)器之間做負(fù)載均衡。每個(gè)代理維護(hù)一系列的負(fù)載均衡參數(shù)。負(fù)載均衡參數(shù)包括多個(gè)服務(wù)器的地址、活躍狀態(tài)、負(fù)載狀態(tài)。為了支持按照數(shù)據(jù)包的內(nèi)容分配流量,負(fù)載均衡參數(shù)還應(yīng)該包括數(shù)據(jù)包相關(guān)的參數(shù),比如VLAN ID、IP地址、MAC地址等。代理根據(jù)預(yù)先設(shè)定的負(fù)載均衡策略和實(shí)時(shí)的負(fù)載均衡參數(shù),將交換機(jī)的請(qǐng)求轉(zhuǎn)發(fā)給服務(wù)器。

當(dāng)使用可編程交換機(jī)時(shí),比如OpenVSwitch,本發(fā)明為了使控制器識(shí)別來(lái)自某一個(gè)交換機(jī)的信息發(fā)出的先后次序,需要為交換機(jī)發(fā)往控制器的信息添加序列號(hào)。

本發(fā)明為交換機(jī)發(fā)出的信息添加序列號(hào)的方法是為交換機(jī)添加一種序列號(hào)匹配規(guī)則。交換機(jī)需要為每個(gè)需要序列號(hào)的規(guī)則存儲(chǔ)并維護(hù)一個(gè)序列號(hào),當(dāng)數(shù)據(jù)包匹配規(guī)則成功時(shí),將信息某一個(gè)字段賦值為序列號(hào),并將序列號(hào)加1,然后才將信息發(fā)往控制器。這個(gè)字段可以是Openflow協(xié)議已經(jīng)規(guī)定的字段,比如metadata或者cookie,也可以是通過(guò)擴(kuò)展Openflow協(xié)議新添加的字段,比如一個(gè)新的sequence_number字段。

例如,在OpenVSwitch上,可以通過(guò)如下命令添加匹配規(guī)則:ovs-ofctl addflow br0 “{match rules},metadata=sequence,action=controller” 。{match rules}是匹配規(guī)則;metadata=sequence不參與匹配,只是標(biāo)明規(guī)則匹配成功時(shí)metadata需要被設(shè)為當(dāng)前的序列號(hào),并將序列號(hào)加1;action=controller指明信息將要發(fā)往控制器。為了簡(jiǎn)化,匹配規(guī)則也可以如下的方式實(shí)現(xiàn),交換機(jī)保留某些數(shù)值作為序列號(hào)的標(biāo)志。撰寫匹配規(guī)則時(shí),可以用這些保留的數(shù)值代替sequence,比如metadata=0xffffffffffffffff。交換機(jī)遇到metadata=0xffffffffffffffff的流就會(huì)將metadata字段設(shè)為當(dāng)前的序列號(hào),并將序列號(hào)加1。Action可以是controller也可以是任何其他交換機(jī)支持的動(dòng)作。

目前SDN交換機(jī)不支持metadata=sequence這樣地規(guī)則,也不支持為規(guī)則維護(hù)和存儲(chǔ)序列號(hào)。需要對(duì)交換機(jī)的實(shí)現(xiàn)作出更改,才能實(shí)現(xiàn)本發(fā)明提出的功能。本發(fā)明用到的添加序列號(hào)匹配規(guī)則的方法可以在包括虛擬交換機(jī)OpenVSwitch的SDN交換機(jī)上實(shí)現(xiàn)。

控制器的前端節(jié)點(diǎn)需要為來(lái)自同一個(gè)交換機(jī)的帶序列號(hào)的相同匹配規(guī)則的流建立一個(gè)分布式隊(duì)列??刂破魇盏浇粨Q機(jī)發(fā)送的帶有序列號(hào)的信息并不直接處理信息而是將信息添加到隊(duì)列尾端??刂破骺梢杂嗛喨我庖粋€(gè)隊(duì)列,但是每個(gè)隊(duì)列在任意時(shí)刻都只能有一個(gè)訂閱者。這樣是為了保證任意時(shí)刻只有一個(gè)控制器在處理一個(gè)隊(duì)列的消息。控制器要為每一個(gè)隊(duì)列維護(hù)一個(gè)最大序列號(hào)值??刂破魇盏綇年?duì)列訂閱的信息時(shí),先比較信息的序列號(hào)和維護(hù)的最大序列號(hào)。如果信息的序列號(hào)小于最大序列號(hào),則不對(duì)信息進(jìn)行處理。

隊(duì)列的消息訂閱者可以改變。改變消息訂閱者的方式有兩種,主動(dòng)式和被動(dòng)式。主動(dòng)式是指訂閱消息的控制器節(jié)點(diǎn)在繁忙時(shí)可以主動(dòng)放棄訂閱消息,改由其他控制器節(jié)點(diǎn)繼續(xù)處理隊(duì)列消息。被動(dòng)式是指隊(duì)列的訂閱者由于系統(tǒng)崩潰或網(wǎng)絡(luò)故障等原因不能繼續(xù)處理隊(duì)列消息,系統(tǒng)發(fā)現(xiàn)當(dāng)前訂閱者無(wú)法繼續(xù)處理消息而選擇另一個(gè)控制節(jié)點(diǎn)作為新的訂閱者。

當(dāng)被動(dòng)式訂閱者切換發(fā)生時(shí),為了避免因?yàn)榭刂乒?jié)點(diǎn)崩潰丟失最大序列號(hào)和消息,控制器節(jié)點(diǎn)處理消息和更新最大序列號(hào)的動(dòng)作應(yīng)該保持原子性(Atomic)。

本系統(tǒng)實(shí)現(xiàn)原子性的方法是使用一個(gè)預(yù)寫式日志(Write-Ahead Logging)。控制節(jié)點(diǎn)在處理消息之前,先將最大序列號(hào)、消息和處理消息需要執(zhí)行的動(dòng)作以及回滾動(dòng)作寫入一個(gè)日志中。如果一個(gè)訂閱者在處理消息過(guò)程中發(fā)生故障,另一個(gè)訂閱者可以檢查日志以決定是繼續(xù)處理還是回滾。為了保障日志的存儲(chǔ)安全性,日志應(yīng)該有多個(gè)備份。

網(wǎng)絡(luò)虛擬化服務(wù)器以鍵值對(duì)的方式存儲(chǔ)路由信息,比如根據(jù)虛擬網(wǎng)絡(luò)ID和IP查找MAC地址等。存儲(chǔ)鍵值對(duì)的數(shù)據(jù)庫(kù)可以是一個(gè)也可以是多個(gè)存儲(chǔ)設(shè)備。

每一個(gè)鍵值對(duì)的鍵都是唯一的,每一個(gè)鍵值對(duì)都有一個(gè)或多個(gè)副本,每一個(gè)副本都有一個(gè)副本號(hào)。鍵值對(duì)的副本數(shù)是指有多少條等同的鍵值對(duì)存儲(chǔ)在所有存儲(chǔ)節(jié)點(diǎn)上。如果一個(gè)鍵值對(duì)的副本數(shù)是n,第一個(gè)副本的副本號(hào)是1,第二個(gè)副本的副本號(hào)是2,以此類推。副本有提高數(shù)據(jù)的安全性和可用性的作用。

服務(wù)器根據(jù)鍵和副本號(hào)選擇存儲(chǔ)節(jié)點(diǎn)。在一個(gè)鍵值對(duì)有多個(gè)副本時(shí),一個(gè)鍵值對(duì)的多個(gè)副本可能會(huì)選擇同一設(shè)備,這種情況叫做沖突。在存儲(chǔ)設(shè)備多于副本數(shù)時(shí),如果存儲(chǔ)策略不允許有沖突,則為沖突的副本選擇n+1為新的副本號(hào),如果仍然有沖突,則選擇n+2為新的副本號(hào),以此類推直到?jīng)]有沖突為止。程序在讀鍵值對(duì)時(shí)只需讀一個(gè)副本,但是在寫入時(shí)需要修改所有的副本。

附圖說(shuō)明

圖1是本發(fā)明多節(jié)點(diǎn)軟件定義網(wǎng)絡(luò)控制器系統(tǒng)的總體架構(gòu)圖。

圖2是本發(fā)明多節(jié)點(diǎn)軟件定義網(wǎng)絡(luò)控制器系統(tǒng)中發(fā)送和處理帶序列號(hào)的消息的流程圖。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
奈曼旗| 文山县| 沭阳县| 凉城县| 五华县| 卓尼县| 建昌县| 兴山县| 鱼台县| 瓦房店市| 盐山县| 绵竹市| 鄂托克旗| 青神县| 武川县| 潜江市| 永吉县| 镇原县| 会同县| 肇东市| 西盟| 伽师县| 南安市| 柯坪县| 宁武县| 黄石市| 红安县| 五华县| 宁津县| 道真| 丰镇市| 临澧县| 孟连| 宣威市| 神农架林区| 方城县| 星座| 宁都县| 大余县| 昂仁县| 通辽市|