本技術(shù)涉及計算機,尤其涉及一種用于共享綁定口卸載的方法、計算機設(shè)備及介質(zhì)。
背景技術(shù):
1、數(shù)據(jù)中心組網(wǎng)技術(shù)的發(fā)展下,為了保證業(yè)務(wù)的可靠性和連續(xù)性,需要考慮各種冗余設(shè)計,如鏈路冗余、節(jié)點冗余等,為此服務(wù)器通常采用雙歸屬接入到網(wǎng)絡(luò)中,以及應(yīng)用了網(wǎng)絡(luò)設(shè)備堆疊技術(shù)。堆疊技術(shù)存在控制面歸一、平滑升級困難、難以支持多廠家異構(gòu)、運維難度大等問題。為了解決堆疊技術(shù)的不足,在組網(wǎng)可靠性要求較高的場景中,采用去堆疊的雙歸屬方案來克服虛擬化堆疊的不足。但是,現(xiàn)有技術(shù)中的去堆疊的雙歸屬方案,例如在服務(wù)器網(wǎng)通過去堆疊的雙歸屬來接入數(shù)據(jù)中心組網(wǎng)的應(yīng)用場景,內(nèi)核態(tài)的綁定口配置方案不支持用戶態(tài)驅(qū)動和用戶態(tài)軟件,例如數(shù)據(jù)平面開發(fā)工具集(data?plane?development?kit,dpdk),也難以利用在用戶態(tài)下成熟的各種開發(fā)工具、應(yīng)用程序、現(xiàn)成庫、開源代碼等。另外,用戶態(tài)的綁定口配置方案需要進行單獨的配置和額外適配,而且用戶態(tài)下難以處理復(fù)雜的鏈路協(xié)議例如鏈路層發(fā)現(xiàn)協(xié)議(link?layer?discovery?protocol)和鏈路匯聚控制協(xié)議(link?aggregation?control?protocol,lacp)。另外,現(xiàn)有技術(shù)中需要分開單獨配置的內(nèi)核態(tài)的綁定口配置方案和用戶態(tài)的綁定口配置方案,也使得硬件卸載的實現(xiàn)變得復(fù)雜和臃腫,并且難以滿足復(fù)雜多變的應(yīng)用場景的需求,無法做到快速響應(yīng)和靈活適配。
2、為此,本技術(shù)提供了一種用于共享綁定口卸載的方法、計算機設(shè)備及介質(zhì),實現(xiàn)了在內(nèi)核態(tài)和用戶態(tài)之間共享綁定口配置方案以及共享綁定口卸載,有助于降低系統(tǒng)負(fù)擔(dān)、提升轉(zhuǎn)發(fā)性能、提高用戶軟件處理效率、降低用戶態(tài)代碼復(fù)雜度。
技術(shù)實現(xiàn)思路
1、第一方面,本技術(shù)提供了一種用于共享綁定口卸載的方法。所述方法包括:在宿主機的內(nèi)核空間,確定第一內(nèi)核態(tài)綁定口配置以及按照所述第一內(nèi)核態(tài)綁定口配置來創(chuàng)建第一內(nèi)核態(tài)綁定口,其中,所述第一內(nèi)核態(tài)綁定口配置包括第一鏈路聚合組的標(biāo)識和第一鏈路聚合組配置,所述第一鏈路聚合組配置至少包括所述第一鏈路聚合組的成員口以及在所述第一鏈路聚合組的成員口與從屬口之間的第一對應(yīng)關(guān)系,所述第一鏈路聚合組對應(yīng)與所述宿主機連接的報文收發(fā)硬件的第一以太網(wǎng)端口,所述第一鏈路聚合組的成員口對應(yīng)所述報文收發(fā)硬件的物理功能;在所述宿主機的用戶空間,基于所述第一內(nèi)核態(tài)綁定口配置來確定第一用戶態(tài)綁定口配置,然后,按照所述第一用戶態(tài)綁定口配置來創(chuàng)建第一用戶態(tài)綁定口,其中,所述第一用戶態(tài)綁定口配置包括所述第一鏈路聚合組的標(biāo)識并且指定所述第一用戶態(tài)綁定口是相對于所述從屬口的主口;在所述內(nèi)核空間的內(nèi)核態(tài)驅(qū)動,響應(yīng)于所述第一內(nèi)核態(tài)綁定口的創(chuàng)建完成,下發(fā)所述第一鏈路聚合組的標(biāo)識和所述第一鏈路聚合組配置到所述報文收發(fā)硬件,以及,響應(yīng)于所述第一鏈路聚合組配置的更新,下發(fā)更新后第一鏈路聚合組配置到所述報文收發(fā)硬件;在所述用戶空間的用戶態(tài)軟件,基于所述第一鏈路聚合組的標(biāo)識,與所述報文收發(fā)硬件協(xié)作,以便通過所述第一用戶態(tài)綁定口進行收包操作和發(fā)包操作。
2、通過本技術(shù)的第一方面,實現(xiàn)了在內(nèi)核態(tài)和用戶態(tài)之間共享綁定口配置方案以及共享綁定口卸載,有助于降低系統(tǒng)負(fù)擔(dān)、提升轉(zhuǎn)發(fā)性能、提高用戶軟件處理效率、降低用戶態(tài)代碼復(fù)雜度。
3、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,基于所述第一鏈路聚合組的標(biāo)識,與所述報文收發(fā)硬件協(xié)作,以便通過所述第一用戶態(tài)綁定口進行收包操作,包括:所述報文收發(fā)硬件,通過所述第一以太網(wǎng)端口接收流量并執(zhí)行流表查詢,當(dāng)所述流表查詢成功時,所述報文收發(fā)硬件轉(zhuǎn)發(fā)流量,并且,當(dāng)所述流表查詢失敗時,所述報文收發(fā)硬件,基于所述第一鏈路聚合組的標(biāo)識,發(fā)送流量到所述從屬口。
4、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,基于所述第一鏈路聚合組的標(biāo)識,與所述報文收發(fā)硬件協(xié)作,以便通過所述第一用戶態(tài)綁定口進行發(fā)包操作,包括:所述用戶態(tài)軟件,添加報文擴展頭到待發(fā)送報文,得到擴展后待發(fā)送報文,然后,下發(fā)所述擴展后待發(fā)送報文到所述報文收發(fā)硬件,其中,所述報文擴展頭包括目標(biāo)端口信息;所述報文收發(fā)硬件,通過解析所述擴展后待發(fā)送報文,確定所述目標(biāo)端口信息從而確定所述第一鏈路聚合組的標(biāo)識,然后,基于所述第一鏈路聚合組的標(biāo)識,確定是否存在所述更新后第一鏈路聚合組配置,如果是,按照所述更新后第一鏈路聚合組配置來轉(zhuǎn)發(fā)所述待發(fā)送報文,如果否,按照所述第一鏈路聚合組配置來轉(zhuǎn)發(fā)所述待發(fā)送報文。
5、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述第一鏈路聚合組配置還包括所述第一鏈路聚合組的選路算法,所述第一鏈路聚合組的選路算法是基于所述第一內(nèi)核態(tài)綁定口的綁定模式確定的。
6、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述第一鏈路聚合組配置的更新,包括:改變所述第一鏈路聚合組的選路算法,得到所述第一鏈路聚合組的更新后選路算法,其中,所述更新后第一鏈路聚合組配置包括所述第一鏈路聚合組的更新后選路算法。
7、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述第一內(nèi)核態(tài)綁定口的綁定模式是輪詢模式,主備模式,選擇策略模式,廣播策略模式,動態(tài)鏈路聚合策略模式,基于網(wǎng)卡速率選擇模式,或者,負(fù)載均衡策略模式。
8、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述第一鏈路聚合組配置的更新,包括:改變所述第一鏈路聚合組的成員口得到所述第一鏈路聚合組的更新后成員口,以及,改變所述第一對應(yīng)關(guān)系得到在所述第一鏈路聚合組的更新后成員口與所述從屬口之間的更新后第一對應(yīng)關(guān)系,其中,所述更新后第一鏈路聚合組配置包括所述第一鏈路聚合組的更新后成員口和所述更新后第一對應(yīng)關(guān)系。
9、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,在所述第一鏈路聚合組配置的更新之后,所述第一鏈路聚合組的標(biāo)識和所述從屬口均保持不變。
10、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述方法還包括:確定不同于所述第一內(nèi)核態(tài)綁定口配置的第二內(nèi)核態(tài)綁定口配置,然后,按照所述第二內(nèi)核態(tài)綁定口配置來創(chuàng)建不同于所述第一內(nèi)核態(tài)綁定口的第二內(nèi)核態(tài)綁定口,以及,基于所述第二內(nèi)核態(tài)綁定口來確定不同于所述第一用戶態(tài)綁定口配置的第二用戶態(tài)綁定口配置,然后,按照所述第二用戶態(tài)綁定口配置來創(chuàng)建不同于所述第一用戶態(tài)綁定口的第二用戶態(tài)綁定口,從而構(gòu)建第二鏈路聚合組配置,其中,所述第二鏈路聚合組配置具有與所述第一鏈路聚合組配置不同的標(biāo)識和從屬口。
11、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述方法還包括:所述報文收發(fā)硬件,對通過所述第一以太網(wǎng)端口接收的數(shù)據(jù)報文進行篩選,從而將符合報文特征篩選規(guī)則的數(shù)據(jù)報文,上傳到所述第一內(nèi)核態(tài)綁定口或者所述第一用戶態(tài)綁定口。
12、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,當(dāng)所述數(shù)據(jù)報文是協(xié)議類型報文時,所述報文收發(fā)硬件上傳所述數(shù)據(jù)報文到所述第一內(nèi)核態(tài)綁定口,以便通過在所述內(nèi)核空間的內(nèi)核協(xié)議棧來處理所述數(shù)據(jù)報文。
13、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,當(dāng)所述數(shù)據(jù)報文關(guān)聯(lián)在所述用戶空間的應(yīng)用程序或者庫文件時,所述報文收發(fā)硬件上傳所述數(shù)據(jù)報文到所述第一用戶態(tài)綁定口。
14、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述宿主機的網(wǎng)絡(luò)設(shè)備包括第一虛擬接口和第二虛擬接口,所述第一虛擬接口對應(yīng)所述第一內(nèi)核態(tài)綁定口,所述第二虛擬接口對應(yīng)所述第一用戶態(tài)綁定口,所述網(wǎng)絡(luò)設(shè)備被配置為:可通過所述第一虛擬接口由所述內(nèi)核態(tài)驅(qū)動來管理,或者,可通過所述第二虛擬接口由在所述用戶空間的用戶態(tài)驅(qū)動來管理。
15、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述報文收發(fā)硬件包括郵箱通信機制,所述內(nèi)核態(tài)驅(qū)動與所述用戶態(tài)驅(qū)動之間的交互是通過所述郵箱通信機制來進行,所述用戶態(tài)驅(qū)動通過所述郵箱通信機制從所述內(nèi)核態(tài)驅(qū)動獲取所述第一內(nèi)核態(tài)綁定口配置。
16、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述用戶態(tài)軟件是數(shù)據(jù)平面開發(fā)工具集。
17、在本技術(shù)的第一方面的一種可能的實現(xiàn)方式中,所述第一用戶態(tài)綁定口作為代表口以便實現(xiàn)完全硬件卸載。
18、第二方面,本技術(shù)實施例還提供了一種計算機設(shè)備,所述計算機設(shè)備包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)根據(jù)上述任一方面的任一種實現(xiàn)方式的方法。
19、第三方面,本技術(shù)實施例還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機指令,當(dāng)所述計算機指令在計算機設(shè)備上運行時使得所述計算機設(shè)備執(zhí)行根據(jù)上述任一方面的任一種實現(xiàn)方式的方法。
20、第四方面,本技術(shù)實施例還提供了一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括存儲在計算機可讀存儲介質(zhì)上的指令,當(dāng)所述指令在計算機設(shè)備上運行時使得所述計算機設(shè)備執(zhí)行根據(jù)上述任一方面的任一種實現(xiàn)方式的方法。