一种VNF包以及其引用的镜像文件删除方法和设备
技术领域
本发明涉及通信技术/计算机技术,具体涉及一种VNF包以及其引用的镜像文件删除方法和设备。
背景技术
随着通信技术和云计算技术的发展,NFV技术开始出现并不断发展完善。作为其管理和调度系统的NFVO,直接面对用户的各种业务需求,通过人机交互操作,实现对各种虚拟资源和虚拟化网元VNF的调度协调。
NFV(Network Function Virtualization,网络功能虚拟化)由全球13个主要电信运营商发起,是众多设备商、IT(Information Technology,信息技术)厂商等参与的组织,旨在定义运营商网络功能虚拟化的需求和相关的技术报告,希望借鉴IT的虚拟化技术,利用通用的高性能大容量服务器、交换机和存储来实现部分网络功能的软件化。例如,各种类型的网络设备,如服务器、路由器、存储设备CDN(Content Delivery Network,内容分发网络)、交换机等,都可以通过NFV技术实现软硬件分离,它们可以部署在数据中心、网络节点或者用户家中等。
Virtualised Network Function Package(VNF Package,虚拟化的网络功能模块包):包括对于虚拟化的网络功能模块描述符、与虚拟化的网络功能模块相关的软件镜像/映像、一些额外事项,与虚拟化的网络功能模块相关的软件镜像/映像。对于任一个VNFpackage来说,很多的用户设备都可以直接使用。
VNF包和镜像(指虚拟化的网络功能模块相关的软件镜像/映像),是形成虚拟网元构建NFV网络的前提和基础。对VNF包的删除,是对VNF包管理的一个重要业务场景。通常的对VNF包的删除,也需要删除其引用的镜像文件,但现有技术中二者通常是分开来处理的,而且随着NFV网络功能的增加和扩展,一个VNF包通常会引用多个镜像文件,这样就会给操作人员带来很大的麻烦,而且处理过程都包含着很复杂的判断逻辑,很容易造成镜像文件的误删和漏删。
即现有技术中存在,VNF包和镜像文件以及镜像文件产生的镜像实例之间关系复杂,在删除VNF包时很容易造成镜像文件等的误删和漏删。
发明内容
鉴于上述问题,本发明提出了克服上述问题或者至少部分地解决上述问题的一种VNF包以及其引用的镜像文件删除方法和设备。
为此目的,第一方面,本发明提出一种VNF包以及其引用的镜像文件删除方法,S101、根据第一标识VNFP_id所对应的VNF包名称,查找内容中包含该VNF包名称的镜像文件记录B;
S102、若镜像文件记录B不为空,则在数据库中,从镜像文件记录B的内容中删除该VNF包名称;
S103、查询数据库获得未被任一VNF包引用的镜像文件M,查询数据库中镜像文件M是否已被实例化,若已实例化,则根据镜像文件M的第二标识Imgae_file_id查询其实例化的镜像N,删除实例化的镜像N,以及删除实例化的镜像N在数据库的对应记录;
S104、查询数据库获得镜像文件M的地址,根据镜像文件M的地址删除镜像文件M,以及删除镜像文件M在数据库中对应的记录。
可选的,在步骤根据第一标识VNFP_id所对应的VNF包名称,查找内容中包含该VNF包名称的镜像文件记录B之前,还包括:
接收删除指令,删除指令中包含指示待删除的VNF包的第一标识VNFP_id;
根据第一标识VNFP_id查询对应VNF包的状态;
若VNF包的状态为Disable,则根据第一标识VNFP_id是查找对应的VNFD记录A;
根据VNFD记录A确认第一标识VNFP_id对应的VNF是否已实例化;
若第一标识VNFP_id对应的VNF包未被实例化,则根据第一标识VNFP_id查询对应VNF包的地址;
删除VNF包的地址所指示的VNF包。
可选的,所述步骤查询数据库获得未被任一VNF包引用的镜像文件M,查询数据库中镜像文件M是否已被实例化,包括:
查询镜像文件信息表,获得镜像文件M的已下发的VIM名称列表字段,若该字段的值不为空,表示该条记录对应的镜像文件已实例化;
所述步骤根据镜像文件M的第二标识Imgae_file_id查询其实例化的镜像N,删除实例化的镜像N,包括:
查询镜像信息表,获得关联镜像字段值为第二标识Imgae_file_id的记录C,记录C即是实例化的镜像N所对应的记录;根据记录C中指示镜像在VIM中的URI字段的值,删除实例化的镜像N。
可选的,所述删除实例化的镜像N在数据库的对应记录,包括:
删除实例化的镜像N在数据库的镜像信息表中的记录;
所述删除镜像文件M在数据库中对应的记录,包括:
删除镜像文件M在数据库中镜像文件信息表中的记录。
可选的,在所述删除镜像文件M在数据库中对应的记录之后,还包括:
显示对镜像文件M和/或实例化的镜像N的删除操作结果。
可选的,在所述删除镜像文件M在数据库中对应的记录之后,还包括:
删除第一标识VNFP_id所对应的VNF包的VNFD记录。
第二方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一所述方法的步骤。
第三方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上执行的计算机程序,所述处理器执行所述程序时实现如上任一所述方法的步骤。
由上述技术方案可知,本发明的本发明通过设计一系列的逻辑判断和处理步骤,实现了操作员在删除VNF包的同时,系统可自动将其引用的所有镜像文件一并删除,极大简化了人工操作过程,提升了处理效率,且可以减少过程中各种人工判断和操作上的失误。
前面是提供对本发明一些方面的理解的简要发明内容。这个部分既不是本发明及其各种实施例的详尽表述也不是穷举的表述。它既不用于识别本发明的重要或关键特征也不限定本发明的范围,而是以一种简化形式给出本发明的所选原理,作为对下面给出的更具体的描述的简介。应当理解,单独地或者组合地利用上面阐述或下面具体描述的一个或多个特征,本发明的其它实施例也是可能的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一个实施例中执行方法流程示意图。
具体实施方式
下面将结合示例性的通信系统描述本发明。
本文以包含下列表结构的数据库为例,说明本申请的是如何获取对应数据的,但是本领域技术人员应知,目标数据也可以是其他表结构或是存于不同的数据库中,其也能实现等同的效果。
在本发明的一个实施例中,数据库中包含表1-表4,其中,表1为一种可能的用于记录VNF包信息的表结构,表2为一种可能的用于记录VNFD信息的表结构,表3为一种可能的用于记录镜像文件信息的表结构;表4为一种可能的用于记录镜像实例信息的表结构。
在实施例中,为了描述方便,例如采用VNF.Int_ID表示表1的Int_ID字段或该字段的值,Image_File.Vendor表示镜像文件的供应商字段或该字段的值。
表1、VNF包信息表
属性中文名 |
属性英文名 |
字段类型 |
系统唯一标识 |
Int_ID |
整型 |
VNF包名称 |
Name |
字符串 |
创建时间 |
Created_At |
时间型 |
是否包含镜像文件 |
Is_Image |
布尔型 |
VNF包URL |
URL_Address |
字符串 |
状态 |
Status |
枚举 |
表2、VNFD信息表
属性中文名 |
属性英文名 |
字段类型 |
系统唯一标识 |
Int_ID |
整型 |
网元标识 |
Product |
字符串 |
VNFD文件名称 |
Name |
字符串 |
提供商 |
Vendor |
字符串 |
网元版本 |
Version |
字符串 |
软件版本 |
VNF_Version |
字符串 |
所在的VNF包 |
VNF_Package_ID |
整型 |
VNF专有扩展参数 |
Extension |
字符串 |
引用的镜像文件名称 |
Ref_Image_File_Name |
字符串 |
引用的镜像文件URL |
Ref_Image_File_Url |
字符串 |
表3、Image_File信息表
表4、Image_Instance信息表
属性中文名 |
属性英文名 |
字段类型 |
系统唯一标识 |
Int_ID |
整型 |
名称 |
Name |
字符串 |
关联的镜像文件 |
Image_File_ID |
整型 |
所属VIM |
VIM_ID |
整型 |
镜像在VIM中的ID |
Image_Instance_ID |
字符串 |
镜像状态 |
Status |
枚举 |
创建时间 |
Created_At |
时间型 |
更新时间 |
Updated_At |
时间型 |
镜像大小(M) |
Image_Size |
数字 |
镜像在VIM中的URI |
Self |
字符串 |
表5 VNFR信息表
VNF.Status(状态),表明VNF package的当前状态,该参数的取值例如可以包括enabled(激活)和disabled(未激活)。如果该参数取值为enabled,表明该VNF package可以被使用,该VNF package的记录信息中的参数可以被修改,如果该参数取值为disabled,表明该VNFpackage不能被使用,该VNFpackage的记录信息中的参数也不能被修改。镜像实例存在于VIM中,其是根据镜像文件产生的,本文中镜像实例也称为镜像。
为此目的,本发明提出一种VNF包以及其引用的镜像文件删除方法,包括步骤:
S101、根据第一标识VNFP_id所对应的VNF包名称,查找内容中包含该VNF包名称的镜像文件记录B;
S102、若镜像文件记录B不为空,则在数据库中,从镜像文件记录B的内容中删除该VNF包名称;
S103、查询数据库获得未被任一VNF包引用的镜像文件M,查询数据库中镜像文件M是否已被实例化,若已实例化,则根据镜像文件M的第二标识Imgae_file_id查询其实例化的镜像N,删除实例化的镜像N,以及删除实例化的镜像N在数据库的对应记录;
S104、查询数据库获得镜像文件M的地址,根据镜像文件M的地址删除镜像文件M,以及删除镜像文件M在数据库中对应的记录。
镜像文件M可以是代指多个镜像文件而不是一个,同理实例化的镜像N也一样可以是代指多个镜像文件而不是一个。
步骤S101包括根据第一标识VNFP_id,在数据库中查找VNF包信息表中VNF.Int_ID的值等于第一标识VNFP_id的记录,该记录的VNF.Name的值即第一标识VNFP_id所对应的VNF包名称。S101即select VNF.Name from table VNF where VNF.Int_ID=VNFP_id。
在本发明的一个实施例中,可以通过下列方法,获VNF包关联的镜像文件:查找VNFD信息表中,VNFD.VNF_Package_ID等于VNFP_id的记录,在查找的结果中,获得VNFD.Ref_Image_File_Name的值,该值即VNFP_id对应的VNF包所引用的镜像文件的Image_file.Int_ID的集合。根据获得的VNFD.Ref_Image_File_Name值查询Image_File信息表,获得与上述VNF包相关的镜像文件的记录。并将该记录对应的Image_File.Vnf_Package_Name字段更新,即在该记录的Image_File.Vnf_Package_Name字段中删除上述VNF包名称,该值指示该记录对应的镜像文件未被所述VNF包引用。
在本发明的一个实施例中,若VNF包名称在NVFO中是唯一的,还可以通过下列方法获得VNF包关联的镜像文件:根据查找获得的VNF包名称,查找Image_File信息表,获得Image_File.Vnf_Package_Name包含述VNF包名称的记录,并将该记录对应的Image_File.Vnf_Package_Name中删除该VNF包名称,或置为其他值,该值指示该记录对应的镜像文件未被所述VNF包引用。即S102即包括数据库执行update table Image_File setImage_File.Vnf_Package_Name=“”where Image_File.Vnf_Package_Name like VNF包名称;
结合具有上述数据库表结构的实施例,说明步骤S103:所述步骤查询数据库获得未被任一VNF包引用的镜像文件M,包括查询Image_File信息表,获得Image_File.Vnf_Package_Name的值指示该镜像文件未被任一VNF包引用的记录。若Image_File.Vnf_Package_Name的值不为空,则说明镜像文件还在被其他VNF包所引用,不能删除。该记录即镜像文件记录B。即S102还包括数据库执行select(Image_File.Int_ID,Image_File.VIM_Name,Image_File.Image_File_Ref)from table Image_File where Image_File.Vnf_Package_Name like“”,该语句获得镜像文件记录B;
判断镜像文件记录B对应的镜像文件M是否已被实例化可以通过查找VNFD信息表中,与VNFP_id对应的VNFD记录,根据该记录查询VNFR信息表,若查询结果不为空,则该VNFP_id对应的VNF包以被实例化。
若镜像文件记录B的Image_File.VIM_Name的值不为空,根据镜像文件记录B查找Image_Instance信息表,即查询Image_Instance信息表中,Image_Instance.Image_File_ID等于镜像文件记录B的Image_File.Int_ID值的记录,获得的记录是对应实例化的镜像N的记录,根据获得的记录的Image_instance.Self的值调用NFVO相关接口到VIM中删除这些指定镜像。
在确定镜像文件记录B的Image_File.VIM_Name为空,或镜像文件记录B的Image_File.VIM_Name不为空,但已删除了对应的VIM中的镜像实例和镜像实例的对应的记录后,则根据镜像文件记录B的Image_File.Image_File_Ref值删除对应的VNF包内或NVF包外的镜像文件。镜像文件记录B的Image_File.Int_ID即上述第二标识Imgae_file_id。
最后根据VNF包信息表找到第一标识VNFP_id对应的VNF包的URL地址,从而根据该地址删除VNF包,可以理解的是根据S101已可以获得VNF包的地址,本领域技术人员可以在S101之后的任一步骤中删除。
本发明通过设计一系列的逻辑判断和处理步骤,实现了操作员在删除VNF包的同时,系统可自动将其引用的所有镜像文件一并删除,极大简化了人工操作过程,提升了处理效率,且可以减少过程中各种人工判断和操作上的失误。
上述的第一标识VNFP_id是在接收删除指令后获得的,删除指令中包含指示待删除的VNF包的第一标识VNFP_id;
在接受到删除指令之后,或在查询VNF包状态为Disable之后,还根据VNFD记录A确认第一标识VNFP_id对应的VNF是否已实例化;
若第一标识VNFP_id对应的VNF包未被实例化,则根据第一标识VNFP_id查询对应VNF包的地址;
删除VNF包的地址所指示的VNF包。
所述第一标识VNFP_id对应的VNF是否已实例化;包括:查询获得VNFD表中VNFD.VNF_Package_ID=VNFP_id的记录,以及根据VNFD.id到VNFR表的记录。若能找到记录则该VNFP_id对应的VNF是已实例化,此时不允许删除该VNF包。
可以理解的是判断VNF包状态为Disable和判断VNF包是否已被实例化是可以同时执行,或者分步顺序执行,但是执行顺序并不影响是否删除VNF包的结果,即只有在同时满足VNF包状态为Disable和VNF包未被实例化时,才执行删除VNF包的操作。
在本发明的一些实施例中,在所述删除实例化的镜像N在数据库的对应记录,包括:
删除实例化的镜像N在数据库的镜像信息表中的记录,即删除镜像文件信息表中Image_Instance.Int_ID与镜像文件N相同的记录;
所述删除镜像文件M在数据库中对应的记录,包括:
删除镜像文件M在数据库中镜像文件信息表中的对应的记录,即删除镜像文件信息表中Image_File.Int_ID与镜像文件M相同的记录。
在所述删除镜像文件M在数据库中对应的记录之后,还包括:
显示对镜像文件M和/或实例化的镜像N的删除操作结果。以方便用户核对信息。
在所述删除镜像文件M在数据库中对应的记录之后,还包括:
删除第一标识VNFP_id所对应的VNF包的在VNF信息表和VNFD信息表中的记录。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一所述方法的步骤。
本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上执行的计算机程序,所述处理器执行所述程序时实现如上任一所述方法的步骤。
本文中使用的“至少一个”、“一个或多个”以及“和/或”是开放式的表述,在使用时可以是联合的和分离的。例如,“A、B和C中的至少一个”,“A、B或C中的至少一个”,“A、B和C中的一个或多个”以及“A、B或C中的一个或多个”指仅有A、仅有B、仅有C、A和B一起、A和C一起、B和C一起或A、B和C一起。
术语“一个”实体是指一个或多个所述实体。由此术语“一个”、“一个或多个”和“至少一个”在本文中是可以互换使用的。还应注意到术语“包括”、“包含”和“具有”也是可以互换使用的。
本文中使用的术语“自动的”及其变型是指在执行处理或操作时没有实质的人为输入的情况下完成的任何处理或操作。然而,即使在执行处理或操作时使用了执行所述处理或操作前接收到的实质的或非实质的人为输入,所述处理或操作也可以是自动的。如果输入影响所述处理或操作将怎样进行,则视该人为输入是实质的。不影响所述处理或操作进行的人为输入不视为是实质的。
本文中使用的术语“计算机可读介质”是指参与将指令提供给处理器执行的任何有形存储设备和/或传输介质。计算机可读介质可以是在IP网络上的网络传输(如SOAP)中编码的串行指令集。这样的介质可以采取很多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如NVRAM或者磁或光盘。易失性介质包括诸如主存储器的动态存储器(如RAM)。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带或任何其它磁介质、磁光介质、CD-ROM、任何其它光介质、穿孔卡、纸带、任何其它具有孔形图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、诸如存储卡的固态介质、任何其它存储芯片或磁带盒、后面描述的载波、或计算机可以读取的任何其它介质。电子邮件的数字文件附件或其它自含信息档案或档案集被认为是相当于有形存储介质的分发介质。当计算机可读介质被配置为数据库时,应该理解该数据库可以是任何类型的数据库,例如关系数据库、层级数据库、面向对象的数据库等等。相应地,认为本发明包括有形存储介质或分发介质和现有技术公知的等同物以及未来开发的介质,在这些介质中存储本发明的软件实施。
本文中使用的术语“确定”、“运算”和“计算”及其变型可以互换使用,并且包括任何类型的方法、处理、数学运算或技术。
本文中使用的术语“模块”或“工具”是指任何已知的或以后发展的硬件、软件、固件、人工智能、模糊逻辑或能够执行与该元件相关的功能的硬件和软件的组合。另外,虽然用示例性实施方式来描述本发明,但应当理解本发明的各方面可以单独要求保护。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。