【技术实现步骤摘要】
一种虚拟网络功能的统一监控方法
[0001]本专利技术涉及网络功能虚拟化
,尤其涉及一种虚拟网络功能的统一监控方法。
技术介绍
[0002]传统网络架构使用大量专用硬件设备,来提供负载均衡、入侵防御、网络地址转换等网络功能。随着大数据、云计算等新兴行业的迅速发展,部署新的应用往往需要新的专用设备和网络的支持,为网络运营成本和运维带来很大挑战。为应对这些问题,欧洲电信标准协会(EuropeanTelecommunication Standards Institute,ETSI)提出网络功能虚拟化(Network FunctionVirtualization,NFV)。NFV技术利用普通商用服务器为网络功能提供虚拟机、Docker容器等运行环境,用虚拟机或容器中运行的软件来替换硬件设备,提高网络功能的灵活性,降低投资成本、研发成本和运维成本。
[0003]Docker是一个虚拟环境容器,可以将开发环境、代码、配置文件等一并打包到容器中,并发布和应用到任意平台。通过对应用组件的封装、分发、部署、运行等生命周期的管理, ...
【技术保护点】
【技术特征摘要】
1.一种虚拟网络功能的统一监控方法,其特征在于包括以下步骤:第一步,构建虚拟网络功能统一监控平台;1.1构建虚拟网络功能运行平台,并部署服务功能链;构建包含一个Master节点与N个Node节点的k8s平台,VNF业务功能单元部署于对应k8s的调度基本单元Pod中,且分配了相应的CPU、内存资源;Pod属于k8s平台不同的命名空间,若未指定,Pod属于默认空间,使用“default”表示;业务流按约定的次序依次通过Pod,形成服务功能链;部署了VNF业务功能单元的Pod命名为pod_<vnf>,<vnf>为VNF业务功能单元的名称的简称,已有的7种VNF业务功能单元包括:报文过滤功能、负载均衡功能、网络地址转换功能、深度报文检测功能、入侵防御功能、协议识别功能、Web应用防护功能;若需要将pod_<vnf>加入虚拟网络功能统一监控平台,使统一监控平台采集业务指标元数据,则为pod_<vnf>增加标签“monitored”;每个Pod仅部署一个VNF业务功能相关的Docker容器,每个Pod仅属于一条服务功能链;VNF业务功能单元分为定制功能的VNF单元、标准功能的VNF单元;定制功能的VNF单元为可修改源码满足特殊需求的VNF,直接产生业务监控指标元数据;标准功能的VNF单元属于成熟的软件,日志文件中包含标准功能的VNF单元业务处理状态与过程,需要解析已有日志文件的字段,产生业务监控指标元数据;在k8s平台原有Pod管理标签基础上,为每个Pod新增2种管理标签,即:Pod所属服务功能链名称SFC,Pod所在服务功能链的位置SFCIndex;1.2构建虚拟网络功能统一监控平台:虚拟网络功能统一监控平台由监控对象发现模块、业务监控指标产生模块、性能监控指标产生模块、监控指标统一采集模块、资源集中分配模块、时序数据库组成;在k8s平台的Master节点新建一个Pod,命名为pod_dis,将监控对象发现模块、监控指标统一采集模块部署在pod_dis;监控对象发现模块与监控指标统一采集模块相连,监控对象发现模块由Node对象发现模块、Pod对象发现模块、监控对象配置文件autoDisConfig组成;autoDisConfig包括6个域,分别为:接口调用的频率scheduleInterval、k8s的配置文件的位置k8sConfigPath、Pod监控对象命名空间K8SNamespace、Pod监控对象的筛选标签monitorLabel,monitorLabel是k8s平台表示是否需要被监控的Pod的标识,若标签为“monitored”,表示需要被监控,否则不需要被监控;Node对象文件的存储位置pwd_node_targets、Pod对象文件的存储位置pwd_pod_targets;Node对象发现模块与k8s平台的应用程序接口相连,Node对象发现模块在每间隔scheduleInterval内,调用k8s的API函数listNode发现Node对象,令共发现N个Node对象,N为Node对象的总数;以Node的IP地址为文件名,为N个Node生成Node监控对象文件,令IP地址为NodeIP的Node的Node监控对象文件为<NodeIP>.yml;将N个Node监控对象文件存储于目录pwd_node_targets下;Pod对象发现模块与k8s平台的应用程序接口相连,在Node对象发现模块发现Node对象的同时,Pod对象发现模块调用k8s的API函数listNamespacedPod发现Pod对象,令共发现M个Pod对象,M为Pod对象总数,以Pod所在的SFC与Pod的IP地址为文件名,生成每个Pod的Pod监控对象文件,令IP地址为PodIP的Pod的Pod监控对象文件为<SFC+PodIP>.yml;将M个Pod监控对象文件存储于目录pwd_pod_targets下;
性能监控指标产生模块采用cAdvisor,与监控指标统一采集模块相连;性能监控指标产生模块在每个Node上新建一个Pod,命名为pod_prf_<x>,其中<x>=1,2,
…
N,每个Node上部署一个cAdvisor的Pod,即N个Node共部署N个cAdvisor;cAdvisor部署在pod_prf_<x>上,通过与Docker引擎交互获取信息,生成性能监控指标元数据供监控指标统一采集模块拉取,性能监控指标元数据包括CPU利用率、内存利用率指标的元数据;业务监控指标产生模块部署在pod_<vnf>;业务监控指标产生模块与NVF业务功能单元的restFul数据接口、监控指标统一采集模块相连;由业务指标元数据解析模块、业务指标发布模块、业务监控指标配置文件vnfConfig组成;vnfConfig包括两个域:业务指标元数据标签组tags,业务指标元数据的类型types,tags为业务指标元数据的标签的名称列表,types包括两个值:String表示标签的值为字符类型,Double表示标签的值为数值型;vnfConfig的内容根据pod_<vnf>上的VNF业务功能单元的类型配置;业务指标元数据解析模块与restFul数据接口、业务指标发布模块相连,业务指标元数据解析模块监听restFul数据接口,接收pod_<vnf>中VNF业务功能单元推送的业务监控指标元数据,对业务监控指标元数据进行解析,缓存并生成业务监控指标元数据,业务监控指标元数据包括业务运行监控指标元数据及模块运行状态,将业务监控指标元数据发送给业务指标发布模块;业务指标发布模块与业务指标元数据解析模块、监控指标统一采集模块相连,监听监控指标统一采集模块的“拉取监控指标”请求,当收到“拉取监控指标”请求时,业务指标发布模块将业务监控指标元数据发布至监控指标统一采集模块;监控指标统一采集模块与监控对象发现模块、时序数据库、业务监控指标产生模块、性能监控指标产生模块相连,采用Prometheus,部署在pod_dis;监控指标采集模块中有监控指标采集配置文件monConfig,monConfig包括4个域,分别是:采集周期scrape_interval、Node对象文件的存储位置pwd_node_targets、Pod对象文件的存储位置pwd_pod_targets、时序数据库写入地址remote_write;监控指标统一采集模块根据monConfig配置的采集周期scrape_interval,周期性地从pwd_node_targets、pwd_pod_targets目录下获得监控对象,向性能监控指标产生模块发送“拉取监控指标”请求,收集性能监控指标产生模块生成的性能监控指标元数据;同时,向业务监控指标产生模块发送“拉取监控指标”请求,收集业务监控指标元数据;为性能监控指标元数据和业务监控指标元数据增加标签,将增加标签后的性能监控指标元数据和业务监控指标元数据保存在时序数据库中;时序数据库与监控指标统一采集模块、资源集中分配模块相连,命名为“nfvMonitor”,部署于k8s平台之外的服务器上,用于存储业务监控指标元数据与性能监控指标元数据,每个指标元数据以表的形式独立存储,包括:业务监控指标产生模块状态指标表、业务运行监控指标详细表、业务功能单元CPU使用情况表、业务功能单元内存使用情况表;其中,业务监控指标产生模块状态指标表state_up,包括9个表项:时间戳即记录项生成的系统时间、CPU配置数值即系统管理员为Pod配置的CPU核数、内存配置数值即系统管理员为Pod配置的内存数量、VNF名称即VNF业务功能功能的名称、node名称即Pod部署在Node的名称、pod名称、SFC名称即Pod所属服务功能链的名称、SFC位置即Pod所属服务功能链的位置序号、监控采集模块的启动状态;业务运行监控指标详细表detail_count,包括表项:时间戳、VNF元数据集即VNF业务功能单元的配置文件vnfConfig的业务指标元数据的标签项、node名称即Pod所属Node的名称、pod名称、SFC名称、SFC位置即Pod所属服务功能链的位置序号、业务处理
计数数值即业务处理的数量;业务功能单元CPU使用情况表user_cpu,包括表项:时间戳、容器标签集即k8s平台为容器生成的系统管理标签集合、pod名称即容器所属Pod的名称、node名称、SFC名称、SFC位置、CPU使用数值即CPU使用的时间;业务功能单元内存使用情况表usage_memory,包括表项:时间戳、容器标签集即k8s平台为容器生成的系统管理标签集合、pod名称、node名称、SFC名称、SFC位置、内存使用数值即内存使用量;资源集中分配模块从state_up表获得Pod的CPU与内存分配现状;从detail_count表获得VNF业务功能单位处理业务量速率的元数据;从user_cpu与usage_memory表中得到处理当前业务时的CPU利用率与内存利用率的元数据;根据这4项指标元数据,建立“业务
‑
性能”模型,用于资源分配;资源集中分配模块与时序数据库部署在同一个服务器中,资源集中分配模块与时序数据库相连,资源集中分配模块由“业务
‑
性能”模型建立模块、资源分配方案生成模块、资源配置文件resAdmConfig组成;资源配置文件包括6个域:时序数据库URL、数据库名称dataBase、查询数据库的频率searchInterval、查询数据库的时间偏移量timeOffset、CPU警告阈值cpuTSD、内存警告阈值memTSD;“业务
‑
性能”模型建立模块与时序数据库、资源分配方案生成模块相连,按查询数据库的频率searchInterval在时序数据库URL下的dataBase中,分别从detail_count表、user_cpu表、usage_memory表,获得从当前时间往前timeOffset秒之间的数据,计算CPU利用率与内存利用率、业务处理速率;并从state_up表中获得Pod的CPU与内存分配现状;当CPU利用率超过cpuTSD或者内存利用率超过memTSD时,建立“业务
‑
性能”模型,将“业务
‑
性能”模型发送给资源分配方案生成模块;资源分配方案生成模块与“业务
‑
性能”模型建立模块相连,根据从“业务
‑
性能”模型建立模块接收的“业务
‑
性能”模型,生成Pod新的CPU与内存资源分配方案,将CPU与内存资源分配方案发送给K8S平台管理员;第二步,虚拟网络功能统一监控平台初始化,方法是:2.1配置监控对象发现模块的监控对象配置文件autoDisConfig:2.1.1将接口调用的频率scheduleInterval值设置为≥60秒;2.1.2将k8s的配置文件Config位置k8sConfigPath的值设置为文件Config的位置;2.1.3将Pod监控对象命名空间K8SNamespace的值设置为默认值“default”,支持多个命名空间设置,命名空间之间使用“,”分隔;2.1.4将Pod监控对象的筛选标签monitorLabel的值设置为“monitored”;2.1.5将Node对象文件的存储位置pwd_node_targets值设置为“/home/targets/nodes”;2.1.6将Pod对象文件的存储位置pwd_pod_targets值设置为“/home/targets/pods”;2.2配置监控指标统一采集模块的监控指标配置文件monConfig:2.2.1将pwd_node_targets值设置为“[
‘
/home/targets/nodes/*.yml
’
]”;2.2.2将pwd_pod_targets值设置为“[
‘
/home/targets/pod/*.yml
’
]”;2.2.3将remote_write配置为
“‑
url:http://<时序数据库IP地址>:<端口>/api/v1/prom/write?db=nfvMonitor”,其中,<时序数据库IP地址>为时序数据库IP地址,<端口>为时序数据库端口;2.2.4将采集周期scrape_interval值设置为≥60秒;
2.3根据pod_<vnf>上的VNF业务功能单元的类型配置业务监控指标产生模块的业务监控指标配置文件vnfConfig;2.4配置资源集中分配模块的资源配置文件resAdmConfig,方法是:2.4.1将时序数据库URL配置为"http://<时序数据IP地址>:<端口号>;2.4.2将时序数据库名称dataBase设置为“nfvMonitor”;2.4.3将查询数据库的频率searchInterval设置为≥300秒;2.4.4将查询数据库的时间偏移量timeOffset设置为≥600秒;2.4.5将CPU警告阈值cpuTSD设置为60%至80%之间;2.4.6将内存警告阈值memTSD设置为60%至80%;第三步,虚拟网络功能统一监控平台的监控对象发现模块、性能监控指标产生模块、业务监控指标产生模块、监控指标统一采集模块、资源集中分配模块并行工作,相互配合,对Pod的CPU使用情况、内存使用情况以及业务运行情况进行监控,产生监控指标元数据,根据元数据情况,补全管理标签,存入时序数据库,当出现监测域值告警,建立“业务
‑
性能”模型,生成新的资源分配方案;方法是:监控对象发现模块按第3.1步的流程生成监控对象的文件列表;同时,性能监控指标产生模块按第3.2步的流程生成性能监控指标元数据;同时,业务监控指标产生模块按第3.3步的流程生成业务监控指标元数据;同时,监控指标统一采集模块按3.4步的流程采集业务指标与性能指标存入时序数据库;同时,资源集中分配模块按3.5步的流程监测域值告警,建立模型并生成资源分配方案:3.1监控对象发现模块利用k8s的API接口获取k8s的Node与Pod对象,生成Node监控对象文件与Pod监控对象文件,并分类保存;方法是:3.1.1监控对象发现模块初始化;方法是:3.1.1.1Node对象发现模块从监控对象配置文件autoDisConfig中读取参数:scheduleIhterval、k8sConfigPath、K8SNamespace、monitorLabel、pwd_node_targets、pwd_pod_targets;3.1.1.2Node对象发现模块初始化Node对象控制列表nodeTargets为空,令列表长度为nodeListLen,nodeTargets的每一项是一个“键
‑
值”结构,其中“键”为Node的IP地址,“值”为三个标志字符:“I”表示初始化、“E”表示已存在、“A”表示待新增;3.1.1.3Pod对象发现模块初始化Pod对象控制列表podTargets为空,令列表长度为podListLen,podTargets的每一项是一个“键
‑
值”结构,其中“键”为Pod所属服务功能链名称与Pod的IP地址的字符串拼接,“值”的内容与nodeTargets一样,也为三个标志字符:“I”表示初始化、“E”表示已存在、“A”表示待新增;3.1.2Node对象发现模块记录开始时间t1=系统时间;3.1.3Node对象发现模块更新nodeTargets;方法是:3.1.3.1判断nodeTargets是否包含“键
‑
值”对,若包含,转3.1.3.2,否则转3.1.3.3;3.1.3.2将nodeTargets所有“键”的“值”置为“I”;3.1.3.3调用k8s的API中的listNode函数得到Node对象列表nodeList,nodeList列表中有nodeListLen个表项,其中第x个表项用nodeListItem[x]表示,1≤x≤nodeListLen,nodeListItem[x]的内容为第x个Node的IP地址;3.1.3.4令nodeList序号x=1;
3.1.3.5从nodeList获得nodeList的第x项nodeListItem[x],若nodeListItem[x]已存在于nodeTargets的“键”中,则将nodeTargets的“键”nodeListItem[x]的“值”置“E”,转3.1.3.6;否则以nodeListItem[x]为新“键”增加到nodeTargets,将“键”nodeListItem[x]的“值”置“A”,转3.1.3.6;3.1.3.6若x<nodeListLen,令x=x+1,转3.1.3.5;否则,转3.1.4;3.1.4 Pod对象发现模块更新podTargets变量;方法是:3.1.4.1若podTargets已包含“键
‑
值”对,转3.1.4.2;否则,转3.1.4.3;3.1.4.2将podTargets所有“键”的“值”置为“I”;3.1.4.3调用k8s的API中的listNamespacedPod函数得到Pod对象列表podList,podList列表中有podListLen个表项,其中第y个表项用podListItem[y]表示,1≤y≤podListLen,podListItem[y]是一个结构体,包括域:Pod所在的SFC名称SFC、Pod所属SFC的位置、Pod所在Node的名称、Pod的IP地址ipAddr以及Pod分配的CPU核数、Pod分配的内存大小;3.1.4.4令podList序号y=1;3.1.4.5从podList获得podList的第y项podListItem[y],若podListItem[y]的SFC域与ipAddr域拼接组成的字符串已存在于podTargets的“键”中,则将podTTargets的“键”podListItem[y]对应的“值”置“E”,转3.1.4.6;否则以podListItem[y]的SFC域+ipAddr域为新“键”增加到podTargets,“键”podLisstItem[y]的“值”置“A”,转3.1.4.6;3.1.4.6若y<podListLen,令y=y+1,转3.1.4.5;否则,转3.1.5;3.1.5Node对象发现模块新建或删除Node监控对象文件,方法是:3.1.5.1令nodetargets序号m=1;3.1.5.2从nodeTargets获得nodeTargets的第m项nodeTargetItem[m],1≤m≤nodeTargetLen,nodeTargetLen为nodeTarget列表的长度;3.1.5.3若nodeTargetItem[m]的“值”为”A”,新建node对象监控文件,其文件名为<nodeTargetItem[m]>.yml,保存在目录pwd_node_targets下,文件内容包括:“targets:nodeTargetItem[m]”targets为监控指标统一采集模块中采集对象的标签,nodeTargetItem[m]为第m个Node的IP地址,转3.1.5.4;若nodeTargetItem[m]的“值”为”I”,在目录pwd_node_targets下删除文件<nodeTargetItem[m]>.yml,同时删除nodeTargets中的nodeTargetItem[m],转3.1.5.4;若nodeTargetItem[m]的“值”为”E”,保留该文件,转3.1.5.4;3.1.5.4若m<nodeTargetLen,令m=m+1,转3.1.5.2;否则,转3.1.6;3.1.6Pod对象发现模块新建或删除Pod监控对象文件,方法是:3.1.6.1令podtargets序号n=1;3.1.6.2从podTargets获得podTargets的第n项podTargetsItem[n],1≤n≤podTargetLen,podTargetsLen为podTargets列表的长度;3.1.6.3若podTargetsItem[n]的“值”为”A”,新建pod监控对象文件,其文件名为<podTargetsItem[n]>.yml,保存在目录pwd_pod_targets;文件内容包括管理标签:“targets:Pod的IP地址,node:Node的名称,pod:Pod的名称,sfc:SFC的名称,sfcIndex:SFC位置,CPU:CPU的核数,Mem:内存大小”,转3.1.6.4;若podTargetsItem[n]的“值”为“I”,删
除文件<podTargetsItem[n]>.yml,同时删除podTargets中的podTargetsItem[n],转3.1.6.4;若podTargetItem[n]的“值”为”E”,保留该文件,转3.6.1.4;3.1.6.4若n<podTargetLen,令n=n+1,转3.1.6.2;否则,转3.1.7;3.1.7node对象发现模块读取系统时间,令t2=系统时间,若t2
‑
t1≥scheduleInterval,转3.1.2;否则,转3.1.7;3.2性能监控指标产生模块定期读取Node主机上相关的文件,以每个Docker为对象,统计Docker容器CPU占用时间与内存使用量,生成性能监控指标元数据,供监控指标统一采集模块拉取;3.3业务监控指标产生模块接收pod_<vnf>中VNF业务功能单元推送的业务监控指标元数据字符串,解析、缓存并汇总统计,生成业务运行状态监控指标与模块运行状态指标的元数据;方法是:3.3.1业务指标元数据解析模块读取业务监控指标配置文件vnfConfig,获得tags与types,令tagsLen为tags的长度,types的长度与tags相同,初始化监控指标元数据的映射列表metaDataMap,metaDataMap的长度同样为tagsLen,metaDataMap的每一项是“键
‑
值”结构,其中“键”为元数据标签vnfTag,“值”为元数据类型;3.3.2初始化业务监控指标缓冲区变量vnf_buffer_count为空,该变量是“键
‑
值”结构,其中“键”为业务监控指标元数据组合的字符串vnfTagContest,“值”包括两个域:业务监控指标统计值count、系统时间戳timestamp;同时,将业务指标元数据解析模块的状态变量restful_up置1,表示业务指标元数据解析模块处于工作状态,正等待业务功能单元推送数据;3.3.3业务指标元数据解析模块监听是否从VNF业务功能单元接收到业务监控指标元数据字符串,若接收到,转步骤3.3.4;若未接收到,转3.3.7;3.3.4业务指标元数据解析模块解析业务监控指标元数据字符串,方法是:3.3.4.1从restFul数据端口接收VNF业务功能单元推送的业务监控指标元数据字符串,即元数据列表json,其长度为jsonLen;3.3.4.2初始化监控指标元数据列表metaData为空,其中,metaData的每一项是“键
‑
值”结构,“键”为元数据标签vnfTag,“值”为元数据内容,metaDataLen为metaData列表长度;3.3.4.3令json序号q=1;3.3.4.4提取json的第q项json[q],json[q]是一个“键
‑
值”结构,其中“键”为业务监控指标元数据的标签,“值”为业务监控指标元数据的内容,若json[q]在metaDataMap中的“值”为“String”,将json[q]加入metaData,转3.3.4.6;3.3.4.5若json[q]在metaDataMap中的“值”为“Double”,“Double”表示标签的内容为数值,不作为元数据的管理标签,直接转3.3.4.6;3.3.4.6若q<jsonLen,令q=q+1,转3.3.4.4,否则转3.3.5;3.3.5业务指标元数据解析模块将业务监控指标元数据缓冲到业务监控指标缓冲区变量vnf_buffer_count中;3.3.6业务指标发布模块监听是否收到监控指标统一采集模块发送的“拉取监控指标请求”,若接收到,转步骤3.3.7;若未接收到,转步骤3.3.3;
3.3.7业务指标发布模块调用Prometheus的API接口的MetricFamilySamples函数,将变量restful_up转换为业务监控指标产生模块状态指标,向监控指标统一采集模块发布,该指标包括标签:VNF名称,指标值为1,指标名称为state_up;指标标签与指标值组成模块的状态指标的元数据;3.3.8业务指标发布模块判断vnf_buffer_count是否空,若不为空,转步骤3.3.9;否则,转步骤3.3.3;3.3.9业务指标发布模块调用Prometheus的API接口的MetricFamilySamples函数,将变量vnf_buffer_count转换为业务监控指标,向监控指标统一采集模块发布,该指标包括标签:vnfTagContest,指标值:业务处理计数数值,指标名称为detail_count;指标标签与指标值组成业务监控指标元数据;3.3.10业务指标发布模块清空业务监控指标缓冲区vnf_buffer_count,转步骤3.3.3;3.4监控指标统一采集模块按以下流程采集监控指标:3.4.1读取第3.1步生成的Node监控对象文件,若Node监控对象文件存在,转3.4.2;若Node监控对象文件不存在,转3.4.3;3.4.2依次读取N个Node监控对象文件的targets域,向这N个IP地址分别发送“拉取监控指标”请求,从性能监控指标产生模块收集3.2步产生的性能监控指标元数据,并将性能监控指标元数据写入时序数据库,转3.4.4。3.4.3等待scrape_interval秒后,转3.4.1;3.4.4读取第3.1步生成的Pod监控对象文件,若Pod监控对象文件存在,转3.4.5;若Pod监控对象文件不存在,转3.4.1;3.4.5依次读取M个Pod监控对象文件的targets域,向这M个IP地址分别发出“拉取监控指标”请求,从业务监控指标产生模块收集第3.3步生成的业务运行监控指标元数据与模块运行状态指标元数据,转3.4.6;3.4.6将Pod监控对象文件中的管理标签补全到模块运行状态指标元数据中,并将增加标签的标志运行状态监控指标元数据写入时序数据库,转3.4.7。3.4.7若业务监控指标元数据不为空,将Pod监控对象文件中的管理标签补全到业务监控指标元数据中,并将增加标签的业务监控指标元数据据写入时序数据库,转3.4.1;否则,直接转3.4.1。3.5资源集中分配模块从时序数据库获取监控指标元数据,当CPU利用率或内存利用率超过用户设定的阈值时,建立“业务
‑
性能”模型,动态生成资源分配方案,方法是:3.5.1资源集中分配模块初始化,方法是:3.5.1.1“业务
‑
性能”模型建立模块从资源配置文件resAdmConfig读取参数:URL、dataBase、searchInterval、timeOffset、cpuTSD、memTSD;3.5.1.2“业务
‑
性能”模型建立模块调用influxDB的API接口的connect函数建立数据库连接;3.5.2“业务
‑
性能”模型建立模块记录当前系统时间t3,并初始化资源分配方案、业务监控指标指示变量、性能监控指标指示变量三个控制变量,方法是:3.5.2.1初始化资源分配方案resDis为空,resDis是一个“键
‑
值”列表,每项是一个“键
‑
值”结构,表示Pod的资源配置,其中“键”包括两个域:SFC的名称与Pod的名称,“值”包
括两个域:CPU的核数与内存Mem大小;3.5.2.2初始化业务运行监控指标指示变量vnfIndex为空,vnfIndex是一个“键
‑
值”列表,每项是一个“键
‑
值”结构,其中“键”包括两个域:SFC的名称与Pod的名称,“值”为VNF功能处理业务的速率;3.5.2.3初始化性能监控指标指示变量perfIndex为空,perfIndex是一个“键
‑
值”列表,每项是一个“键
‑
值”结构,其中“键”包括三个域:SFC的名称、Pod的名称、SFC的位置,“值”包括两个域:VNF业务功能单元的CPU利用率与内存Mem利用率;3.5.3“业务
‑
...
【专利技术属性】
技术研发人员:周聪,时向泉,陶静,原玉磊,赵宝康,赵锋,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。