一種用于虛擬交換機(jī)系統(tǒng)的角色協(xié)商方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種網(wǎng)絡(luò)通信技術(shù),具體涉及虛擬交換機(jī)系統(tǒng)中角色協(xié)商的方法。
【背景技術(shù)】
[0002]當(dāng)前,數(shù)據(jù)中心的數(shù)據(jù)訪問量越來越大,并且,對(duì)數(shù)據(jù)中心網(wǎng)絡(luò)的可靠性要求越來越高,傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)已經(jīng)無法滿足要求。而交換機(jī)設(shè)備使用虛擬化技術(shù)組合成的虛擬交換機(jī)系統(tǒng)可以實(shí)現(xiàn)數(shù)據(jù)中心的大量數(shù)據(jù)轉(zhuǎn)發(fā)和提高網(wǎng)絡(luò)可靠性。
[0003]另外,有些用戶希望將成本低廉的盒式交換機(jī)設(shè)備虛擬化成一臺(tái)虛擬交換機(jī)設(shè)備,使盒式設(shè)備之間互相冗余備份,提高網(wǎng)絡(luò)的可靠性,簡(jiǎn)化網(wǎng)絡(luò)的管理。這也需要使用虛擬化技術(shù)來將盒式交換機(jī)設(shè)備組合成虛擬交換機(jī)系統(tǒng)。
[0004]虛擬化技術(shù)就是將兩臺(tái)或多臺(tái)交換機(jī)通過虛擬鏈路連接起來,從邏輯上組合成一個(gè)虛擬的交換機(jī)系統(tǒng)。用戶對(duì)這個(gè)虛擬交換機(jī)系統(tǒng)進(jìn)行管理,來實(shí)現(xiàn)對(duì)虛擬交換機(jī)系統(tǒng)中所有物理設(shè)備的管理。
[0005]虛擬交換機(jī)系統(tǒng)中的每臺(tái)設(shè)備最多可以有兩個(gè)虛擬端口(Pa和Pb)與其它設(shè)備通過虛擬鏈路相連。
[0006]參見圖1,其所示為由4臺(tái)交換機(jī)設(shè)備組成的線形虛擬交換機(jī)系統(tǒng)。
[0007]參見圖2,其所示為由4臺(tái)交換機(jī)設(shè)備組成的環(huán)形虛擬交換機(jī)系統(tǒng)。
[0008]而將兩臺(tái)或多臺(tái)交換機(jī)設(shè)備組合成一個(gè)虛擬交換機(jī)系統(tǒng)時(shí),為實(shí)現(xiàn)虛擬交換機(jī)系統(tǒng)中各成員設(shè)備的協(xié)同工作、統(tǒng)一管理及提高系統(tǒng)的可靠性,需要準(zhǔn)確的確定出虛擬交換機(jī)系統(tǒng)中各成員設(shè)備的角色,如一臺(tái)主設(shè)備,一臺(tái)備設(shè)備,但目前尚無公開的資料給出虛擬交換機(jī)系統(tǒng)的角色協(xié)商方法。
[0009]由此可見,提供一種用于虛擬交換機(jī)系統(tǒng)的角色協(xié)商方法是本領(lǐng)域亟需解決的問題。
【發(fā)明內(nèi)容】
[0010]針對(duì)現(xiàn)有虛擬交換機(jī)系統(tǒng)中無法有效協(xié)商出各成員設(shè)備的角色的問題,本發(fā)明的目的在于提供一種實(shí)現(xiàn)虛擬交換機(jī)系統(tǒng)的角色協(xié)商的方法,通過該方法能夠有效實(shí)現(xiàn)虛擬交換機(jī)系統(tǒng)中各成員設(shè)備的角色的協(xié)商,確定各成員設(shè)備的角色。
[0011]為了達(dá)到上述目的,本發(fā)明采用如下的技術(shù)方案:
[0012]一種用于虛擬交換機(jī)系統(tǒng)的角色協(xié)商方法,所述角色協(xié)商方法使用角色協(xié)商報(bào)文在虛擬交換機(jī)系統(tǒng)中協(xié)商成員設(shè)備的角色。
[0013]優(yōu)選的,所述角色協(xié)商報(bào)文是單跳多播報(bào)文,鄰居收到該報(bào)文后不再轉(zhuǎn)發(fā)。設(shè)備只有在協(xié)商狀態(tài)和監(jiān)聽狀態(tài)才會(huì)發(fā)送該報(bào)文。
[0014]優(yōu)選的,所述角色協(xié)商報(bào)文的格式為(Domainld,Member Id, Portld, Pri,RunningTime,MAC);其中,Domainld表示發(fā)送方設(shè)備所在的虛擬化域,Memberld表示發(fā)送方設(shè)備在虛擬化域中的成員編號(hào),Portld表示發(fā)送方設(shè)備上發(fā)送報(bào)文的虛擬化端口,Pri表示發(fā)送方設(shè)備的優(yōu)先級(jí),RunningTime表示發(fā)送方設(shè)備的運(yùn)行時(shí)間,MAC表示發(fā)送方設(shè)備自身的MAC地址。
[0015]優(yōu)選的,所述角色協(xié)商報(bào)文中發(fā)送方的Pr1、RunningTime和MAC三者組成發(fā)送方設(shè)備的優(yōu)先級(jí)向量。
[0016]優(yōu)選的,協(xié)商出來的主設(shè)備使用主設(shè)備宣告報(bào)文來周期性地通知主設(shè)備信息及主設(shè)備上維護(hù)的其它成員設(shè)備的優(yōu)先級(jí)向量信息。
[0017]優(yōu)選的,主設(shè)備宣告報(bào)文是多播報(bào)文,只有主設(shè)備才發(fā)送主設(shè)備宣告報(bào)文,每臺(tái)設(shè)備收到該報(bào)文后需要向其它設(shè)備轉(zhuǎn)發(fā),主設(shè)備收到自己發(fā)出的報(bào)文后不轉(zhuǎn)發(fā)。
[0018]優(yōu)選的,主設(shè)備宣告報(bào)文的格式為(Domainld,MasterMemld,Portld, Pri,RunningTime,MAC, BackupMemld,OldMasterMemld, PriVecLength, PriVector),其中,Domainld表示發(fā)送方設(shè)備(主設(shè)備)所在的虛擬化域,MasterMemld表示發(fā)送方設(shè)備在虛擬化域中的成員編號(hào),Portld表示發(fā)送方設(shè)備上發(fā)送報(bào)文的虛擬化端口,Pri表示發(fā)送方設(shè)備的優(yōu)先級(jí),RunningTime表示發(fā)送方設(shè)備的運(yùn)行時(shí)間,MAC表示發(fā)送方設(shè)備自身的MAC地址,BackupMemld表示備設(shè)備在虛擬化域中的成員編號(hào),OldMasterMemld表示舊主設(shè)備在虛擬化域中的成員編號(hào),PriVecLength表示后面的優(yōu)先級(jí)向量信息所占用的字節(jié)數(shù)目,PriVector表示主設(shè)備所維護(hù)的虛擬化域中其它成員設(shè)備的優(yōu)先級(jí)向量信息。
[0019]優(yōu)選的,主設(shè)備宣告報(bào)文中發(fā)送方設(shè)備的Pr1、RunningTime和MAC三者組成了發(fā)送方設(shè)備的優(yōu)先級(jí)向量。
[0020]利用上述方案,可在由兩臺(tái)或多臺(tái)交換機(jī)設(shè)備組成的線形或環(huán)形虛擬交換機(jī)系統(tǒng)中,準(zhǔn)確有效地進(jìn)行角色協(xié)商,確定各成員設(shè)備的角色。
【附圖說明】
[0021]以下結(jié)合附圖和【具體實(shí)施方式】來進(jìn)一步說明本發(fā)明。
[0022]圖1為由4臺(tái)交換機(jī)設(shè)備組成的線形虛擬交換機(jī)系統(tǒng)。
[0023]圖2為由4臺(tái)交換機(jī)設(shè)備組成的環(huán)形虛擬交換機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0024]為了使本發(fā)明實(shí)現(xiàn)的技術(shù)手段、創(chuàng)作特征、達(dá)成目的與功效易于明白了解,下面結(jié)合具體圖示,進(jìn)一步闡述本發(fā)明。
[0025]本實(shí)例中使用角色協(xié)商報(bào)文在虛擬交換機(jī)系統(tǒng)中協(xié)商各成員設(shè)備的角色;同時(shí)協(xié)商出來的主設(shè)備使用主設(shè)備宣告報(bào)文來周期性地通知主設(shè)備信息及主設(shè)備上維護(hù)的其它成員設(shè)備的優(yōu)先級(jí)向量信息。
[0026]具體的,本實(shí)例使用了一個(gè)角色協(xié)商狀態(tài)機(jī),以此來實(shí)現(xiàn)虛擬交換機(jī)系統(tǒng)中各成員設(shè)備角色的協(xié)商。
[0027]該狀態(tài)機(jī)有6個(gè)狀態(tài):初始狀態(tài)、協(xié)商狀態(tài)、監(jiān)聽狀態(tài)、主設(shè)備狀態(tài)、備設(shè)備狀態(tài)、候選設(shè)備狀態(tài)。
[0028]初始狀態(tài)表示尚未開始角色協(xié)商;
[0029]協(xié)商狀態(tài)表示設(shè)備正在進(jìn)行角色協(xié)商;
[0030]監(jiān)聽狀態(tài)表示即將協(xié)商出設(shè)備的角色,需要穩(wěn)定一段時(shí)間后再正式確定設(shè)備的角色;
[0031]主設(shè)備狀態(tài)表示已經(jīng)協(xié)商出設(shè)備的角色,設(shè)備作為主設(shè)備;
[0032]備設(shè)備狀態(tài)表示已經(jīng)協(xié)商出設(shè)備的角色,設(shè)備作為備設(shè)備;
[0033]候選設(shè)備狀態(tài)表示已經(jīng)協(xié)商出設(shè)備的角色,設(shè)備作為候選設(shè)備。
[0034]本實(shí)例中使用到的角色協(xié)商報(bào)文和主設(shè)備宣告報(bào)文具體說明如下:
[0035](1)角色協(xié)商報(bào)文
[0036]用于在虛擬交換機(jī)系統(tǒng)中協(xié)商成員設(shè)備的角色。該角色協(xié)商報(bào)文是單跳多播報(bào)文,鄰居收到該報(bào)文后不再轉(zhuǎn)發(fā)。設(shè)備只有在協(xié)商狀態(tài)和監(jiān)聽狀態(tài)才會(huì)發(fā)送該報(bào)文。
[0037]角色協(xié)商報(bào)文的格式為(Domainld,Memberld,Portld, Pri, RunningTime, MAC),其中,Domainld表示發(fā)送方設(shè)備所在的虛擬化域,Memberld表示發(fā)送方設(shè)備在虛擬化域中的成員編號(hào),Portld表示發(fā)送方設(shè)備上發(fā)送報(bào)文的虛擬化端口,Pri表示發(fā)送方設(shè)備的優(yōu)先級(jí),RunningTime表示發(fā)送方設(shè)備的運(yùn)行時(shí)間,MAC表示發(fā)送方設(shè)備自身的MAC地址。
[0038]角色協(xié)商報(bào)文中發(fā)送方的Pr1、RunningTime和MAC三者組成了發(fā)送方設(shè)備的優(yōu)先級(jí)向量。
[0039](2)主設(shè)備宣告報(bào)文
[0040]協(xié)商出來的主設(shè)備該報(bào)文來周期性地通知主設(shè)備信息及主設(shè)備上維護(hù)的其它成員設(shè)備的優(yōu)先級(jí)向量信息。主設(shè)備宣告報(bào)文是多播報(bào)文,只有主設(shè)備才發(fā)送主設(shè)備宣告報(bào)文,每臺(tái)設(shè)備收到該報(bào)文后需要向其它設(shè)備轉(zhuǎn)發(fā),主設(shè)備收到自己發(fā)出的報(bào)文后不轉(zhuǎn)發(fā)。[0041 ]主設(shè)備宣告報(bào)文的格式為(Domainld,MasterMemld, Portld, Pri, RunningTime,MAC, BackupMemld, OldMasterMemld, PriVecLength, PriVector),其中,Domainld 表不發(fā)送方設(shè)備(主設(shè)備)所在的虛擬化域,MasterMemld表示發(fā)送方設(shè)備在虛擬化域中的成員編號(hào),Portld表示發(fā)送方設(shè)備上發(fā)送報(bào)文的虛擬化端口,Pri表示發(fā)送方設(shè)備的優(yōu)先級(jí),RunningTime表示發(fā)送方設(shè)備的運(yùn)行時(shí)間,MAC表示發(fā)送方設(shè)備自身的MAC地址,BackupMemld表示備設(shè)備在虛擬化域中的成員編號(hào),OldMasterMemld表示舊主設(shè)備在虛擬化域中的成員編號(hào),PriVecLength表示后面的優(yōu)先級(jí)向量信息所占用的字節(jié)數(shù)目,PriVector表示主設(shè)備所維護(hù)的虛擬化域中其它成員設(shè)備的優(yōu)先級(jí)向量信息(優(yōu)先級(jí)向量信息包括優(yōu)先級(jí)、運(yùn)行時(shí)間、MAC地址)。
[0042]主設(shè)備宣告報(bào)文中發(fā)送方設(shè)備的Pr1、RunningTime和MAC三者組成了發(fā)送方設(shè)備的優(yōu)先級(jí)向量。
[0043]本實(shí)例中具體應(yīng)用如下的定時(shí)器和變量與角色協(xié)商狀態(tài)機(jī)配合,來完成角色的協(xié)商過程。
[0044]其中,相應(yīng)的定時(shí)器和變量的具體說明如下:
[0045](1) roleNegoffhile
[0046]角色協(xié)商定時(shí)器。設(shè)備處在協(xié)商狀態(tài)、監(jiān)聽狀態(tài)時(shí),每當(dāng)定時(shí)器超時(shí)時(shí)都將發(fā)送一個(gè)角色協(xié)商報(bào)文。該定時(shí)器為循環(huán)定時(shí)器,周期為5秒。
[0047](2)masterAdvffhile
[0048]主設(shè)備宣告定時(shí)器。設(shè)備處在主設(shè)備狀態(tài)、備設(shè)備狀態(tài)、候選設(shè)備狀態(tài)時(shí),會(huì)使用主設(shè)備宣告定時(shí)器。該定時(shí)器為循環(huán)定時(shí)器,周期為5秒。
[0049](3) oldMasterffhile
[0050]舊主設(shè)備保存定時(shí)器。備設(shè)備在升主后啟動(dòng)該定時(shí)器,在定時(shí)器超時(shí)之前都將保存舊主設(shè)備的信息,當(dāng)定時(shí)器超時(shí)之后不再保存。該定時(shí)器為非循環(huán)定時(shí)器,超時(shí)時(shí)間為180 秒。
[0051](4)roleNegoTimeoutCnt
[0052]角色協(xié)商定時(shí)器的超時(shí)次數(shù)計(jì)數(shù)器。
[0053](5)masterAdvT imeoutCnt
[0054]主設(shè)備宣告定時(shí)器的超時(shí)次數(shù)計(jì)數(shù)器。
[0055](6) masterMemberld
[0056]主設(shè)備在虛擬化域中的成員編號(hào)。
[0057](7) backupMemberld
[0058]備設(shè)備在虛擬化域中的成員編號(hào)。
[0059](8) oldMasterMemberld
[0060]舊主設(shè)備在虛擬化域中的成員編號(hào)。
[0061](9) bMerge
[0062]表示當(dāng)前是否處于虛擬化域合并過程中。
[0063]本實(shí)例基于上述定時(shí)器和變量在狀態(tài)機(jī)的各狀態(tài)中對(duì)相關(guān)事件的處理過程如下:
[0064]1、初始狀態(tài)
[0065]系統(tǒng)啟動(dòng)后模塊初始化時(shí)即進(jìn)入初始狀態(tài)。進(jìn)入本狀態(tài)時(shí),將masterMemberld初始化為本設(shè)備在虛擬化域中的成員編號(hào)。
[0066]拓?fù)浒l(fā)現(xiàn)協(xié)議通知拓?fù)涫諗繒r(shí)(拓?fù)浒l(fā)現(xiàn)協(xié)議涉及到虛擬交換機(jī)系統(tǒng)中別的實(shí)現(xiàn),我們不做介紹),迀移到協(xié)商狀態(tài)。
[0067]2、協(xié)商狀態(tài)
[0068]進(jìn)入本狀態(tài)時(shí),需要啟動(dòng)角色協(xié)商定時(shí)器roleNegoWhile,將roleNegoTimeoutCnt清零。
[0069]本狀態(tài)中對(duì)相關(guān)事件的處理:
[0070](1)角色協(xié)商定時(shí)器roleNegoWhile超時(shí)的處理
[0071]a)發(fā)送角色協(xié)商報(bào)文,遞增roleNegoTimeoutCnt ;
[0072]b)如果roleNegoTimeoutCnt大于3,則進(jìn)入監(jiān)聽狀態(tài)。
[0073](2)收到角色協(xié)商報(bào)文時(shí)的處理
[0074]設(shè)備收到角色協(xié)商報(bào)文時(shí),將報(bào)文中發(fā)送方設(shè)備的優(yōu)先級(jí)向量信息與本地保存的發(fā)送方設(shè)備的優(yōu)先級(jí)向量信息相比較,如果不同,則更新本地的優(yōu)先級(jí)向量信息;如果本地的優(yōu)先級(jí)向量信息變化了,且本設(shè)備不具有最優(yōu)的優(yōu)先級(jí)向量,則將roleNegoTimeoutCnt清零。
[0075](3)收到主設(shè)備宣告報(bào)文時(shí)的處理
[0076]a)如果報(bào)文中的OldMasterMemld為自己或者M(jìn)asterMemld的優(yōu)先級(jí)高于自己,貝lj記錄MasterMemld為主設(shè)備;否則是本設(shè)備剛啟動(dòng)并將在與MasterMemld的主設(shè)備競(jìng)爭(zhēng)中勝出,忽略報(bào)文,處理結(jié)束(MasterMemld設(shè)備收到優(yōu)先級(jí)向量更優(yōu)的設(shè)備發(fā)送的主宣告報(bào)文時(shí),重啟后再重新協(xié)商);
[0077]b)如果報(bào)文中的OldMasterMemld為