基于Openstack的NFV系统中部署VNF的方法和装置
技术领域
本申请涉及通信技术领域,特别是涉及一种基于Openstack的NFV系统中部署VNF的方法和装置。
背景技术
随着通信技术的发展以及数据业务流量的爆炸式增长,为满足提高网络资源利用效率、提升网络与业务部署速度等的新需求,NFV(Network Function Virtualization,网络功能虚拟化)应运而生,NFV用于通过改进行业标准的服务器、存储和网络设备,取代私有专用的网元设备。NFV架构具有标准设备成本低廉,能节省巨大的投资成本,以及开放API(Application Programming Interface,应用程序编程接口),能获得更灵活的网络能力等明显优点。
在NFV系统中,VNF(Virtual Network Function,虚拟网络功能)表示完成一种网络功能的实体。完成不同功能、不同用途的VNF的内部组成结构差异较大。VNF的部署难以一步到位,需要考虑VNF内部的业务、逻辑结构和版本等差异来分步执行,而且每次部署同样的VNF几乎需重复所有的部署操作,无法复用,操作维护难度大。
为降低成本,大多数厂家采用原生Openstack构建NFV系统。基于原生Openstack构建的NFV系统部署VNF的成本低。主流的NFV方案中均通过增加NFVO(NFV Orchestrator,NFV编排器)和VNFM(VNF Manager,VNF管理器)来管理VNF的生命周期。然而,在实现过程中,发明人发现传统NFV方案至少存在着VNF部署效率较低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种基于Openstack的NFV系统中部署VNF的方法、一种基于Openstack的NFV系统中部署VNF的装置、一种计算机设备和一种计算机可读存储介质。
为实现上述目的,本发明实施例采用以下技术方案:
一方面,本发明实施例提供一种基于Openstack的NFV系统中部署VNF的方法,包括:
获取待部署的VNF的镜像文件和应用软件包;
根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板;编排模板包括VNF的配置信息、网络资源信息和虚拟机子模板;
调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机;
在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包,并执行上电操作;
在虚拟机初始化工具完成上电操作后,重启虚拟机。
在其中一个实施例中,调用基于Openstack的NFV系统提供的编排模块的步骤,包括:
调用编排模块,并在编排模块根据编排模板,依次创建配置资源、网络资源和虚拟机的过程中,若当前创建的资源不满足设定条件,则指示编排模块对不满足设定条件的资源进行重建,直至资源满足设定条件后,指示编排模块开始下一资源的创建。
在其中一个实施例中,在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具的步骤前,还包括:
若编排模块对不满足设定条件的资源进行重建的次数超过预设次数,则退出编排流程并进行编排错误提醒。
在其中一个实施例中,获取待部署的VNF的镜像文件的过程,包括:
获取NFV系统的镜像制作服务器对应于VNF的运行环境信息生成的镜像文件;其中,镜像文件包括VNF的操作系统和虚拟机初始化工具。
在其中一个实施例中,获取待部署的VNF的应用软件包的过程,包括:
将预设的应用软件包上传至NFV系统的软件包管理服务器,并指示软件包管理服务器记录应用软件包的地址信息,得到待部署的VNF的应用软件包。
在其中一个实施例中,根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板的步骤,包括:
根据VNF的类型信息,定义VNF的网元模块的配置信息;
根据VNF的网络拓扑信息,定义网元模块的网络资源信息;网络资源信息包括网元模块间的网络类型信息、子网信息和端口信息,网元模块与NFV系统的管理网络连通;
为网元模块对应的虚拟机选定相应的配置信息、网络资源信息和镜像文件,定义网元模块对应的虚拟机子模板;
获取应用软件包的地址信息和虚拟机的上电脚本,确定虚拟机子模板的元数据,生成编排模板。
在其中一个实施例中,上述方法,还包括:
将应用软件包对应的VNF应用的启动日志记录到日志系统;启动日志为虚拟机启动后加载VNF应用时得到的日志记录;
在VNF应用启动完成后,运行预设检查脚本,周期性获取VNF应用的运行状态信息。
另一方面,还提供一种基于Openstack的NFV系统中部署VNF的装置,包括:
获取模块,用于获取待部署的VNF的镜像文件和应用软件包;
模板创建模块,用于根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板;编排模板包括VNF的配置信息、网络资源信息和虚拟机子模板;
编排调用模块,用于调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机;
初始化调用模块,用于在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包和执行上电操作;
重启处理模块,用于在虚拟机初始化工具完成上电操作后,重启虚拟机。
又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的基于Openstack的NFV系统中部署VNF的方法的步骤。
再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的基于Openstack的NFV系统中部署VNF的方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
上述基于Openstack的NFV系统中部署VNF的方法,通过在基于Openstack的NFV系统上设计编排模板后,采用NFV系统提供的编排模块进行模块编排,配合虚拟机初始化工具的运用,共同实现VNF自动部署,无需额外引入NFVO和VNFM来管理VNF的生命周期,降低技术门槛且减少VNF部署的成本投入,大大提高了VNF部署效率。
附图说明
图1为一个实施例中基于Openstack的NFV系统中部署VNF的方法的应用环境示意图;
图2为一个实施例中基于Openstack的NFV系统中部署VNF的方法的第一流程示意图;
图3为一个实施例中基于Openstack的NFV系统中部署VNF的方法的第二流程示意图;
图4为一个实施例中镜像文件及应用软件包的获取流程示意图;
图5为一个实施例中编排模板的创建流程示意图;
图6为一个实施例中编排模板的具体创建过程示意图;
图7为一个实施例中编排及虚拟机部署的流程示意图;
图8为一个实施例中基于Openstack的NFV系统中部署VNF的装置的模块结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体地实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本申请提供的基于Openstack的NFV系统中部署VNF的方法,可以应用于如图1所示的应用环境中。其中,终端102可以是台式电脑或平板电脑,也可以是其他类型智能终端。终端102在基于Openstack的NFV系统中部署VNF时,可以通过但不限于运维人员手动输入、预先配置、联网加载或者从计算机可读存储介质上拷贝等方式,获取待部署的VNF的镜像文件和应用软件包。终端102可以通过但不限于运维人员预先设定或者从第三方数据库查询等方式,获得所需的VNF的类型信息和网络拓扑信息等信息。终端102可以根据前述VNF的类型信息、网络拓扑信息、镜像文件和应用软件包的地址信息,为待部署的VNF定义其部署及运行时所需的配置资源、网络资源和虚拟机子模板,完成编排模板的创建。终端102创建对应于VNF的编排模板后,即可调用基于Openstack的NFV系统提供的编排模块,以便在为编排模块选择前述创建的编排模板后,使得编排模块自动开启编排流程,依次完成VNF的配置资源、网络资源和虚拟机等资源的创建。在虚拟机最后创建成功后,虚拟机将会自行启动,这时,终端102运行前述镜像文件中安装有的虚拟机初始化工具(例如cloud-init,专为云环境中虚拟机的初始化而开发的工具,可从各种数据源读取相关数据并据此对虚拟机进行配置),以便虚拟机初始化工具根据前述应用软件包的地址信息,完成虚拟机对应的应用软件包的下载以及执行上电操作,以配置虚拟机和执行应用软件包所对应的VNF应用安装。在虚拟机初始化工具完成上电操作后,终端102控制虚拟机重启,以使虚拟机启动后自动加载VNF应用完成VNF的部署。
在一个实施例中,如图2所示,提供了一种基于Openstack的NFV系统中部署VNF的方法,可以但不限于应用于如图1所示的应用环境中,前述方法包括如下步骤:
S12,获取待部署的VNF的镜像文件和应用软件包。
其中,待部署的VNF可以是但不限于虚拟化的核心网、虚拟化的基站或者其他虚拟化的网络设备、通信设备。VNF的镜像文件为运行环境安装文件,用于为VNF的应用软件包所对应的VNF应用提供运行环境。VNF的镜像文件中可以包含VNF应用运行所需的基础操作系统和必备的软件工具。不同VNF在不同运行环境下,可以选择部署不同的操作系统类型和版本,例如但不限于Centos7.4操作系统,因此可以根据等待部署的VNF的运行环境,获取对应该运行环境的镜像文件。镜像文件可以包含一种,例如只需针对VNF的一种运行环境,也可以包含两种及两种以上,例如针对VNF可能应用于的两种或者两种以上的运行环境,具体可以根据待部署的VNF的应用需要进行确定。VNF的应用软件包为VNF部署过程中所需安装的VNF应用所需的软件包,用于提供VNF所需实现各种功能的VNF应用的安装文件。应用软件包的数量和类型可以根据VNF的类型信息和用途进行选择。
可以理解,在基于Openstack的NFV系统中进行VNF部署时,可以通过但不限于运维人员手动输入、预先配置、联网加载(例如从通信网络接入存储各类镜像文件、应用软件包的服务器或数据库等进行下载)或者从计算机可读存储介质上拷贝等方式,获取待部署的VNF的镜像文件和应用软件包,以便在后续部署过程中使用。
S14,根据VNF的类型信息、网络拓扑信息、镜像文件和应用软件包的地址信息,创建对应于VNF的编排模板;编排模板包括VNF的配置资源、网络资源和虚拟机子模板。
其中,VNF的类型信息也即该VNF所需实现的功能的类型信息,对应于该VNF所对应的物理实体所需具备的功能,例如该VNF为核心网EPC系统时,VNF的类型信息也即对应于核心网EPC各组成网元所实现的功能。类型信息可以但不限于按照VNF所对应的物理实体的类型,以文字或者数字等方式进行预先定义,只要能够便于终端判断VNF的功能类型即可。相应的,VNF的网络拓扑信息也即该VNF中各组成模块之间的网络拓扑的类型、组成和拓扑结构等信息,对应于物理实体中各组成网元之间的网络拓扑。应用软件包的地址信息为应用软件包的存放位置信息,如应用软件包的URL(Uniform Resource Locator,统一资源定位符,也称网页地址),用于指示应用软件包的存放位置。编排模板为VNF部署过程中的资源创建的引导模板,且格式为基于Openstack的NFV系统自带的编排模块heat(一个基于模板来创建相关资源的服务)定义格式,用于指示编排模块heat按照编排模板自动完成各种资源的创建。
VNF的配置信息为该VNF中所需创建的虚拟机(Virtualisation DeploymentUnit,VDU)的虚拟资源信息,也即虚拟机的Flavor(配置规格)信息,例如但不限于是VDU的vcpu(虚拟微处理单元)个数、内存大小和磁盘空间等资源配置信息。网络资源信息也即组成VNF网络拓扑所需的网络配置信息,用于确定VNF的各组成模块之间的网络拓扑。
可以理解,在获取所需的镜像文件和应用软件包后,即可以根据VNF的类型信息、网络拓扑信息、镜像文件和应用软件包的地址信息,按照编排模块heat定义格式分别定义VNF的配置资源、网络资源和虚拟机子模板,以完成待部署VNF的编排模板创建。
S16,调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机。
可以理解,完成上述的编排模板创建后,即可调用编排模块heat开始编排流程,为编排模块heat选择前述创建好的编排模板后,编排模块heat即可自动开站编排工作,创建所需的各种资源,也即创建VNF的配置资源、网络资源和虚拟机。虚拟机创建完成后,VNF的运行环境即可部署完成。
S18,在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包,并执行上电操作;
S20,在虚拟机初始化工具完成上电操作后,重启虚拟机。
其中,虚拟机初始化工具为镜像文件中已安装好的初始化工具,可以是但不限于本领域的cloud-init工具。上电操作也即虚拟机初始化工具执行应用软件包上电过程所需的脚本(如按照应用软件包对应的VNF应用的上电过程预先配置的shell脚本,下文简称上电脚本)时实现的操作。不同VNF所需创建的虚拟机类型和数量可不同,相应的,不同VNF在部署过程时,创建的编排模板中所包含的虚拟机子模板的类型和数量也可以不同,每一虚拟机所需的配置资源也会有所不同,具体可以根据VNF的类型和各组成模块确定。
可以理解,在基于Openstack的NFV系统中,所有虚拟机均创建完成后,VNF的操作系统和虚拟机将会自行启动,并进行网络初始化。如此,在虚拟机自启动时,则可以运行镜像文件中的虚拟机初始化工具,以使虚拟机初始化工具根据地址信息,下载虚拟机对应的应用软件包和执行上电操作。在上电操作结束后,控制虚拟机重启,以使虚拟机启动后自动加载VNF应用完成部署。
上述基于Openstack的NFV系统中部署VNF的方法,通过在基于Openstack的NFV系统上设计编排模板后,采用NFV系统提供的编排模块进行模块编排,配合虚拟机初始化工具的运用,共同实现VNF自动部署。如此,无需额外引入NFVO和VNFM来管理VNF的生命周期,降低技术门槛且减少VNF部署的成本投入,有效解决了在基于原生Openstack的NFV系统中快速部署VNF的问题。此外,VNF部署操作难度简化,在后续部署同样的VNF时,无需重复所有的部署操作,只需按照等待部署VNF的参数规划,修改编排模板中的部分参数即可进行快速部署,大大提高了VNF部署效率,增强VNF产品竞争力。
请参阅图3,在一个实施例中,上述方法还包括:
S22,将应用软件包对应的VNF应用的启动日志记录到日志系统;启动日志为虚拟机启动后加载VNF应用时得到的日志记录。
其中,启动日志用于记录VNF应用的上电过程。日志系统为日志存储系统,可以是本地服务器也可以是终端上的日志数据存储介质,还可以是NFV系统中的服务器。
可以理解,在完成虚拟机重启后,可以将虚拟机自动加载VNF应用时得到的日志记录输出,也即在执行上电脚本的过程中,将VNF应用的整个上电过程,以启动日志的形式输出,记录到日志系统。
S24,在VNF应用启动完成后,运行预设检查脚本,周期性获取VNF应用的运行状态信息。
其中,预设检查脚本为根据VNF应用的类型和运行过程,预设编写的健康检查脚本,可以在上电结束后,被上电脚本调用时,实现周期检查VNF应用的运行状态。运行状态信息为VNF应用运行的状态信息,可以是文字形式的数据,也可以是标志符号形式的数据。预设检查脚本可用于周期性检查VNF应用的运行状态,以将VNF应用的运行状态通过运行状态信息的方式进行输出。
可以理解,在VNF应用启动完成后,可以通过运行预设检查脚本的方式,对VNF应用的运行状态进行检查。对于VNF应用的运行状态,可以在检查过程中进行周期性输出,例如以设定的周期(周期长短可以根据VNF应用的运行状态检查需要,灵活设定)获取VNF应用的运行状态信息,以便跟踪监控VNF应用的运行状态。运行状态信息可以以运行数据报表的方式输出到终端,提供直观的VNF应用状态展示,便于提高运维效率。
通过上述的步骤S22和S24后,运维人员即可通过虚拟机上配置的管理网络登录到VNF系统或者通过统一的网管查看各虚拟机的运行状态,当各虚拟机运行正常后,即可配置所需业务数据进行基本业务验证,为部署好的VNF投入应用做准备。
请参阅图4,在一个实施例中,关于上述的步骤S12中,获取待部署的VNF的镜像文件的过程,具体可以包括:
S122,获取NFV系统的镜像制作服务器对应于VNF的运行环境信息生成的镜像文件;其中,镜像文件包括VNF的操作系统和虚拟机初始化工具。
可以理解,镜像制作服务器可以预先进行搭建,用于制作所需各种VNF运行的虚拟机环境的镜像文件。例如,在基于Openstack的NFV系统中的一台服务器上安装适用的镜像制作工具,例如但不限于安装KVM(Kernel Virtual Machine,内核虚拟机)相关软件,搭建镜像制作服务器。根据所需部署的VNF的运行环境,在镜像制作服务器上选择需创建镜像的操作系统类型和版本,例如Centos7.4操作系统。设定启动镜像的基本参数,如vcpu(虚拟微处理单元)、内存和磁盘大小,以及网络参数等。
通过镜像制作服务器上的镜像制作工具启动镜像系统,并在镜像系统启动后,通过VNC(Virtual Network Console,虚拟网络控制台)客户端或者其他安装网络控制工具(可以根据镜像类型选择)连接到镜像系统,按照VNC客户端提示安装操作系统。在操作系统安装完成后,重启镜像系统并通过VNC客户端重新接入镜像系统,安装虚拟机初始化工具,还可以选择安装其他需求的软件并在安装完成后关闭镜像系统,生成所需的镜像文件(包含前述的操作系统、虚拟机初始化工具和其他软件)。
S124,对镜像文件命名后上传至NFV系统的镜像管理模块。
生成所需的镜像文件后,可以对镜像文件进行命名,例如对于生成的一个或者两个以上的镜像文件时,可以按照一定规则设置镜像文件的命名,以标示镜像文件的镜像类型。前述的一定规则在本说明书中不做具体限定,只要能够方便后续使用镜像文件时快速且准确地调用即可。具体的,对镜像文件命名后将镜像文件上传至NFV系统的镜像管理模块,作为后续部署流程所需使用的镜像文件。
通过上述的步骤S122和S124,可以针对不同用途的VNF分别制造所需的各种镜像文件,并上传到NFV系统的镜像管理模块,提高后续部署流程中的文件调用效率,简化部署操作难度同时提升部署效率。
在一个实施例中,如图4所示,关于上述的步骤S12中,获取待部署的VNF的应用软件包的过程,具体可以包括:
S126,将预设的应用软件包上传至NFV系统的软件包管理服务器,并指示软件包管理服务器记录应用软件包的地址信息,得到待部署的VNF的应用软件包。
可以理解,软件包管理服务器可以是物理服务器,也可以是虚拟机。可选的,可以通过在NFV系统的服务器中定义一台服务器作为软件包管理服务器,或者通过在NFV系统上创建一台虚拟机作为软件包管理服务器的方式,完成软件包管理服务器的创建,且软件包管理服务器的网络与NFV系统的管理网络连通,以便实现与NFV系统的管理网络之间的数据交互。创建软件包管理服务器时,为软件包管理服务器安装Http服务或Ftp服务,以便实现应用软件包的传输。
在安装Http服务或Ftp服务时,可以将安装的服务配置为开机自启动,以便软件包管理服务器创建完成后启动时,Http服务或Ftp服务自行启动,简化操作流程。在软件包管理服务器的Http服务或Ftp服务启动后,即可以向软件包管理服务器上传所需的应用软件包,并指示软件包管理服务器记录应用软件包的地址信息,以备后续流程中需使用到应用软件包时,可以通过应用软件包的地址信息快速找到应用软件包,以实现快速调用。
通过上述的步骤S126,可以将部署VNF所需安装的VNF应用所对应的应用软件包,通过软件包管理服务器进行保存管理,实现后续部署流程中应用软件包的自动获取和使用,进一步简化部署操作难度同时提升部署效率。
请参阅图5和图6,在一个实施例中,关于上述的步骤S14,具体可以包括:
S142,根据VNF的类型信息,定义VNF的网元模块的配置信息;
S144,根据VNF的网络拓扑信息,定义网元模块的网络资源信息;网络资源信息包括网元模块间的网络类型信息、子网信息和端口信息,网元模块与NFV系统的管理网络连通;
S146,为网元模块对应的虚拟机选定相应的配置信息、网络资源信息和镜像文件,定义网元模块对应的虚拟机子模板;
S148,获取应用软件包的地址信息和虚拟机的上电脚本,确定虚拟机子模板的元数据,生成编排模板。
在进行编排模板的创建过程中,编排模板的格式为编排模块heat的定义格式。可以根据VNF所需实现的功能,定义VNF中包含的网元模块所需的配置信息,也即定义网元模块的Flavor(配置规格)。对于待部署的VNF,还需为网元模块定义所需的网络资源信息,也即定义网络组成结构,以确定待部署的VNF的整体网络类型信息(也即具体的网络结构类型),子网信息(也即网络地址段)和端口信息(也即包含的端口及其数量),实现待部署的VNF在部署时的网络搭建。而且,VNF的网元模块连通到NFV系统的管理网络,以实现与NFV系统的管理网络的数据交互,例如通过NFV系统的管理网络从软件包管理服务器上获取应用软件包的地址信息和/或下载所需的应用软件包等。
完成前述的配置资源设计和网络资源设计后,定义网元模块对应的虚拟机子模板:为网元模块对应的虚拟机选择前述的配置信息、镜像文件和网络资源信息等。进而从软件包管理服务器上获取应用软件包的地址信息,设计网元模块对应的虚拟机的元数据(也即metadata),例如:metadata为一组命令脚本,定义在编排模板下的VDU子模板的user_data(用户数据子模块)下。metadata包含的内容包括:1、下载VNF的应用软件包的命令脚本,需要携带应用软件包的URL;2、配置VNF应用运行的系统参数的脚本命令(此部分内容可以由VNF应用种类确定有无);3、执行应用软件包上电的脚本命令;如此完成整个编排模板的生成。前述的元数据的设计过程可以是:获取网元模块所需的应用软件包的地址信息、配置网元模块对应的虚拟机运行时所需的参数以及执行上电操作所需的上电脚本,并将上电脚本的内容附加至网元模块对应虚拟机的用户数据子模块中(以便虚拟机创建成功后,前述的地址信息、配置的参数和上电脚本以元数据的方式,传入到虚拟机中)。
为更便于理解上述的编排模板创建过程,下面以VNF为简易的核心网EPC系统为例进行说明:
所需部署的EPC系统各功能模块分开部署,则需创建MME(Mobility ManagementEntity,移动管理节点功能)、GW(GateWay,网关)、PCRF(Policy and Charging RulesFunction,策略与计费规则功能)、HSS(Home Subscriber Server,归属签约用户服务器)等网元模块。如图6所示,具体的编排模板创建过程可以如下:
终端可以根据录入的(厂家提供)EPC系统运行参数表(也即类型信息),定义各网元Flavor(也即配置资源),例如为MME设定Flavor为10个vcpu,16G内存和300G硬盘。对于其它网元模块同理。根据各网元模块之间的网络拓扑信息,定义各网元模块的虚拟网口(端口)数量、子网(网络地址段)以及连接拓扑,也即网络类型,例如VLAN型网络、FLAT型网络或VXLAN型网络;每个网元模块均需连通到NFV系统的管理网络,以便从软件包管理服务器下载各自所需的应用软件包。定义各网元模块对应的虚拟机(VDU)子模板:为每个网元模块对应的虚拟机选择前述定义的Flavor、镜像文件和网络资源等。从软件包管理服务器上获取各网元模块对应的应用软件包的URL,设计各网元模块对应的虚拟机的元数据:获取各网元模块对应的应用软件包的地址信息、配置网元模块对应的虚拟机运行时所需的参数以及上电过程所需执行的上电脚本。如此,对应于该EPC系统的编排模板即创建完成,命名保存即可。
通过前述步骤S142至S148,完成所需的编排模板的创建,方便调用编排模块heat后基于选定的编排模板,快速开展编排流程,以创建VNF的各种资源和虚拟机创建等,简化部署操作,确保较高的部署效率。
请参阅图7,在一个实施例中,关于上述的步骤S18,具体可以包括如下步骤:
调用编排模块,并在编排模块根据编排模板,依次创建配置资源、网络资源和虚拟机的过程中,若当前创建的资源不满足设定条件,则指示编排模块对不满足设定条件的资源进行重建,直至资源满足设定条件后,指示编排模块开始下一资源的创建。
可以理解,在上述实施例中,编排模块在按照编排模板进行资源创建时,可以依次创建所需的配置资源、网络资源和虚拟机。终端可以在所有资源被编排模块依次地逐个创建过程中,实时地将创建好的资源与编排模板中的相应资源进行比对,或者将创建好的资源与预先设定的相应参照资源进行比对,以确定该创建好的资源与编排模板中的相应资源,或者与预先设定的相应参照资源是否一致(也即上述的设定条件)。若一致,则表示资源创建成功,不一致则表示资源创建失败)。也即是说,该创建好的资源与VNF模板编排模板中的相应资源,或者与预先设定的相应参照资源一致也即满足上述的设定条件,否则不满足设定条件。终端可以在编排模块创建所有资源完成后,再指示编排模块对创建失败的资源进行重建,也可以在发现创建失败的资源时,即指示编排模块暂停下一个资源的创建,对当前创建失败的资源进行重建,并在重建成功后再指示编排模块继续下一个资源的创建。
在本实施例中,终端在调用编排模块heat执行编排流程后,当编排模块heat在依次创建配置资源、网络资源和虚拟机的过程中,当前创建的资源发生创建失败时,例如因创建过程中发生数据丢包或者网络故障,导致配置资源、网络资源或者虚拟机创建失败,则可以通过指令指示编排模块heat对当前创建失败的配置资源、网络资源或虚拟机尝试重新创建。配置资源创建成功后即可开始建立下一个资源。例如,当编排模块heat创建网络资源失败时,即可指示编排模块heat尝试重新建立网络资源。当网络资源创建成功后,即可开始创建虚拟机。当编排模块heat创建虚拟机失败时,即可指示编排模块heat尝试重新建立虚拟机。
编排模块heat对不满足设定条件的资源的重建次数可以不限制,也可以指定次数,本实施例中不做限定。通过前述的重建流程,可以提高各资源的建立正确性和可靠性,避免前一资源创建失败后,导致后续创建的资源均出错而浪费VNF系统的运算资源的问题。
在一个实施例中,如图7所示,在上述的步骤S18前,还可以包括如下步骤:
若编排模块对不满足设定条件的资源进行重建的次数超过预设次数,则退出编排流程并进行编排错误提醒。
在本实施例中,编排模块heat对不满足设定条件的资源的重建次数可以指定为预设次数,预设次数可以根据NFV系统和终端的运算能力和运行成本设定。例如预设次数为三次,也即是说,当编排模块heat对不满足设定条件的资源进行重建时,若编排模块heat对不满足设定条件的资源尝试重建的次数超过三次,即退出当前的编排流程,生成错误提示信息提醒运维人员,例如但不限于通过终端展示的方式进行编排错误提醒,提醒运维人员。如此,及时退出当前的编排流程,避免过度占用系统资源同时,方便运维人员根据编排错误提醒检查编排模板是否有误并更正错误内容等,以进一步提高VNF部署效率。
应该理解的是,虽然图2至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参阅图8,在一个实施例中,提供了一种基于Openstack的NFV系统中部署VNF的装置100,包括获取模块12、模板创建模块14、编排调用模块16、初始化调用模块18和重启处理模块20。其中:获取模块12用于获取待部署的VNF的镜像文件和应用软件包。模板创建模块14用于根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板;编排模板包括VNF的配置信息、网络资源信息和虚拟机子模板。编排调用模块16用于调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机。初始化调用模块18用于在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包和执行上电操作。重启处理模块20用于在虚拟机初始化工具完成上电操作后,重启虚拟机。
上述基于Openstack的NFV系统中部署VNF的装置100,通过各模块的协作,在基于Openstack的NFV系统上设计编排模板后,采用NFV系统提供的编排模块进行模块编排,配合虚拟机初始化工具的运用,共同实现VNF自动部署。如此,无需额外引入NFVO和VNFM来管理VNF的生命周期,降低技术门槛减少VNF部署的成本投入,有效解决了在基于原生Openstack的NFV系统中快速部署VNF的问题。此外,VNF部署操作难度简化,在后续部署同样的VNF时,无需重复所有的部署操作,只需按照等待部署VNF的参数规划,修改编排模板中的部分参数即可进行快速部署,大大提高了VNF部署效率,增强VNF产品竞争力。
在一个实施例中,基于Openstack的NFV系统中部署VNF的装置100还包括第一状态模块和第二状态模块。第一状态模块用于将应用软件包对应的VNF应用的启动日志记录到日志系统;启动日志为虚拟机启动后加载VNF应用时得到的日志记录。第二状态模块用于在VNF应用启动完成后,运行预设检查脚本,周期性获取VNF应用的运行状态信息。
在一个实施例中,获取模块12包括镜像获取子模块和镜像上传子模块。镜像获取子模块用于获取NFV系统的镜像制作服务器对应于VNF的运行环境信息生成的镜像文件;其中,镜像文件包括VNF的操作系统和虚拟机初始化工具。镜像上传子模块用于对镜像文件命名后上传至NFV系统的镜像管理模块。
在一个实施例中,获取模块12还包括软件包处理子模块。软件包处理子模块用于将预设的应用软件包上传至NFV系统的软件包管理服务器,并指示软件包管理服务器记录应用软件包的地址信息,得到待部署的VNF的应用软件包。
在一个实施例中,模板创建模块14包括配置定义子模块、网络定义子模块、虚拟机定义子模块和元数据处理子模块。其中,配置定义子模块用于根据VNF的类型信息,定义VNF的网元模块的配置信息。网络定义子模块用于根据VNF的网络拓扑信息,定义网元模块的网络资源信息;网络资源信息包括网元模块间的网络类型信息、子网信息和端口信息,网元模块与NFV系统的管理网络连通。虚拟机定义子模块用于为网元模块对应的虚拟机选定相应的配置信息、网络资源信息和镜像文件,定义网元模块对应的虚拟机子模板。元数据处理子模块用于获取应用软件包的地址信息和虚拟机的上电脚本,确定虚拟机子模板的元数据,生成编排模板。
在一个实施例中,编排调用模块16包括调用子模块、资源判断子模块和重建指示模块。调用子模块用于调用编排模块。资源判断子模块用于在编排模块根据编排模板,依次创建配置资源、网络资源和虚拟机的过程中,判断当前创建的资源是否满足设定条件。重建指示模块用于在当前创建的资源不满足设定条件时,指示编排模块对不满足设定条件的资源进行重建,直至资源满足设定条件后,指示编排模块开始下一资源的创建。
在一个实施例中,重建指示模块还用于在编排模块对不满足设定条件的资源进行重建的次数超过预设次数时,指示编排模块退出编排流程并进行编排错误提醒。
关于基于Openstack的NFV系统中部署VNF的装置100的具体限定可以参见上文中对于基于Openstack的NFV系统中部署VNF的方法的限定,在此不再赘述。上述基于Openstack的NFV系统中部署VNF的装置100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于核心网中的处理器中,也可以以软件形式存储于核心网中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是计算机终端。该计算机设备至少包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待部署的VNF的镜像文件和应用软件包;根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板;编排模板包括VNF的配置信息、网络资源信息和虚拟机子模板;调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机;在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包,并执行上电操作;在虚拟机初始化工具完成上电操作后,重启虚拟机。
在一个实施例中,处理器执行计算机程序时还实现上述基于Openstack的NFV系统中部署VNF的方法各实施例中的增加步骤或各子步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待部署的VNF的镜像文件和应用软件包;根据VNF的类型信息、网络拓扑信息、应用软件包的地址信息和镜像文件,创建对应于VNF的编排模板;编排模板包括VNF的配置信息、网络资源信息和虚拟机子模板;调用基于Openstack的NFV系统提供的编排模块;编排模块用于根据编排模板,创建VNF的资源,资源包括配置资源、网络资源和虚拟机;在虚拟机自启动时,运行镜像文件中的虚拟机初始化工具;虚拟机初始化工具用于根据地址信息,下载虚拟机对应的应用软件包,并执行上电操作;在虚拟机初始化工具完成上电操作后,重启虚拟机。
在一个实施例中,计算机程序被处理器执行时还实现上述基于Openstack的NFV系统中部署VNF的方法各实施例中的增加步骤或各子步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,前述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,均属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。