国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于行為樹的組網(wǎng)服務管控架構(gòu)及調(diào)度方法

2024-11-22 00:00:00宋睿濤高先明黃姣蕊楊春剛黃韜李芫芫

摘 要:傳統(tǒng)互聯(lián)網(wǎng)為實現(xiàn)端到端安全、可靠、實時的網(wǎng)絡業(yè)務保障,需要在網(wǎng)元節(jié)點部署多類組網(wǎng)服務。然而,現(xiàn)有大多數(shù)網(wǎng)絡設備只提供網(wǎng)絡接入和路由等服務功能,缺乏安全、可靠、實時的服務設計?;陂_源網(wǎng)絡操作系統(tǒng)(software for open networking in the cloud, SONiC)、容器技術(shù)和行為樹設計一種組網(wǎng)服務管控架構(gòu)及調(diào)度方法,實現(xiàn)面向網(wǎng)絡業(yè)務保障的組網(wǎng)服務部署,將組網(wǎng)服務部署可編程網(wǎng)絡設備進行統(tǒng)一管理和調(diào)度,并進行仿真測試。所述組網(wǎng)服務管控架構(gòu)及調(diào)度方法進一步增強了網(wǎng)絡設備能力,利用行為樹高效協(xié)調(diào)管控調(diào)度過程中的狀態(tài)轉(zhuǎn)化,保障組網(wǎng)服務的交付質(zhì)量。

關(guān)鍵詞: 行為樹; 容器技術(shù); SONiC; 組網(wǎng)服務調(diào)度

中圖分類號: TP 273 文獻標志碼: A""" DOI:10.12305/j.issn.1001-506X.2024.10.31

Behavior tree based management and control architecture and

scheduling method for networking service

SONG Ruitao GAO Xianming HUANG Jiaorui YANG Chungang1,3, HUANG Tao3, LI Yuanyuan1

(1. School of Telcommunication Engineering, Xidian University, Xi’an 71007 China;

2. Institute of Systems Engineering, Academy of Military Sciences, Beijing 100039, China;

3. Hangzhou Institute of Technology, Xidian University, Hangzhou 311200, China)

Abstract: In order to achieve end-to-end security, reliability, and real-time network business support, traditional internet requires the deployment of multiple types of networking service at network element nodes. However, most existing network devices only provide network access, routing and other service functions, lacking safe, reliable, real-time and other service design. Based on the open source network operating system software for open networking in the cloud (SONiC), a management and control architecture and scheduling method for networking service based on container technology and behavior tree is designed. It realizes the deployment of networking service for network service support, which is then deploy to programmable network devices for unified management and scheduling, and simulation testing is carried out. The networking service management and control architecture and scheduling method further enhance the capability of network equipment, and use the behavior tree to efficiently coordinate and schedule the status transformation in the management, control and scheduling process to ensure the delivery quality of networking service.

Keywords: behavior tree; container technology; software for open networking in the cloud (SONiC); networking service scheduling

0 引 言

傳統(tǒng)互聯(lián)網(wǎng)在安全可靠方面面臨越來越多的不足,通過在網(wǎng)元節(jié)點上部署多類組網(wǎng)服務,例如路由服務、認證服務、密鑰管理服務等1,可有效應對上述安全、可靠服務的不足。然而,傳統(tǒng)網(wǎng)絡設備軟件與硬件緊密捆綁,只能提供特定的網(wǎng)絡服務與功能,無法滿足上述需求2。在此背景下,可編程網(wǎng)絡技術(shù)可實現(xiàn)網(wǎng)絡設備的軟、硬件分離,通過服務功能的虛擬化,使網(wǎng)絡設備能夠承載多類組網(wǎng)服務34。微軟向開放計算項目(open compute project,OCP)貢獻一組交換機專用集成電路(application specific integrated circuit,ASIC)芯片的交換機抽象接口(switch abstraction interface,SAI),適配各硬件廠商提供的軟件工具開發(fā)包(software development kit,SDK),實現(xiàn)以統(tǒng)一的方式控制不同廠商、不同芯片的交換機5。開放網(wǎng)絡操作系統(tǒng)(open network linux,ONL)是網(wǎng)絡操作系統(tǒng)開源化的第一個里程碑,為白盒交換機提供了必要的軟件集合,開源網(wǎng)絡操作系統(tǒng)(software for open networking in the cloud, SONiC)是以其為基礎的第一個重大突破6。SONiC采用SAI芯片標準化接口,實現(xiàn)底層芯片和上層應用的解耦,充分利用虛擬化技術(shù)及數(shù)據(jù)庫技術(shù),支持模塊化、應用容器化以及交換機狀態(tài)數(shù)據(jù)庫化7。

進一步,虛擬化技術(shù)可將物理資源,如服務器、存儲設備、網(wǎng)絡等,進行抽象和隔離,可通過軟件或硬件等方式,在一臺物理設備上創(chuàng)建多個虛擬環(huán)境,使每個虛擬環(huán)境都具有獨立的操作系統(tǒng)、應用程序和資源811。再有,容器技術(shù)可實現(xiàn)輕量級虛擬化,使網(wǎng)絡設備能夠便捷地承載不同的網(wǎng)元功能1214。綜上,容器技術(shù)和虛擬機技術(shù)通過將硬件配置與應用程序隔離來實現(xiàn)虛擬化,以創(chuàng)建應用程序?qū)Φ讓佑布o感的虛擬環(huán)境,從而實現(xiàn)“一處構(gòu)建,隨處運行”的特性。然而,虛擬機技術(shù)更依賴于Hypervisor層和物理機之間的關(guān)聯(lián)關(guān)系1516。相比之下,容器技術(shù)在外部環(huán)境上的運行較為孤立,鑒于容器技術(shù)的靈活性、快速性和高效性,如何有效地管控和調(diào)度各類容器化的組網(wǎng)服務,以充分利用網(wǎng)絡設備的各類資源成為一個重要問題1720。

針對組網(wǎng)服務的容器調(diào)度問題,各類容器編排工具應運而生,如:Mesos、Kubernets、Docker Swarm等,其提供了容器自動部署、容器遷移、服務發(fā)現(xiàn)、資源調(diào)度與分配、滾動升級、彈性伸縮等功能21。然而,上述容器編排工具或多或少存在不足,如由于調(diào)度策略是基于資源提供而實現(xiàn)的兩層調(diào)度,在資源的高利用率、數(shù)據(jù)共享等方面的表現(xiàn)不足;Kubernetes調(diào)度算法基于Brog優(yōu)化的兩階段最大評分節(jié)點選取方法,是一種靜態(tài)的調(diào)度算法,故而無法應對容器云環(huán)境下復雜且動態(tài)的資源分配與調(diào)整;Swarm對用戶的計算機水平要求不高且便于二次開發(fā),相較而言其調(diào)度策略過于簡單,更加無法滿足容器調(diào)度需求21。文獻[22]提出一種面向算力網(wǎng)絡的邊緣資源調(diào)度解決方案,該方案使用Kubernetes作為各個服務容器的管理調(diào)度中心,但還是存在一些問題。目前,Kubernetes不支持進階精簡指令集設備(advanced reduced instruction set computing machine,ARM),且對資源的消耗、尤其是內(nèi)存和中央處理器(central processing unit,CPU)的消耗,是網(wǎng)絡設備無法承受的,難以適應對網(wǎng)絡設備中容器的管理。

其次,上述容器編排工具在調(diào)度中采用類似有限狀態(tài)機的構(gòu)建方法,在服務節(jié)點出現(xiàn)異常事件后,產(chǎn)生相應的動作,從而引起狀態(tài)的轉(zhuǎn)移,轉(zhuǎn)移到新狀態(tài)或維持當前狀態(tài)。例如,在對正在運行的服務進行調(diào)度時,通常會造成服務的中斷,需要對系統(tǒng)進行功能擴展,對系統(tǒng)原有代碼進行修改,工程量較大。

針對上述問題,本文基于開源操作系統(tǒng)SONiC和行為樹設計一種組網(wǎng)服務管控架構(gòu)和調(diào)度方法,支持對運行在網(wǎng)元節(jié)點上的各類組網(wǎng)服務進行靈活調(diào)度。本文的主要貢獻如下:

首先,針對現(xiàn)有容器編排工具體量大且難以適應網(wǎng)絡場景的問題,基于SONiC網(wǎng)絡操作系統(tǒng)對其原生容器進行功能擴展,設計基于行為樹的組網(wǎng)服務管控架構(gòu),只設計必要功能,減少對網(wǎng)絡設備中各類資源的消耗,便于對網(wǎng)絡中的各個組網(wǎng)服務進行靈活調(diào)度。

其次,針對基于有限狀態(tài)機進行功能擴展需要重構(gòu)代碼、工程量較大的問題,基于行為樹設計一種組網(wǎng)服務調(diào)度策略生成方法,通過行為樹將各個功能進行組織,并將其以容器化的形式嵌入SONiC系統(tǒng),作為網(wǎng)絡中的組網(wǎng)服務管控平臺,便于組網(wǎng)服務遷移等功能的擴展。

最后,在典型場景下,對系統(tǒng)框架進行了用例分析,利用服務器搭建3個運行SONiC系統(tǒng)的節(jié)點,將其作為仿真環(huán)境,并通過調(diào)用接口,向網(wǎng)絡中部署密鑰管理服務,模擬節(jié)點資源不足的情況,測試該架構(gòu)對于組網(wǎng)服務的遷移調(diào)度能力,并對后續(xù)工作進行簡要介紹。

1 相關(guān)技術(shù)

1.1 SONiC網(wǎng)絡操作系統(tǒng)

SONiC基于Linux系統(tǒng)進行開發(fā),其利用鍵值數(shù)據(jù)庫和容器技術(shù)實現(xiàn)各個模塊的封裝和解耦,并與硬件層建立SAI,該接口使得網(wǎng)元設備可以加入自定義的網(wǎng)絡功能,極大程度地提高了網(wǎng)元功能的擴展性2223。

SONiC系統(tǒng)的基礎結(jié)構(gòu)如圖1所示22,其核心思想是利用容器技術(shù)實現(xiàn)各個功能的隔離,數(shù)據(jù)庫主要用于實現(xiàn)數(shù)據(jù)的存儲和模塊之間的通信,以實現(xiàn)較高的擴展性。系統(tǒng)自下而上由3個層次組成:硬件層由集成電路和芯片組成;操作系統(tǒng)則負責利用驅(qū)動程序與硬件進行溝通;用戶層則運行各個功能容器,主要包含以下幾個部分。

簡單網(wǎng)絡管理協(xié)議(simple network management protocol,SNMP)容器:托管SNMP功能。

鏈路層發(fā)現(xiàn)協(xié)議(link layer discovery protocol,LLDP)容器:負責承載LLDP功能,實現(xiàn)鏈路發(fā)現(xiàn)協(xié)議,在與其他交換機建立連接的基礎上,將信息同步到Redis容器中供其他功能使用。

邊界網(wǎng)關(guān)協(xié)議(border gateway protocol,BGP)容器:負責運行支持的路由堆棧之一,主要由zebra路由套件實現(xiàn),在構(gòu)建網(wǎng)絡拓撲的基礎上,計算出路由信息并同步到內(nèi)核。

Database容器:應用程序可以通過訪問數(shù)據(jù)庫進行通信和數(shù)據(jù)存儲。

交換機狀態(tài)服務(switch state service,SWS)容器:用于協(xié)調(diào)所有SONiC模塊之間、模塊與redis引擎之間的通信。

同步進程(synchronization daemon,SYNCD)容器:負責收集當前交換機的網(wǎng)絡狀態(tài)并同步給ASIC芯片。

1.2 行為樹

行為樹是一種樹形的層次化決策工具,與有限狀態(tài)機相比,行為樹擁有模塊化、可擴展的特點,常用于對有限狀態(tài)機進行替換。行為樹由執(zhí)行結(jié)點和控制結(jié)點組成樹形結(jié)構(gòu),其中執(zhí)行結(jié)點多用于執(zhí)行特定的動作或判斷,位于樹的末端;控制結(jié)點則跟據(jù)不同節(jié)點的判斷邏輯向上返回執(zhí)行狀態(tài),控制遍歷流程,位于樹的內(nèi)部。在行為樹運行過程中,從根結(jié)點出發(fā)使用深度優(yōu)先搜索方式執(zhí)行每一個結(jié)點,并將每個結(jié)點的結(jié)果向上進行反饋24

與行為樹類似,有限狀態(tài)機、分層狀態(tài)機和決策樹都是用于人工智能、機器人、游戲開發(fā)和計算機科學等其他領域的模型,雖然都代表決策過程,但在結(jié)構(gòu)、復雜性和應用方面卻各不相同。本節(jié)將在表1中對有限狀態(tài)機、分層狀態(tài)機、決策樹和行為樹進行對比。

有限狀態(tài)機是決策模型中最簡單的形式,由有限數(shù)量的狀態(tài)和狀態(tài)之間的轉(zhuǎn)換組成,用于模擬簡單的行為,通常用有向圖來表示。有限狀態(tài)機廣泛應用于游戲開發(fā)、機器人和控制系統(tǒng)。分層狀態(tài)機是有限狀態(tài)機的擴展,可通過將行為組織成層次結(jié)構(gòu)來創(chuàng)建更復雜的行為,由一系列嵌套的有限狀態(tài)機組成,其中每個嵌套的有限狀態(tài)機代表一個較低級別的行為。分層狀態(tài)機通常用于模擬復雜系統(tǒng)的行為,如自動駕駛汽車或機器人。決策樹也是一種決策模型,使用樹狀結(jié)構(gòu)來表示決策序列。樹中的每個決策節(jié)點代表一個測試,分支代表測試的可能結(jié)果。決策樹通常用于機器學習和決策分析25。行為樹作為一種決策模型,融合了分層狀態(tài)機的層次化處理結(jié)構(gòu)和決策樹的決策能力。

行為樹常用于游戲開發(fā)、機器人和控制系統(tǒng),為復雜行為提供了靈活的模塊化表示方法26。在大多數(shù)情況下,行為樹可用作有限狀態(tài)機的替代品27。雖然有限狀態(tài)機是4種模型中最簡單的一種,但也是表現(xiàn)力最差的一種,因為其只能表示有限的一組行為。另一方面,分層狀態(tài)機和行為樹的表現(xiàn)力更強,可以表示更復雜的行為。分層狀態(tài)機通常用于為具有層次結(jié)構(gòu)的系統(tǒng)行為建模,而行為樹通常用于為具有模塊結(jié)構(gòu)的系統(tǒng)行為建模2829。決策樹則通常用于機器學習,以緊湊、可解釋的方式表示決策規(guī)則。決策樹還可用于決策分析,分析決策過程并確定最優(yōu)的傳輸路徑。在實現(xiàn)方面,有限狀態(tài)機和分層狀態(tài)機通常使用狀態(tài)機來實現(xiàn),效率高,可以處理實時系統(tǒng)。決策樹使用二叉樹或基于規(guī)則的系統(tǒng)實現(xiàn)。行為樹通常使用帶有邏輯節(jié)點的樹形結(jié)構(gòu)來實現(xiàn),這種結(jié)構(gòu)提供了一種模塊化和靈活的方式,以表示復雜的行為3033

本文基于行為樹對組網(wǎng)服務的調(diào)度流程進行表征,利用行為樹在模塊化、層次化、可重用性、可讀性、魯棒性等方面的優(yōu)勢,高效協(xié)調(diào)調(diào)度過程中的狀態(tài)轉(zhuǎn)化,實現(xiàn)了網(wǎng)絡中各類組網(wǎng)服務在網(wǎng)元設備上的統(tǒng)一管控和調(diào)度,且便于后續(xù)功能的擴展。

2 基于行為樹的組網(wǎng)服務管控架構(gòu)

2.1 整體技術(shù)架構(gòu)

SONiC系統(tǒng)借助容器技術(shù)和數(shù)據(jù)庫技術(shù)為網(wǎng)元功能的擴展提供了更多的可能性,同時使得網(wǎng)元資源可以得到充分利用,也為組網(wǎng)服務功能的靈活管控提供了便利。本文在SONiC架構(gòu)的基礎上,對其原有功能容器進行擴展,以實現(xiàn)在網(wǎng)元設備上對各類組網(wǎng)服務的動態(tài)調(diào)度,SONiC容器管控架構(gòu)的整體架構(gòu)如圖2所示。圖2中,(1)~(6)為SONiC內(nèi)部所發(fā)生的工作流程,將在后文中詳細說明。在SONiC中引入3個新的容器,并對其原有容器進行功能擴展。

Database容器:在redis中將7號數(shù)據(jù)庫作為存放全網(wǎng)資源的數(shù)據(jù)庫resour_DB,用于存放網(wǎng)絡中各個網(wǎng)元節(jié)點的計算、存儲、轉(zhuǎn)發(fā)、安全等資源信息,為組網(wǎng)服務調(diào)度提供依據(jù)。

SYNCD容器:通過SAI接口獲取由硬件驅(qū)動向上提供的硬件資源情況,通過syncd將收集到的資源信息注入resour_DB中。

Resource容器:Resour_sync負責將底層獲取到的資源信息進行全網(wǎng)同步,使網(wǎng)絡中每個節(jié)點均掌握全網(wǎng)資源分布情況;Monitor進程通過對本節(jié)點的資源進行監(jiān)控,決定是否將本節(jié)點的資源進行全網(wǎng)推送并動態(tài)調(diào)整推送頻率。

BT_manager容器:該容器在一個自治系統(tǒng)(Autonomous system,AS)或自治域中只部署一個,通常部署在核心網(wǎng)與接入網(wǎng)的交界處,對一個AS中的容器進行統(tǒng)一管控。通過遍歷預先設計的行為樹,結(jié)合數(shù)據(jù)庫中的全網(wǎng)資源,完成組網(wǎng)服務部署和遷移等調(diào)度任務。

Mig_agent容器:該容器部署在網(wǎng)絡中的所有節(jié)點中,與BT_manager形成C/S結(jié)構(gòu),作為BT_manager的服務端,負責與主機Docker引擎溝通以便完成組網(wǎng)服務的部署和遷移。該容器通過接收BT_manager發(fā)出的指令,調(diào)用主機Docker引擎的RESTful接口,并結(jié)合CRIU工具實現(xiàn)容器部署、容器凍結(jié)、容器恢復、數(shù)據(jù)同步等工作。

Service容器:該類容器承載具體的組網(wǎng)服務,如路由服務、密鑰管理等,通過前述的一系列容器對這類容器進行調(diào)度,保障各類組網(wǎng)服務可以正常運行。

下面介紹系統(tǒng)工作過程中SONiC內(nèi)部所發(fā)生的工作流程:

(1) 由硬件驅(qū)動程序定時通過SAI接口將本節(jié)點的計算、存儲、轉(zhuǎn)發(fā)等資源傳遞給SYNCD容器。

(2) 由Syncd進程將收集到的底層資源信息存入redis的Resour_DB數(shù)據(jù)庫中。

(3) Monitor對存入數(shù)據(jù)庫中的本節(jié)點資源進行監(jiān)控并將其推送至全網(wǎng),由Resour_sync將同步后的全網(wǎng)資源信息存入資源數(shù)據(jù)庫中。

(4) BT_manager遍歷行為樹生成組網(wǎng)服務調(diào)度策略,主要分兩個方面,首先對組網(wǎng)服務上線申請進行實例化部署,同時根據(jù)數(shù)據(jù)庫中的全網(wǎng)資源信息為已經(jīng)部署的運行態(tài)服務制定遷移策略,然后將生成的調(diào)度策略發(fā)送給目標節(jié)點的Mig_agent容器。

(5) Mig_agent執(zhí)行由BT_manager發(fā)送的指令,對本節(jié)點承載組網(wǎng)服務的容器執(zhí)行相應操作,若需要對容器進行凍結(jié),需要從操作系統(tǒng)中獲取容器相關(guān)配置信息和容器運行狀態(tài)。

(6) 組網(wǎng)服務部署或遷移完成后,容器進入運行狀態(tài),在數(shù)據(jù)庫中進行服務注冊,由Resource容器進行監(jiān)控。

2.2 基于行為樹的組網(wǎng)服務調(diào)度策略生成

如前文中的SONiC容器管控架構(gòu)所述,BT_manager容器負責對一個AS中的組網(wǎng)服務進行統(tǒng)一管控和調(diào)度,此處調(diào)度包括兩個方面,一是對網(wǎng)絡中不存在的新服務進行部署,二是對正在運行的組網(wǎng)服務進行保障,在節(jié)點異常情況下對組網(wǎng)服務進行遷移來保障服務質(zhì)量。該容器內(nèi)部通過遍歷預先設計的行為樹,結(jié)合數(shù)據(jù)庫中的全網(wǎng)資源,完成組網(wǎng)服務部署、組網(wǎng)服務遷移判決、最優(yōu)節(jié)點計算、組網(wǎng)服務遷移等任務,確保組網(wǎng)服務能夠正常運行?;谛袨闃涞慕M網(wǎng)服務調(diào)度建模如圖3所示,該行為樹分為兩顆子樹,左側(cè)子樹實現(xiàn)由服務的注冊到組網(wǎng)服務的部署,右側(cè)子樹實現(xiàn)由底層網(wǎng)絡資源狀態(tài)變化驅(qū)動的組網(wǎng)服務的遷移。

行為樹從根結(jié)點出發(fā),為同時實現(xiàn)上述兩個過程,在根結(jié)點設置并行結(jié)點執(zhí)行其下的兩棵子樹。圖3中左側(cè)子樹中最左側(cè)條件結(jié)點首先判斷是否有服務上線申請,通常服務上線申請是由用戶發(fā)起,若有服務上線申請,則執(zhí)行其后的動作結(jié)點,將上線的服務名稱填入該行為樹的Blackboard中,如圖4所示。

Blackboard是行為樹結(jié)點之間傳輸數(shù)據(jù)的方式,其本質(zhì)是一個哈希表,數(shù)據(jù)以鍵值對的形式存在這個表中,每棵行為樹都有自己的Blackboard,被所有的節(jié)點共享。在本行為樹中,Blackboard用于存放各個組網(wǎng)服務的相關(guān)信息,Service對應的Value為該組網(wǎng)服務名稱及所需資源;Policy所對應的Value為該服務的部署位置,Policy與Service根據(jù)其后的編號一一對應。之后,通過條件結(jié)點檢測是否所有服務均被部署,若存在服務未被部署,則執(zhí)行其后的順序結(jié)點,獲取服務所需資源。該動作通過訪問redis數(shù)據(jù)庫中的資源數(shù)據(jù)庫獲取全網(wǎng)資源信息,選擇最優(yōu)的服務部署結(jié)點,并將策略下發(fā)給目標節(jié)點的Mig_agent容器執(zhí)行。

在左側(cè)子樹執(zhí)行完畢后,各個組網(wǎng)服務容器進入運行狀態(tài),在行為樹遍歷過程中,通過執(zhí)行右側(cè)子樹第一個結(jié)點獲取網(wǎng)絡中各個節(jié)點的資源狀態(tài),之后通過右側(cè)分支的選擇結(jié)點判斷計算、存儲、轉(zhuǎn)發(fā)資源是否過載,根據(jù)預先設定的閾值決定是否進入后續(xù)服務遷移流程。當承載服務的節(jié)點資源未超過閾值時,該選擇結(jié)點返回1,結(jié)束此次對于行為樹的遍歷;若該節(jié)點資源超過設定閾值,則進行遷移節(jié)點預選,計算遷移代價和收益,確定最優(yōu)遷移節(jié)點,最終由遷移判決對多個采樣點的資源狀態(tài)進行分析,確定是否執(zhí)行此次服務遷移。

2.3 組網(wǎng)服務遷移判決

組網(wǎng)服務遷移作為調(diào)度過程的一個重要環(huán)節(jié),保證組網(wǎng)服務在節(jié)點異常狀態(tài)下仍然能夠正常提供服務,主要分為以下幾個步驟,即組網(wǎng)服務遷移判決、遷移最優(yōu)節(jié)點計算以及遷移動作執(zhí)行,均以動作結(jié)點的形式存在于行為樹中。其中,服務遷移判決功能對資源感知模塊構(gòu)建的資源狀態(tài)表進行分析,分析節(jié)點各類資源占用情況,若超過事先設置的閾值,則觸發(fā)服務遷移判決算法。由于一種組網(wǎng)服務通常占用多種資源,且不同的服務功能對資源的需求不同。例如,當節(jié)點上計算資源的使用率很高,而存儲資源的使用率很低時,此節(jié)點資源利用均衡度就很低。在此種情況下,該節(jié)點中計算資源與存儲資源的使用率差別很大,若服務繼續(xù)運行,可能會影響其處理能力,所以在判決過程中只要有一種資源超過閾值,即會觸發(fā)服務遷移動作。

另外,組網(wǎng)服務遷移判決條件并不是依照單個時間點的瞬時資源狀態(tài)進行判決,以計算和存儲資源為例的具體判決流程如圖5所示。當某個節(jié)點的某類資源占用超過預先設定的閾值時,則會進入遷移判決算法,通過對多個采樣點的節(jié)點狀態(tài)進行分析做出最終的判決,不會直接執(zhí)行服務遷移動作。其主要目的是為了防止節(jié)點在任務處理過程中出現(xiàn)瞬時資源利用率超過閾值而觸發(fā)的無意義遷移,這種情況下資源占用率往往會在較短時間內(nèi)回歸正常狀態(tài),如果此時立即執(zhí)行遷移動作會帶來無意義的資源損耗和時延。此處遷移判決算法在某類資源利用率超過閾值后觸發(fā)后續(xù)流程,持續(xù)監(jiān)測接下來的n個采樣點的該資源的利用率,若平均值超過了預先設定的閾值,則判斷當前節(jié)點資源不足,繼續(xù)執(zhí)行可能影響服務質(zhì)量,開始執(zhí)行后續(xù)服務遷移動作,避免無意義的遷移動作而導致的損耗和時延。

2.4 遷移最優(yōu)節(jié)點計算

為確保組網(wǎng)服務在遷移后能夠更好地提供服務,對目標節(jié)點的各類資源有一定的要求,同時還需要考慮網(wǎng)絡中所有節(jié)點資源利用的均衡度,避免出現(xiàn)某些節(jié)點負載較高的情況。因此,對于遷移節(jié)點的選擇,需要結(jié)合全網(wǎng)資源信息并權(quán)衡遷移的代價和帶來的收益綜合決定。計算流程如下:首先根據(jù)全網(wǎng)資源狀態(tài)進行遷移節(jié)點預選,對剩余資源不足或節(jié)點度低于全網(wǎng)平均水平的節(jié)點進行刪除,計算從源節(jié)點遷移到候選節(jié)點的預期收益。此處收益為對資源均衡度的改善情況。同時根據(jù)路徑計算得到到達各個節(jié)點的路徑,計算從源節(jié)點到各個節(jié)點最短路徑的代價之和。最終將代價和收益進行加權(quán),選擇數(shù)值最低的節(jié)點作為遷移的目的節(jié)點。

由于節(jié)點通常存在計算、存儲等多種資源,此處定義資源利用率的標準差描述節(jié)點各類資源利用的均衡狀況,該值越小,節(jié)點的資源利用更加均衡,優(yōu)先選擇該值較大的節(jié)點。各個節(jié)點的資源利用率標準差為

SUi=∑Nn=1(ani-aavi)N(1)

式中:N表示資源種類數(shù),ani表示節(jié)點的第i種資源的利用率(當前資源占用值除以資源總量);aavi=∑Nn=1ani/N代表節(jié)點i資源利用率的平均值。

用節(jié)點處各類資源利用率的最大值與最小值的差值來衡量該節(jié)點處資源利用均衡度:

SUBi=max ani n∈[1,2,,N-min ani n∈[1,2,,N

(2)

式中:max ani n∈[1,2,,N表示各類資源利用率最大值;min ani n∈[1,2,,N表示各類資源利用率最小值,該值同樣用于反映各類資源利用的均衡狀況。

基于節(jié)點資源利用均衡度定義服務遷移收益:在選擇最優(yōu)遷移節(jié)點時,需要在遷移前評估遷移的預期收益,并根據(jù)服務遷移的成本判斷該節(jié)點是否可以作為遷移的目的節(jié)點。此處,服務遷移收益定義為服務遷移前后資源利用率均衡度的變化量與服務遷移前資源利用率均衡度的比值,以此來體現(xiàn)服務遷移前后對于資源利用均衡度的改善情況:

benefit(i)=SUBi-SUB′iSUBi

(3)

以式(3)計算所有候選節(jié)點的收益情況,若該值大于零,則表示將服務遷移到該節(jié)點上,會改善該節(jié)點的資源利用均衡度。反之,則會惡化該節(jié)點的資源利用狀況,影響其正常服務的運行。因此,在所有滿足要求的候選節(jié)點中優(yōu)先選擇變化幅度更大的節(jié)點作為服務遷移的目標節(jié)點。

進一步定義服務遷移代價:服務遷移過程中的代價來源于遷移過程中傳輸?shù)姆諗?shù)據(jù)、節(jié)點狀態(tài)數(shù)據(jù)等,假設到目標節(jié)點每一跳的代價均相同,均為所傳輸數(shù)據(jù)大小與鏈路帶寬的比值,若源節(jié)點到目標節(jié)點的路徑跳數(shù)為n,服務遷移代價為每段路徑的代價之和,則服務遷移代價計算公式為

cos t(i)=cos t(li)·n

(4)

式中:cos t(li)為路徑中每一跳的權(quán)重。

最終,通過對遷移收益和遷移代價加權(quán)求和,得到服務遷移的增益,將該值最大的節(jié)點作為遷移的最佳目標節(jié)點。服務遷移增益函數(shù)如下:

G(i)=benefit(i)·λ-cos t(i)·(1-λ)

(5)

式中:λ是收益和代價的修正系數(shù),可以根據(jù)不同的需求進行調(diào)整。

基于上述描述,最優(yōu)節(jié)點的計算如算法1所示。

算法 1 最優(yōu)節(jié)點計算算法

輸入 全網(wǎng)資源狀態(tài)信息

輸出 遷移最佳節(jié)點

1:while(true){

2: for n 1 to N do{

3:" if ani+replt;value {

4:""" 將該節(jié)點設為候選節(jié)點

5:""" }∥end_if

6: }∥end_for 篩選出候選節(jié)點

7: for i 1 to H do{

8:"" benefit(i)gt;0=SUBi-SUB′iSUBi

9:"" if benefit(i)gt;0{

10:"""""" 從候選節(jié)點中刪除該節(jié)點

11:""" }∥end_if

12: }∥end for

13: for i 1 to I do{

14:"" cos t(i)=cos t(li)·n

15:"" G(i)=benefit(i)·(λ)-cos t(i)·(1-λ)

16:"" if G(i)lt;0{

17:"""" 從候選節(jié)點中刪除該節(jié)點

18:"""" continue

19:"" }∥end_if

20: }∥end for

21: v=arg max(G(i))

22:}output v∥最佳遷移節(jié)點

2.5 組網(wǎng)服務遷移實施流程

在確定遷移目標節(jié)點后,源節(jié)點會詢問目標節(jié)點是否接收遷移,若目標節(jié)點本身已存在該服務,則不會接受服務遷移,并反饋給源節(jié)點,由BT_manager容器重新進行最優(yōu)節(jié)點計算;若目標節(jié)點接受遷移,則將源節(jié)點組網(wǎng)服務容器的數(shù)據(jù)復制到目標節(jié)點,便于目標節(jié)點服務的快速部署和恢復,如圖6為兩節(jié)點之間交互的流程圖。

為了便于對組網(wǎng)服務容器的管理,為各個服務設計了以下幾種狀態(tài)。

運行態(tài):服務正在正常運行。

卸載態(tài):服務停止運行。

遷移態(tài):服務正處于計劃遷移狀態(tài),在源節(jié)點上對該服務觸發(fā)服務遷移后,由運行態(tài)轉(zhuǎn)換為遷移態(tài),此時該服務正常運行;在目標節(jié)點上,若該服務將要被遷移到該節(jié)點,由卸載態(tài)轉(zhuǎn)換為遷移態(tài),此時服務還未運行,處于準備狀態(tài),防止其他節(jié)點重復操作。

就緒態(tài):服務已經(jīng)完成遷移準備,可以運行,開始運行后轉(zhuǎn)換為運行態(tài)。

當源節(jié)點計算出遷移目標節(jié)點后,首先會詢問目標節(jié)點是否接受遷移,若該目標節(jié)點當前服務狀態(tài)為遷移態(tài)、就緒態(tài)或運行態(tài),則會向源節(jié)點返回拒絕接受遷移,此后重新尋找最優(yōu)節(jié)點;當該目標節(jié)點服務狀態(tài)為卸載態(tài),則會返回接受遷移,且更改當前狀態(tài)為遷移態(tài)。源節(jié)點接收到確認遷移的消息后,會向目標節(jié)點發(fā)送遷移相關(guān)數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后,目標節(jié)點狀態(tài)變?yōu)榫途w態(tài),等待服務運行。服務正式運行后,狀態(tài)變?yōu)檫\行態(tài),向源節(jié)點發(fā)送遷移完成消息,源節(jié)點接收到遷移完成消息后,將服務卸載,遷移結(jié)束。

遷移數(shù)據(jù)主要分為兩類,容器內(nèi)部數(shù)據(jù):即容器內(nèi)部運行的應用程序產(chǎn)生的數(shù)據(jù),例如日志數(shù)據(jù)等;容器外部數(shù)據(jù)卷:即與容器關(guān)聯(lián)的存儲卷中存儲的數(shù)據(jù),例如數(shù)據(jù)庫數(shù)據(jù)、配置文件等。對于容器內(nèi)部數(shù)據(jù),可以通過將數(shù)據(jù)打包成鏡像文件或者網(wǎng)絡傳輸?shù)确绞竭M行遷移。一般來說,在數(shù)據(jù)量較小的情況下,可以將數(shù)據(jù)打包成鏡像文件,并通過Docker工具進行解壓。在數(shù)據(jù)量較大的情況下,可以通過網(wǎng)絡傳輸?shù)确绞竭M行遷移,例如使用Scp命令或者Rsync命令將數(shù)據(jù)傳輸?shù)侥繕斯?jié)點上。對于數(shù)據(jù)卷,需要先將數(shù)據(jù)卷從源節(jié)點卸載,然后將數(shù)據(jù)卷數(shù)據(jù)復制到目標節(jié)點上。在目標節(jié)點上重新掛載數(shù)據(jù)卷后,容器可以繼續(xù)訪問數(shù)據(jù)卷中的數(shù)據(jù)。

在完成容器數(shù)據(jù)的遷移后,啟動容器預熱機制,讀取由源節(jié)點同步的數(shù)據(jù)和配置文件,并讓其運行一段時間以同步遷移過程中產(chǎn)生的數(shù)據(jù)更新以達到預熱效果,確保在遷移完成后可以快速響應服務,減少延遲。預熱結(jié)束后,則由源節(jié)點卸載源節(jié)點上的服務容器,之后由新節(jié)點繼續(xù)提供服務。

3 實驗分析

本文基于開源操作系統(tǒng)SONiC和行為樹設計了一種組網(wǎng)服務管控架構(gòu)和調(diào)度方法,支持對運行在網(wǎng)元設備上的各類組網(wǎng)服務進行靈活調(diào)度。為了驗證本文提出的架構(gòu)和方法,利用服務器搭建3個運行SONiC系統(tǒng)的節(jié)點,作為仿真環(huán)境。如圖7所示,通過調(diào)用BT_manager容器向外暴露的容器部署接口,可以實現(xiàn)對組網(wǎng)服務容器的自動部署,對本文所提管控架構(gòu)和調(diào)度方法進行功能驗證。以密鑰管理服務為例,調(diào)用該接口返回服務部署的IP地址、容器名稱、運行狀態(tài)等信息,根據(jù)返回信息可知,該服務被成功部署到IP地址為“192.168.98.130”的節(jié)點。

為驗證BT_manager容器中行為樹的服務遷移能力,與傳統(tǒng)的冷遷移方式進行對比,分別使用本文所提出的方法和使用容器編排工具Kubernetes進行多次實驗,驗證基于行為樹的服務遷移對于服務中斷的影響效果。傳統(tǒng)的容器冷遷移方式,在遷移前需要將容器停止,導致出現(xiàn)服務中斷;而本文基于行為樹的服務遷移方式,通過不斷遍歷行為樹、對各個網(wǎng)元節(jié)點狀態(tài)進行分析,在保證服務不中斷的情況下進行服務遷移,最大限度地保證服務質(zhì)量。

仿真結(jié)果如圖8所示,通過程序模擬終端向密鑰分發(fā)服務請求密鑰,圖中黑色、紅色曲線分別代表在行為樹管理下和容器編排工具Kubernetes管理下請求密鑰平均時延隨時間的變化。曲線時延表示終端向密鑰管理服務發(fā)起請求到接收響應的時間差,反應了密鑰管理服務的服務質(zhì)量。隨著請求的增加,密鑰管理服務負載持續(xù)增加,時延明顯增加,服務質(zhì)量較差。當服務中斷時,由于終端無法請求到密鑰,所以無法得出時延。圖8中,將這種情況以時延為0來體現(xiàn),便于觀察。在程序啟動前一段時間每秒創(chuàng)建100個線程請求密鑰,并記錄請求平均時延;在30 s后每秒創(chuàng)建500個線程請求密鑰,導致運行密鑰管理服務的節(jié)點負載增加。從圖8中可見,請求時延明顯增加,若負載持續(xù)增加,可能會導致服務中斷,此時在遍歷行為樹的過程中檢測到節(jié)點的異常狀態(tài),啟動服務遷移,在完成服務遷移后請求時延逐漸恢復到正常狀態(tài)。與普通的服務遷移相比,本文提出的方法在遷移過程中不會造成服務中斷,可確保服務的持續(xù)可用。

4 結(jié)束語

本文基于開源操作系統(tǒng)SONiC和行為樹設計一種組網(wǎng)服務管控架構(gòu)和調(diào)度方法,支持對運行在網(wǎng)元節(jié)點上的各類組網(wǎng)服務進行靈活調(diào)度。基于SONiC網(wǎng)絡操作系統(tǒng)對其原生容器進行功能擴展,將組網(wǎng)服務調(diào)度機制集成到SONiC系統(tǒng)中,支持全網(wǎng)資源監(jiān)控和組網(wǎng)服務的敏捷調(diào)度。基于行為樹設計一種組網(wǎng)服務調(diào)度策略生成方法,并將其以容器化的形式嵌入SONiC系統(tǒng)中,作為網(wǎng)絡中的組網(wǎng)服務管控平臺,利用行為樹模塊化、層次化、代碼可重用、反應快速、可讀性強的特點,高效協(xié)調(diào)調(diào)度過程中的狀態(tài)轉(zhuǎn)化,保證組網(wǎng)服務交付質(zhì)量。目前,在實驗環(huán)境下已完成對本文所提方法的測試。為適應生產(chǎn)環(huán)境,后續(xù)會進一步對行為樹進行擴展,例如增加對于路由協(xié)議的控制,增強行為樹的調(diào)度能力。

參考文獻

[1] POP M D, PANDEY J, RAMASAMY V. Future networks 2030: challenges in intelligent transportation systems[C]∥Proc.of the 8th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions), 2020: 898902.

[2] BONATI L, POLESE M, D’ORO S, et al. Open, programmable, and virtualized 5G networks: state-of-the-art and the road ahead[J]. Computer Networks, 2020, 182: 107516.

[3] 張成林, 宋玲玲. 面向未來網(wǎng)絡的白盒交換機體系綜述[J]. 信息技術(shù)與網(wǎng)絡安全, 202 41(3): 28.

ZHANG C L, SONG L L. A review on architecture of white box switches for future networks[J]. Information Technology amp; Network Security, 202 41(3): 28.

[4] BOSSHART P, DALY D, GIBB G, et al. P4: programming protocol-independent packet processors[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(3): 8795.

[5] Open Compute Project. Switch abstraction interface(SAI):a reference switch abstraction interface for OCP[EB/OL]. [20230704]. https:∥www.opencompute.org/.

[6] Open Compute Project. SONiC:software for open net-working in the cloud website[EB/OL]. [20230704]. https:∥github.com/sonic-net/SONiC.

[7] Open Compute Project. Open network linux: a reference network operating system for OCP[EB/OL]. [20230704]. http:∥opennetlinux.org/.

[8] ALAM I, SHARIF K, LI F, et al. A survey of network virtuali-zation techniques for Internet of things using SDN and NFV[J]. ACM Computing Surveys, 2020, 53(2): 140.

[9] SHEN X M, GAO J, WU W, et al. Holistic network virtualization and pervasive network intelligence for 6G[J]. IEEE Communications Surveys amp; Tutorials, 202 24(1): 130.

[10] ZHANG L L, YANG C G, OUYANG Y, et al. ISFC: intent-driven service function chaining for satellite networks[C]∥Proc.of the 27th Asia Pacific Conference on Communications, 2022: 544549.

[11] 張露露, 楊春剛, 王棟, 等. 意圖驅(qū)動的云網(wǎng)融合按需編排[J]. 電信科學, 202 38(10): 107119.

ZHANG L L, YANG C G, WANG D, et al. Intent-driven cloud-network convergence on-demand orchestration[J]. Telecommunications Science, 202 38(10): 107119.

[12] LONG X M, LIU B H, JIANG F, et al. FPGA virtualization deployment based on docker container technology[C]∥Proc.of the 5th International Conference on Mechanical, Control and Computer Engineering, 2020: 473476.

[13] SIDDIQUI T, SIDDIQUI S A, KHAN N A. Comprehensive analysis of container technology[C]∥Proc.of the 4th International Conference on Information Systems and Computer Networks, 2019: 218223.

[14] MUNERMAN V, MUNERMAN D. Realization of distributed data processing on the basis of container technology[C]∥Proc.of the IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering, 2019: 17401744.

[15] MI X R, YANG C G, SONG Y B, et al. A distributed matching game for exploring resource allocation in satellite networks[J]. Peer-to-Peer Networking and Applications, 202 14(5): 33603371.

[16] POTDAR A M, NARAYAN D G, KENGOND S, et al. Perfor-mance evaluation of docker container and virtual machine[J]. Procedia Computer Science, 2020, 171: 14191428.

[17] AHMAD I, AIFAILAKAWI M G, AIMUTAWA A, et al. Container scheduling techniques: a survey and assessment[J]. Journal of King Saud University-Computer and Information Sciences, 202 34(7): 39343947.

[18] OUYANG Y, LINZ J Q, FENGZ T, et al. Intent-driven CoX resource management for space-terrestrial networks[J]. IEEE Wireless Communications, 2023. DOI:10.1109/MWC.018.2200600.

[19] Mi X R, YANG C G, SONG Y B, et al. Matching game for intelligent resource management in integrated satellite-terrestrial networks[J]. IEEE Wireless Communications, 202 29(6): 8894.

[20] KAEWKASI C, CHUENMUNEEWONG K. Improvement of container scheduling for docker using ant colony optimization[C]∥Proc.of the 9th International Conference on Knowledge and Smart Technology, 2017: 254259.

[21] MENOUER T. KCSS: Kubernetes container scheduling strategy[J]. The Journal of Supercomputing, 202 77(5): 42674293.

[22] 李銘軒, 曹暢, 唐雄燕, 等. 基于可編程網(wǎng)絡的 UPF 邊緣調(diào)度機制研究[J]. 數(shù)據(jù)與計算發(fā)展前沿, 202 4(2): 7486.

LI M X, CAO C, TANG X Y, et al. Research on edge scheduling mechanism of UPF based on programmable network[J]. Frontiers of Data amp; Computing, 202 4(2): 7486.

[23] 劉曦. 數(shù)據(jù)中心網(wǎng)絡SONiC白盒技術(shù)的發(fā)展趨勢[J]. 通信世界, 2019(33): 4243.

LIU X. The development trends of SONiC white box technology in data center networks[J]. Communication World, 2019(33): 4243.

[24] IOVIINO M, SCUKINS E, STYRUD J, et al. A survey of behavior trees in robotics and AI[J]. Robotics and Autonomous Systems, 202 154: 104096.

[25] COLLEDANCHISE M. Behavior trees in robotics[D]. Stockholm: KTH Royal Institute of Technology, 2017.

[26] PERGER A, GAMPER P, WITZMANN R. Behavior trees for smart grid control[J]. IFAC-PapersOnLine, 202 55(9): 122127.

[27] MARZINOTTO A, COLLEDANCHISE M, SMITH C, et al. Towards a unified behavior trees framework for robot control[C]∥Proc.of the IEEE International Conference on Robotics and Automation, 2014: 54205427.

[28] ROVIDA F, GROSSMANN B, KRUGER V. Extended beha-vior trees for quick definition of flexible robotic tasks[C]∥Proc.of the IEEE/RSJ International Conference on Intelligent Robots and Systems, 2017: 67936800.

[29] BIGGAR O, ZAMANI M, SHAMES I. An expressiveness hie-rarchy of behavior trees and related architectures[J]. IEEE Robotics and Automation Letters, 202 6(3): 53975404.

[30] COLLEDANCHISE M, MARZINOTTO A, DIMAROGONAS D V, et al. The advantages of using behavior trees in mult-robot systems[C]∥Proc.of the 47th International Symposium on Robotics, 2016.

[31] STYRUD J, IOVINO M, NORRLOF M, et al. Combining planning and learning of behavior trees for robotic assembly[C]∥Proc.of the International Conference on Robotics and Automation, 2022: 1151111517.

[32] WU R C, KORTIK S, SANTOS C H. Automated behavior tree error recovery framework for robotic systems[C]∥Proc.of the IEEE International Conference on Robotics and Automation, 2021: 68986904.

[33] CAI Z X, LI M L, HUANG W R, et al. BT expansion: a sound and complete algorithm for behavior planning of intelligent robots with behavior trees[C]∥Proc.of the AAAI Conference on Artificial Intelligence, 2021.

作者簡介

宋睿濤(2000—),男,碩士研究生,主要研究方向為意圖驅(qū)動網(wǎng)絡、服務遷移。

高先明(1988—),男,高級工程師,博士,主要研究方向為未來網(wǎng)絡體系結(jié)構(gòu)、智能路由協(xié)議、網(wǎng)絡安全。

黃姣蕊(1995—),女,博士研究生,主要研究方向為意圖驅(qū)動網(wǎng)絡、人工智能、行為樹。

楊春剛(1982—),男,教授,博士,主要研究方向為意圖驅(qū)動智簡網(wǎng)絡、智能網(wǎng)絡信息體系、軟件定義網(wǎng)絡自治、認知天地網(wǎng)絡融合、網(wǎng)絡通信博弈論。

黃 韜(1999—),男,碩士研究生,主要研究方向為意圖驅(qū)動網(wǎng)絡、應用感知網(wǎng)絡。

李芫芫(2000—),女,碩士研究生,主要研究方向為意圖驅(qū)動網(wǎng)絡、資源感知。

遵义县| 扶绥县| 铜山县| 阜宁县| 新宁县| 红原县| 南阳市| 崇信县| 淄博市| 徐州市| 津市市| 独山县| 汾西县| 桐乡市| 宁陕县| 襄垣县| 成武县| 灵川县| 苗栗市| 阿拉善右旗| 南江县| 上思县| 揭阳市| 郯城县| 海门市| 武乡县| 青川县| 灌阳县| 平顺县| 宜良县| 临泉县| 福清市| 理塘县| 赣榆县| 隆安县| 镇雄县| 布尔津县| 六安市| 安阳县| 涟源市| 子洲县|