一种云平台支持添加网卡模型的方法、装置转让专利

申请号 : CN202110712423.6

文献号 : CN113645057B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓兆森马豹

申请人 : 济南浪潮数据技术有限公司

摘要 :

本发明提供一种云平台支持添加网卡模型的方法、装置,所述方法包括如下步骤:修改云平台代码添加网卡模型参数和网卡模型;创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;若否,判断是否设置镜像元数据,若是,按照镜像元数据中设定的参数指定网卡模型,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;若否,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型。根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。

权利要求 :

1.一种云平台支持添加网卡模型的方法,其特征在于,包括如下步骤:修改云平台代码添加网卡模型参数和网卡模型;

创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;

若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;

若否,判断是否设置镜像元数据,若是,按照镜像元数据中设定的参数指定网卡模型,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;若否,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型;

所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:在网卡模型参数存储文件中添加网卡模型;

定义新的网卡模型的名称;

重构网卡模型的基类;

将网卡模型添加到配置函数中生成网卡模型参数。

2.根据权利要求1所述的云平台支持添加网卡模型的方法,其特征在于,所述的重构网卡模型的基类的步骤具体包括:在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性。

3.根据权利要求1所述的云平台支持添加网卡模型的方法,其特征在于,所述的创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型的步骤还包括:判断指定的网卡模型是否已经实现,若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件;若否,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。

4.根据权利要求1所述的云平台支持添加网卡模型的方法,其特征在于,若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型的步骤具体包括:若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。

5.一种云平台支持添加网卡模型的装置,其特征在于,包括代码设置模块、虚拟机创建模块、虚拟机设置模块、元数据判断模块、元数据指定模块;

代码设置模块,用于修改云平台代码添加网卡模型参数和网卡模型;

虚拟机创建模块,用于创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;

虚拟机设置模块,用于若指定了网卡模型参数时,按照指定的网卡模型参数设置虚拟机的网卡模型;还用于若未设置镜像元数据时,根据默认的网卡模型参数设置虚拟机的网卡模型;

元数据判断模块,用于若未指定网卡模型参数时,判断是否设置镜像元数据;

元数据指定模块,用于若设置了镜像元数据,按照镜像元数据中设定的参数指定网卡模型;所述的代码设置模块包括添加单元、定义单元、重构单元和生成单元:添加单元,用于在网卡模型参数存储文件中添加网卡模型;

定义单元,用于定义新的网卡模型的名称;

重构单元,用于重构网卡模型的基类;

生成单元,用于将网卡模型添加到配置函数中生成网卡模型参数。

6.根据权利要求5所述的云平台支持添加网卡模型的装置,其特征在于,重构单元,具体用于在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性。

7.根据权利要求6所述的云平台支持添加网卡模型的装置,其特征在于,该装置还包括模型判断模块;

模型判断模块,用于判断指定的网卡模型是否已经实现;

虚拟机设置模块,具体用于创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。

8.根据权利要求7所述的云平台支持添加网卡模型的装置,其特征在于,虚拟机设置模块,还用于若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。

说明书 :

一种云平台支持添加网卡模型的方法、装置

技术领域

[0001] 本发明涉及云平台虚拟网卡技术领域,具体涉及一种云平台支持添加网卡模型的方法、装置。

背景技术

[0002] 随着Openstack云平台的大规模应用,客户在实际现场的使用场景范围也越来越广泛。如何保证云平台对不同操作系统有更好的兼容性以及更加便利的管理能力已经成为当前云平台的一个重点发展方向。
[0003] 随着云技术的快速发展和云业务的广泛应用,云平台作为一个统筹的业务平台,需要管理的虚拟机也越来越多;虚拟机的类型也随着的用户的业务不断扩展,不同的虚拟机对不同的网卡类型有着不同的适应能力;例如像macos镜像系统不支持virtio‑net驱动,就只能使用e1000‑82545em类型的驱动。
[0004] 如何快速的将网卡模型添加到云平台中,并在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行,成为当今云计算发展业务中的日益重要的课题。

发明内容

[0005] 针对不同操作系统类型,如何快速的将操作系统需要的网卡模型添加到云平台中,保障业务的快速稳定运行的问题,本发明提供一种云平台支持添加网卡模型的方法、装置。
[0006] 本发明的技术方案是:
[0007] 第一方面,本发明技术方案提供一种云平台支持添加网卡模型的方法,包括如下步骤:
[0008] 修改云平台代码添加网卡模型参数和网卡模型;
[0009] 创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;
[0010] 若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;
[0011] 若否,判断是否设置镜像元数据,若是,按照镜像元数据中设定的参数指定网卡模型,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;若否,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型。在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0012] 进一步的,所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:
[0013] 在网卡模型参数存储文件中添加网卡模型;
[0014] 定义新的网卡模型的名称;
[0015] 重构网卡模型的基类;
[0016] 将网卡模型添加到配置函数中生成网卡模型参数。
[0017] 进一步的,所述的重构网卡模型的基类的步骤具体包括:
[0018] 在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性。
[0019] 进一步的,所述的创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型的步骤还包括:
[0020] 判断指定的网卡模型是否已经实现,若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件;若否,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。首先判断指定的网卡模型是否已经实现,若实现则设置对应的网卡模型;若没有实现,则设置为默认网卡模型。
[0021] 进一步的,若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型的步骤具体包括:
[0022] 若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0023] 第二方面,本发明技术方案还提供一种云平台支持添加网卡模型的装置,包括代码设置模块、虚拟机创建模块、虚拟机设置模块、元数据判断模块、元数据指定模块;
[0024] 代码设置模块,用于修改云平台代码添加网卡模型参数和网卡模型;
[0025] 虚拟机创建模块,用于创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;
[0026] 虚拟机设置模块,用于若指定了网卡模型参数时,按照指定的网卡模型参数设置虚拟机的网卡模型;还用于若未设置镜像元数据时,根据默认的网卡模型参数设置虚拟机的网卡模型;
[0027] 元数据判断模块,用于若未指定网卡模型参数时,判断是否设置镜像元数据;
[0028] 元数据指定模块,用于若设置了镜像元数据,按照镜像元数据中设定的参数指定网卡模型。
[0029] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0030] 进一步的,所述的代码设置模块包括添加单元、定义单元、重构单元和生成单元;
[0031] 添加单元,用于在网卡模型参数存储文件中添加网卡模型;
[0032] 定义单元,用于定义新的网卡模型的名称;
[0033] 重构单元,用于重构网卡模型的基类;
[0034] 生成单元,用于将网卡模型添加到配置函数中生成网卡模型参数。
[0035] 进一步的,重构单元,具体用于在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性。
[0036] 进一步的,该装置还包括模型判断模块;
[0037] 模型判断模块,用于判断指定的网卡模型是否已经实现;
[0038] 虚拟机设置模块,具体用于创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0039] 进一步的,虚拟机设置模块,还用于若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0040] 通过修改相应代码实现对应网卡模型的添加;同时在创建虚拟机时,可以通过设置镜像元数据或者通过创建虚拟机URL的方式指定网卡模型。判断指定的网卡模型是否已经实现,若实现则设置对应的虚拟机的网卡模型;若没有实现,则将虚拟机的网卡模型设置为默认网卡模型,在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0041] 第三方面,本发明一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的一种云平台支持添加网卡模型的方法。
[0042] 从以上技术方案可以看出,本发明具有以下优点:通过修改相应代码实现对应将网卡模型添加到云平台中;同时在创建虚拟机时,根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。
[0043] 此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
[0044] 由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

[0045] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046] 图1是本发明一个实施例的方法的示意性流程图。
[0047] 图2是本发明另一个实施例的方法的示意性流程图。
[0048] 图3是本发明一个实施例的装置的示意性框图。
[0049] 图中,11‑代码设置模块,12‑虚拟机创建模块,13‑元数据判断模块,14‑元数据指定模块,15‑虚拟机设置模块。

具体实施方式

[0050] 为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。下面对本发明中出现的关键术语进行解释。
[0051] OpenStack云平台:开源OpenStack是一款功能丰富、高可用性、安全、支撑工具全面的云数据中心操作系统。
[0052] 云主机:是指能够为云平台提供系统运行和数据处理的虚拟主机。在openstack云平台中,由nova模块为云平台提供云主机管理服务。一般而言,通过云平台对云主机进行统一资源管理,可以使得云平台有更加广泛的运营能力,同时使得资源调度和运行更加有效和方便。
[0053] 网卡模型:一种网卡驱动类型,通过qemu驱动进行模拟实际物理网卡的行为,达到让虚拟机误认为自己拥有这种网卡。云主机可以通过配置某种网卡模型以达到较好的网络性能,实现数据较高效率通信。
[0054] 如图1所示,本发明实施例提供一种云平台支持添加网卡模型的方法,包括如下步骤:
[0055] S11:修改云平台代码添加网卡模型参数和网卡模型;
[0056] S12:创建虚拟机;
[0057] S13:创建虚拟机时判断是否指定了网卡模型参数;若是,执行步骤S16,若否,执行步骤S14;
[0058] S14:判断是否设置镜像元数据,若是,执行步骤S15,若否,执行步骤S17;
[0059] S15:按照镜像元数据中设定的参数指定网卡模型;
[0060] S16:创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;
[0061] S17:创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型。
[0062] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0063] 本发明另一个实施例提供一种云平台支持添加网卡模型的方法,包括如下步骤:
[0064] S11:修改云平台代码添加网卡模型参数和网卡模型;步骤S11中,所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:
[0065] S101:在网卡模型参数存储文件中添加网卡模型;S102:定义新的网卡模型的名称;S103:重构网卡模型的基类;S104:将网卡模型添加到配置函数中生成网卡模型参数;
[0066] S12:创建虚拟机;
[0067] S13:创建虚拟机时判断是否指定了网卡模型参数;若是,执行步骤S16,若否,执行步骤S14;
[0068] 若是,创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;
[0069] S14:判断是否设置镜像元数据,若是,执行步骤S15,若否,执行步骤S17;
[0070] S15:按照镜像元数据中设定的参数指定网卡模型;
[0071] S16:创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;
[0072] S17:创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型。
[0073] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0074] 如图2所示,本发明另一个实施例提供一种云平台支持添加网卡模型的方法,包括如下步骤:
[0075] S21:修改云平台代码添加网卡模型参数和网卡模型;步骤S21中,所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:
[0076] S101:在网卡模型参数存储文件中添加网卡模型;S102:定义新的网卡模型的名称;S103:重构网卡模型的基类,具体,在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性;S104:将网卡模型添加到配置函数中生成网卡模型参数;
[0077] S22:创建虚拟机;
[0078] S23:创建虚拟机时判断是否指定了网卡模型参数;若是,执行步骤S26,若否,执行步骤S24;
[0079] S24:判断是否设置镜像元数据,若是,执行步骤S25,若否,执行步骤S28;
[0080] S25:按照镜像元数据中设定的参数指定网卡模型;
[0081] S26:判断指定的网卡模型是否已经实现,若是,执行步骤S27,否则,执行步骤S28;
[0082] S27:创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;并生成对应的XML文件;
[0083] S28:创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0084] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0085] 通过修改OpenStack云平台代码的方式添加网卡参数和网卡模型,例如"e1000‑82545"网卡模型,并根据本专利提供的方法可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。其次,可以通过镜像元数据或者创建虚拟机时指定系统元数据"hw_nic_model_driver"的方式,实现指定网卡模型创建虚拟机,例如指定"e1000‑
82545"网卡模型创建虚拟机。最终实现网卡模型的添加和选择,可以在OpenStack云平台生成的XML文件网卡参数中,看到生成的网卡模型参数。最终呈现的方式是,可以在OpenStack中生成的XML文件中看到该网卡模型。
[0086] 本发明另一个实施例提供一种云平台支持添加网卡模型的方法,以e1000‑82545em网卡模型为例进行介绍,其他网卡模型的添加方式与此类似;
[0087] 所述方法包括如下步骤:
[0088] S21:修改云平台代码添加网卡模型参数和网卡模型;步骤S21中,所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:
[0089] S101:在网卡模型参数存储文件中添加网卡模型;
[0090] 在nova/network/model.py文件中添加网卡模型,例如添加"e1000‑82545em";
[0091] S102:定义新的网卡模型的名称,添加方式为:VIF_MODEL_E1000_82545EM="e1000‑82545em",后面将用VIF_MODEL_E1000_82545EM作为全局变量进行操作。model.py文件主要是存放网卡模型参数的文件,所有的网卡模型都要放到该文件中。VIF_MODEL_E1000_82545EM代表e1000‑82545em的虚拟网卡模型,"e1000‑82545em"是表示在XML文件中的字符串;
[0092] S103:重构网卡模型的基类,具体,在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性;
[0093] 在nova/objects/fields.py文件中的VIFModel类中,添加e1000‑82545em网卡模型:"virtuale1000‑82545em":network_model.VIF_MODEL_E1000_82545EM。VIFModel类作为网卡模型的一个基类,需要添加新添加的网卡模型名称到该类的属性中。
[0094] S104:将网卡模型添加到配置函数中生成网卡模型参数;
[0095] 在nova/virt/libvirt/vif.py文件中将上述网卡模型添加到SUPPORTED_VIF_MODELS字典中,在"qemu"字典和"kvm"字典中分别添加字段"network_model.VIF_MODEL_E1000_82545EM",表名驱动为"qemu"或者"kvm"时所支持的网卡模型类型,以便在创建虚拟机的过程中使用该网卡模型参数。
[0096] S22:创建虚拟机;
[0097] S23:创建虚拟机时判断是否指定了网卡模型参数;若是,执行步骤S26,若否,执行步骤S24;
[0098] S24:判断是否设置镜像元数据,若是,执行步骤S25,若否,执行步骤S28;
[0099] 在nova/virt/libvirt/vif.py的get_base_config函数中添加判断系统元数据的代码,若系统元据"hw_nic_model_driver"=e1000‑82545em,则设置网卡驱动模型为e1000‑82545em的网卡驱动模型;若"hw_nic_model_driver"元数据未设置,则使用默认网卡模型;
[0100] S25:按照镜像元数据中设定的参数指定网卡模型;
[0101] S26:判断指定的网卡模型是否已经实现,若是,执行步骤S27,否则,执行步骤S28;
[0102] S27:创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;并生成对应的XML文件;
[0103] S28:创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0104] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0105] 需要说明的是,创建虚拟机,指定网卡模型的方式,第一种设置镜像元数据的方式,例如设置镜像元数据"hw_nic_model_driver"为"e1000‑82545em",则在创建虚拟机流程中自动将镜像元数据更新到系统元数据中;第二种是在创建虚拟机过程中指定系统元数据,在传入创建虚拟机的URL body体中的"metadata"元数据字段中增加{"hw_nic_model_driver":"e1000‑82545em"}的字典。虚拟机创建流程中对于上面两个设置的处理规则是:如果创建虚拟机时指定了hw_nic_model_driver,则按照创建虚拟机时指定的网卡参数设置虚拟机的网卡模型;若没有指定创建虚拟机的网卡模型,镜像元数据中的"hw_nic_model_driver"参数指定网卡模型,按照镜像元数据中的"hw_nic_model_driver"参数指定的网卡模型设置虚拟机的网卡模型;若同时设置了网卡模型,则按照创建虚拟机指定的网卡模型为准;若两者都没有指定,则创建虚拟机时,用默认的网卡模型对创建虚拟机的网卡模型进行设置。
[0106] 如图3所示,本发明一个实施例还提供一种云平台支持添加网卡模型的装置,包括代码设置模块11、虚拟机创建模块12、虚拟机设置模块15、元数据判断模块13、元数据指定模块14;
[0107] 代码设置模块11,用于修改云平台代码添加网卡模型参数和网卡模型;
[0108] 虚拟机创建模块12,用于创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;
[0109] 虚拟机设置模块15,用于若指定了网卡模型参数时,按照指定的网卡模型参数设置虚拟机的网卡模型;还用于若未设置镜像元数据时,根据默认的网卡模型参数设置虚拟机的网卡模型;
[0110] 元数据判断模块13,用于若未指定网卡模型参数时,判断是否设置镜像元数据;
[0111] 元数据指定模块14,用于若设置了镜像元数据,按照镜像元数据中设定的参数指定网卡模型。
[0112] 在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0113] 本发明另一个实施例还提供一种云平台支持添加网卡模型的装置,包括代码设置模块11、虚拟机创建模块12、虚拟机设置模块15、元数据判断模块13、元数据指定模块14、模型判断模块;
[0114] 代码设置模块11,用于修改云平台代码添加网卡模型参数和网卡模型;
[0115] 虚拟机创建模块12,用于创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;
[0116] 虚拟机设置模块15,用于若指定了网卡模型参数时,按照指定的网卡模型参数设置虚拟机的网卡模型;还用于若未设置镜像元数据时,根据默认的网卡模型参数设置虚拟机的网卡模型;具体用于创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。还用于若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0117] 元数据判断模块13,用于若未指定网卡模型参数时,判断是否设置镜像元数据;
[0118] 元数据指定模块14,用于若设置了镜像元数据,按照镜像元数据中设定的参数指定网卡模型;
[0119] 模型判断模块,用于判断指定的网卡模型是否已经实现。
[0120] 通过修改相应代码实现对应网卡模型的添加;同时在创建虚拟机时,可以通过设置镜像元数据或者通过创建虚拟机URL的方式指定网卡模型。判断指定的网卡模型是否已经实现,若实现则设置对应的虚拟机的网卡模型;若没有实现,则将虚拟机的网卡模型设置为默认网卡模型,在创建虚拟机时根据不同镜像和实际物理环境指定网卡模型,保障业务的快速稳定运行。可以添加任意类型的网卡模型,实现网卡模型可以根据实际任务和需求添加。
[0121] 本发明另一个实施例还提供一种云平台支持添加网卡模型的装置,包括代码设置模块11、虚拟机创建模块12、虚拟机设置模块15、元数据判断模块13、元数据指定模块14、模型判断模块;
[0122] 代码设置模块11,用于修改云平台代码添加网卡模型参数和网卡模型;
[0123] 虚拟机创建模块12,用于创建虚拟机,同时创建虚拟机时判断是否指定了网卡模型参数;
[0124] 虚拟机设置模块15,用于若指定了网卡模型参数时,按照指定的网卡模型参数设置虚拟机的网卡模型;还用于若未设置镜像元数据时,根据默认的网卡模型参数设置虚拟机的网卡模型;具体用于创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。还用于若未设置镜像元数据,创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0125] 元数据判断模块13,用于若未指定网卡模型参数时,判断是否设置镜像元数据;
[0126] 元数据指定模块14,用于若设置了镜像元数据,按照镜像元数据中设定的参数指定网卡模型;
[0127] 模型判断模块,用于判断指定的网卡模型是否已经实现。
[0128] 需要说明的是,所述的代码设置模块包括添加单元、定义单元、重构单元和生成单元;
[0129] 添加单元,用于在网卡模型参数存储文件中添加网卡模型;在nova/network/model.py文件中添加网卡模型,例如添加"e1000‑82545em";
[0130] 定义单元,用于定义新的网卡模型的名称;添加方式为:VIF_MODEL_E1000_82545EM="e1000‑82545em",后面将用VIF_MODEL_E1000_82545EM作为全局变量进行操作。
model.py文件主要是存放网卡模型参数的文件,所有的网卡模型都要放到该文件中。VIF_MODEL_E1000_82545EM代表e1000‑82545em的虚拟网卡模型,"e1000‑82545em"是表示在XML文件中的字符串;
[0131] 重构单元,用于重构网卡模型的基类;实际上是在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性;在nova/objects/fields.py文件中的VIFModel类中,添加e1000‑82545em网卡模型:"virtuale1000‑82545em":network_model.VIF_MODEL_E1000_82545EM。VIFModel类作为网卡模型的一个基类,需要添加新添加的网卡模型名称到该类的属性中。
[0132] 生成单元,用于将网卡模型添加到配置函数中生成网卡模型参数。在nova/virt/libvirt/vif.py文件中将上述网卡模型添加到SUPPORTED_VIF_MODELS字典中,在"qemu"字典和"kvm"字典中分别添加字段"network_model.VIF_MODEL_E1000_82545EM",表名驱动为"qemu"或者"kvm"时所支持的网卡模型类型,以便在创建虚拟机的过程中使用该网卡模型参数。
[0133] 创建虚拟机,指定网卡模型的方式,第一种设置镜像元数据的方式,例如设置镜像元数据"hw_nic_model_driver"为"e1000‑82545em",则在创建虚拟机流程中自动将镜像元数据更新到系统元数据中;第二种是在创建虚拟机过程中指定系统元数据,在传入创建虚拟机的URL body体中的"metadata"元数据字段中增加{"hw_nic_model_driver":"e1000‑82545em"}的字典。虚拟机创建流程中对于上面两个设置的处理规则是:如果创建虚拟机时指定了hw_nic_model_driver,则按照创建虚拟机时指定的网卡参数设置虚拟机的网卡模型;若没有指定创建虚拟机的网卡模型,镜像元数据中的"hw_nic_model_driver"参数指定网卡模型,按照镜像元数据中的"hw_nic_model_driver"参数指定的网卡模型设置虚拟机的网卡模型;若同时设置了网卡模型,则按照创建虚拟机指定的网卡模型为准;若两者都没有指定,则创建虚拟机时,用默认的网卡模型对创建虚拟机的网卡模型进行设置。
[0134] 本发明另一个实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S21:修改云平台代码添加网卡模型参数和网卡模型;步骤S21中,所述的修改云平台代码添加网卡模型参数和网卡模型的步骤包括:S101:在网卡模型参数存储文件中添加网卡模型;S102:定义新的网卡模型的名称;S103:重构网卡模型的基类,具体,在域文件中的基类中添加新定义的网卡模型的名称到该基类的属性;S104:将网卡模型添加到配置函数中生成网卡模型参数;S22:创建虚拟机;S23:创建虚拟机时判断是否指定了网卡模型参数;若是,执行步骤S26,若否,执行步骤S24;S24:判断是否设置镜像元数据,若是,执行步骤S25,若否,执行步骤S28;S25:按照镜像元数据中设定的参数指定网卡模型;
[0135] S26:判断指定的网卡模型是否已经实现,若是,执行步骤S27,否则,执行步骤S28;S27:创建虚拟机时按照指定的网卡模型参数设置虚拟机的网卡模型;并生成对应的XML文件;S28:创建虚拟机时根据默认的网卡模型参数设置虚拟机的网卡模型,并生成对应的XML文件。
[0136] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0137] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0138] 尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。