服务器的网络功能虚拟化方法、装置及存储介质与流程

文档序号:33164890发布日期:2023-02-04 01:21阅读:102来源:国知局
服务器的网络功能虚拟化方法、装置及存储介质与流程

1.本发明涉及网络功能虚拟化技术领域,尤其涉及一种服务器的网络功能虚拟化方法、装置及存储介质。


背景技术:

2.nfv(network function virtualization,网络功能虚拟化)是通过使用x86等通用性硬件以及虚拟化技术来承载很多功能的软件处理,从而降低网络昂贵的设备成本。nfv可以实现软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等
3.目前nfv在服务器中可以部署在不同类型的工作负载(workload)上,工作负载的类型有vm(virtual machine,虚拟机)、bm(bare metal,裸金属(服务器))和cm(container,容器)等,工作负载要有对应的虚拟/物理端口((virtual)network interface card,(v)nic)经过物理网卡出服务器,接通到交换机的端口上。当前技术环境下只支持一台服务器从一个物理网卡端口进行业务提供通信,无法适用于单台服务器支持多个物理网卡并存的情况,限制了业务应用。


技术实现要素:

4.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
5.本发明实施例提供了一种服务器的网络功能虚拟化方法、装置及存储介质,为多网卡服务器的配置虚拟机提供了解决方案,同时兼顾现有系统的无感升级改造。
6.第一方面,本发明实施例提供了一种网络功能虚拟化方法,所述服务器包括第一物理网卡和第二物理网卡,所述第一物理网卡连接到交换机的第一端口,所述第二物理网卡连接到交换机的第二端口,所述网络功能虚拟化方法包括:
7.当通过所述第一物理网卡部署工作负载的虚拟端口,携带所述服务器的标识信息查询第一映射关系以确定所述虚拟端口映射到所述第一端口,在所述第一物理网卡和所述第一端口上配置虚拟化网络,所述第一映射关系根据所述服务器的标识信息和所述第一端口的端口标识创建;
8.当通过所述第二物理网卡部署工作负载的虚拟端口,携带所述服务器的标识信息和所述第二物理网卡的网卡标识查询第二映射关系以确定所述虚拟端口映射到所述第二端口,在所述第二物理网卡和所述第二端口上配置虚拟化网络,所述第二映射关系根据所述服务器的标识信息、所述第二物理网卡的网卡标识和所述第二端口的端口标识创建。
9.第二方面,本发明实施例提供了一种网络功能虚拟化装置,包括至少一个处理器和用于与所述至少一个处理器通信连接的存储器;所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够
执行如第一方面所述的网络功能虚拟化方法。
10.第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的网络功能虚拟化方法。
11.本发明实施例提供的网络功能虚拟化方法,至少具有如下有益效果:对于服务器中的多张物理网卡,本发明实施例将物理网卡划分为缺省网卡标识的第一物理网卡和非缺省网卡标识的第二物理网卡,既保证了多网卡形态的工作负载的创建和部署,又保证了兼容现有局点的扩展不受影响,既满足了新的应用需求,又做到了资源的充分利旧,保证了系统的稳定运行和平滑演进。
12.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
13.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的示例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
14.图1是包含sdn部分的nfvi架构图;
15.图2是本发明一个实施例提供的网络功能虚拟化的整体流程图;
16.图3是本发明一个实施例提供的根据部署请求确定对象的物理网卡的流程图;
17.图4是本发明一个实施例提供的根据第一映射关系查询到第一端口的流程图;
18.图5是本发明一个实施例提供的根据第二映射关系查询到第二端口的流程图;
19.图6是本发明一个实施例提供的对第一物理网卡和第一端口配置vlan的流程图;
20.图7是本发明一个实施例提供的对第二物理网卡和第二端口配置vlan的流程图;
21.图8是本发明示例一提供的新建站点场景下多网卡的连接关系示意图;
22.图9是本发明示例一提供的缺省网卡虚拟端口vnic1上线流程图;
23.图10是本发明示例一提供的非缺省网卡虚拟端口vnic1上线流程图;
24.图11是本发明示例一提供的非缺省网卡虚拟端口vnic2上线流程图;
25.图12是本发明示例二提供的现有站点场景下扩展多网卡服务器的连接关系示意图;
26.图13是本发明示例二提供的非缺省网卡虚拟端口上线流程图;
27.图14是本发明示例三提供的现有站点场景下服务器扩展物理网卡的示意图;
28.图15是本发明示例二提供的非缺省网卡虚拟端口上线流程图;
29.图16是本发明实施例提供的网络功能虚拟化装置的结构示意图。
具体实施方式
30.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
31.nfvi(network function virtualisation infrastructure,网络功能虚拟化基
础设施)是用来托管和连接虚拟功能的一组资源。具体来说就是,nfvi是一种包含服务器、虚拟化管理程序、操作系统、虚拟机、虚拟交换机和网络资源的云数据中心。nfv(network function virtualization,网络功能虚拟化)是通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理,从而降低网络昂贵的设备成本,可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。
32.nfvi中的网络虚拟机化方案之一通过sdn(software defined network,软件定义网络)技术实现。sdn包括控制面的控制器(controller,下面简称sdnc)和转发面的交换机或者路由器两部分构成。根据当前sdn技术的定义,控制器和交换机/路由器之间通过openflow(简称of)协议或者netconf或者其他协议下发控制指令,指导交换机上的转发行为配置或数据流转发。
33.硬件方面,交换机和路由器又分为几种角色:对于负责对接外网的称作dc gw(data center gateway,数据中心网关),负责汇聚机架服务器的交换机称作tor(top of rack,架顶)交换机或者leaf交换机,负责连通leaf交换机的骨干交换机称作spine交换机,其逻辑原理示意图参见图1。
34.软件方面,在nfvi之上,有nfv管理和编排(management and orchestration,mano),其内部又分为nfvo(network function virtualization orchestrator,nfv编排器)和vnfm(virtual network feature manager,vnf管理)。对接nfvi层的虚拟化基础设施管理(virtualized infrastructure manager,vim)。vim有多种选择类型,当前业界使用最广的是openstack,很多厂家基于开源openstack进行了二次开发,形成自己的产品,并基于openstack的功能进行增强,以适应各种不同的使用场景,如图1所示。
35.vnf部署在nfvi中,比如5g的upf(user plane function,用户面网元)、smf(session management function,会话管理网元)和amf(access management function,接入管理网元)等,还可以是4g的xgw(xgateway,x网关)、mme(mobility management entity,移动管理实体)、pcrf(policy and charging rules function,策略与计费规则功能单元)和aaa(authentication,authorization,accounting,认证授权和计费)等可以以虚拟机的形式部署在nfvi的vm(virtual machine,虚拟机)上、bm(baremetal,裸金属(服务器))上,或者cm(container,容器)上,其中vm又分为ovs vm,sriov vm和pf-passthough(physical function pass-through),其区别是端口类型不同。这些vm、bm和cm被称作不同的工作负载(workload),工作负载要有对应的虚拟/物理端口((v)nic,(virtual)network interface card)经过物理网卡出服务器,接通到交换机的端口上。
36.当前只支持一台服务器上从一个物理网卡进行业务通信,在实际使用中,容易遇到过如下情况:
37.1)有的场景下物理网卡不支持同时部署ovs vnic和sriov vnic,但是对于某些vnf,又同时需要两种vnic的通信;
38.2)新引入的pf-passthrough是独占网卡的,因此当使用该方式时,服务器上将无法再部署其他的例如ovs或者sriov的vnic;
39.3)某些场景下服务器的网卡带宽有限,需要通过扩展网卡来扩容服务器的通信带宽。
40.因此,对单台服务器上需要支持多个网卡并存,vnf在vm上部署的时候,创建vnic从哪个出口网卡选路,以及如何确定leaf交换机上的端口,以及对已经部署了计算节点(服务器),不要改变其现有配置,保证系统兼容性,这些都还没有解决方案。
41.基于此,本发明实施例提供了一种服务器的网络功能虚拟化方法,装置及计算机存储介质,通过扩展非缺省物理网卡的网卡标识,使得服务器在保留缺省物理网卡的基础上对非缺省网卡进行扩展,保证了现有服务器的兼容和平滑升级演进。
42.参照图2,本发明实施例提供了一种服务器的网络功能虚拟化方法,服务器包括第一物理网卡和第二物理网卡,第一物理网卡连接到交换机的第一端口,第二物理网卡连接到交换机的第二端口,该网络功能虚拟化方法包括但不限于以下步骤s100、步骤s200和步骤s300,其中步骤s100为步骤s200和步骤s300的前置步骤,以方便对步骤s200和步骤s300进行说明,并不表示每次执行步骤s200和步骤s300都需要经过步骤s100。。
43.步骤s100,创建映射关系,对于第一物理网卡,根据服务器的标识信息和第一端口的端口标识创建第一映射关系,对于第二物理网卡,根据服务器的标识信息、第二物理网卡的网卡标识和第二端口的端口标识创建第二映射关系;
44.本发明实施例适用于服务器采用多物理网卡的场景,这些场景包括:新建局点中各个服务器都配置有多张物理网卡、现有局点中在原先单物理网卡的服务器的基础上扩展新的多物理网卡服务器以及现有局点中在原先单物理网卡的服务器中扩展新的物理网卡使该服务器成为多物理网卡服务器;无论哪种场景,在站点的某一服务器中都含有两个以上的物理网卡,如何在部署vnf时确定创建vnic采用哪个网卡出口以及如何确定leaf交换机上的端口等,都需要确定相应的解决方案,同时该解决方案还需要考虑现有局点下服务器的升级改造,尽量避免升级改造对业务造成的影响。
45.可以理解的是,服务器基于网络功能虚拟化技术创建虚拟端口,应事先在服务器内创建有vm,vm启动相对应的虚拟端口,通过虚拟端口与物理网卡之间的对应关系将业务数据发送出服务器到交换机。由前述技术可知,某些场景下物理网卡需要同时部署ovs vnic和sriov vnic,因此物理网卡可以对应多个虚拟端口。本发明实施例中第一物理网卡和第二物理网卡仅作为多物理网卡之间的区分,并不限制服务器仅有两个物理网卡。在实际的硬件连接关系中,物理网卡与交换机的端口之间根据线缆连接方式确定两者的对应关系。应当注意的是,第一物理网卡用于表示缺省网卡标识的物理网卡,第二物理网卡用于表示非缺省网卡标识的物理网卡,服务器通过缺省和非缺省之间以及不同网卡标识之间的区别来为物理网卡部署虚拟端口,因此为方便后面说明,在部分描述中,第一物理网卡表述为缺省网卡,第二物理网卡表述为非缺省网卡,并且缺省网卡只有一个,非缺省网卡可以多个。
46.因此,对于缺省网卡,构建的第一映射关系仅需要服务器的标识信息和第一端口的端口标识,对于非缺省网卡,构建的第二映射关系除了需要服务器的标识信息,还需要加入非缺省网卡的网卡标识,将服务器的标识信息和网卡标识组成键值与第二端口的端口标识构建映射关系,从而实现了服务器中多物理网卡的区分。
47.步骤s200,当通过第一物理网卡部署工作负载的虚拟端口,携带服务器的标识信息查询第一映射关系以确定虚拟端口映射到第一端口,在第一物理网卡和第一端口上配置虚拟化网络;
48.当前一个服务器如果只有一个物理网卡的时候,工作负载创建并上线的时候,采用物理网卡与交换机端口的映射关系进行部署,由于当前服务器和物理网卡是唯一对应的,因此在映射关系表中,记录服务器的标识信息和交换机端口的端口标识,此时相当于物理网卡的网卡标识是缺省的,根据工作负载的创建流程可以直接由服务器的标识信息查找到交换机对应的端口,从而在该物理网卡上部署虚拟端口对交换机端口对应。本步骤中,虽然服务器具有多个物理网卡,但是第一物理网卡对应缺省网卡,与上述单物理网卡的情况类似,因此通过第一物理网卡部署工作负载的时候,只需要用到服务器的标识信息和第一端口之间的映射关系。这一步骤流程兼容现有单物理网卡服务器部署虚拟网络的流程,体现了本发明实施例对原有物理网卡的兼容性。
49.步骤s300,当通过第二物理网卡部署工作负载的虚拟端口,携带服务器的标识信息和第二物理网卡的网卡标识查询第二映射关系以确定虚拟端口映射到第二端口,在第二物理网卡和第二端口上配置虚拟化网络。
50.对于非缺省网卡,为了在部署虚拟端口的过程中与缺省网卡和其他非缺省网卡区分开来,在构建映射关系的时候携带非缺省网卡的网卡标识进行区分,如步骤s300,第二映射关系在构建的时候将服务器的标识信息和第二物理网卡的网卡标识共同作为键值,通过该键值与第二端口的端口标识构建第二映射关系。在通过该非缺省网卡部署工作负载的时候,根据服务器的标识信息和第二物理网卡的网卡标识查找第二映射关系,即可确定与第二物理网卡对应的第二端口,从而基于第二物理网卡与第二端口的对应关系部署工作负载。
51.其中,网卡标识可以是全局唯一的id,也可以是针对不同物理网卡所选用的不同id,具体可以采用物理网卡的port name、pci-id、绑定为逻辑网卡后该逻辑网卡的标识名或其他用于区分网卡的标识,对于缺省网卡,该id为空。
52.通过步骤s200和步骤s300可知,对于多物理网卡的服务器,设置缺省网卡和非缺省网卡可以兼顾纯单网卡、纯多网卡、单网卡多网卡混合组网、单网卡局点改造为多网卡局点等场景,保证现有业务无感知升级,同时基于多网卡架构,可以扩展nfvi系统的灵活度和兼容性,适配更多类型的vnf的部署,有效扩展现有服务器的出口带宽,并提高服务器出端口的可靠性。
53.可以理解的是,参照图3,本发明实施例工作负载的部署由用户发起,因此本发明实施例的步骤还包括:
54.步骤s401,接收用户发起的部署请求,部署请求携带虚拟端口的端口标识和服务器的标识信息;
55.步骤s403,根据服务器的标识信息确定部署虚拟端口的物理网卡;
56.步骤s404,根据虚拟端口的端口标识匹配物理网卡上的虚拟端口。
57.由前述可知,服务器中创建了多个工作负载,因此用户从vim上发起部署请求时,部署请求携带用户指定的虚拟端口的端口标识和用户指定的服务器的标识信息,其中,该部署请求用于创建工作负载的vnic的流程,或者发起创建再发起更新流程。该部署请求的事件和信息会被sdnc plugin感知到,从而根据虚拟端口的端口标识和服务器的标识信息确定网络中具体是哪台服务器中的哪个工作负载,进而根据虚拟端口定位到所采用的物理网卡以及匹配该物理网卡对应的虚拟端口。
58.可以理解的是,部署请求还包括虚拟端口的端口类型,在确定部署虚拟端口的物理网卡之前,还包括:
59.步骤s402,根据虚拟端口的端口类型确定部署请求为层次化端口接入方式。
60.层次化端口绑定为交换机设备提供了一个实现硬件sdnoverlay的接口,通过层次化端口绑定方式,构建工作负载的网络端口与交换机的硬件端口之间的联系。因此,本发明实施例执行虚拟化网络部署的前提是,当前部署请求中虚拟端口对应的端口类型能适用于层次化端口绑定。
61.在一些情况下,网络中设置有拓扑数据库,映射关系存储于拓扑数据库,在接收到部署请求后,sdnc可以到拓扑数据库中查询交换机端口。
62.参照图4,对于缺省网卡中vnic的部署流程,可以参照以下步骤:
63.步骤s210,根据服务器的标识信息在拓扑数据库中查找与服务器的标识信息对应的交换机端口;
64.步骤s220,根据第一映射关系确定服务器的标识信息对应交换机的第一端口。
65.参照图5,对于非缺省网卡中vnic的部署流程,可以参照以下步骤:
66.步骤s310,根据服务器的标识信息和第二物理网卡的网卡标识在拓扑数据库中查找与服务器的标识信息和第二物理网卡的网卡标识对应的交换机端口;
67.步骤s320,根据第二映射关系确定服务器的标识信息和第二物理网卡的网卡标识对应交换机的第二端口。
68.参照图6,上述步骤s200中,在第一物理网卡和第一端口上配置虚拟化网络,具体可以通过以下步骤实现:
69.步骤s230,接收控制面返回的第一vlan配置信息,第一vlan配置信息由控制面根据服务器的标识信息分配得到,控制面基于软件定义网络sdn的控制器确定;
70.步骤s240,根据第一vlan配置信息配置第一物理网卡的vlan值;
71.步骤s250,更新并向控制面发送虚拟端口的端口信息和服务器的标识信息,以使控制面再次查询第一映射关系确定第一端口并根据第一vlan配置信息配置第一端口的vlan值。
72.其中,sdnc plugin在判定当前是层次化端口接入方式之后,根据服务器的标识信息到sdnc上申请该工作负载的虚拟端口的vlan值,sdnc根据服务器的标识信息到拓扑数据库中查询交换机端口,确定该交换机端口对应为第一端口,sdnc在第一端口上对工作负载的vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim,其中vlan值由sdnc分配,有两种实现方式:
73.1)以交换机的物理端口为vlan空间分配vlan,即只要保证在交换机物理端口(例如上述的第一端口)范围内vlan值唯一即可;
74.2)全局分配,即保证在全sdn网络内vlan值唯一,此时,在网络部署的时候,需要指定vlan的分配范围和分配方式。
75.然后vim接收到sdnc返回的vlan值后在服务器对应的物理网卡(第一物理网卡)上配置vlan,更新工作负载的vnic(包括虚拟端口的端口标识、端口类型和服务器的标识信息)并向sdnc发送,sdnc再次根据第一映射关系和服务器的标识信息找到第一端口,sdnc向第一端口配置vlan,该vlan即为上述sdnc分配的vlan。此时,分别在服务器的网卡上、交换
机的网口上配置了相同的vlan值,因此工作负载可以基于该vlan向交换机发送数据报文,也可以从交换机侧接受经过该vlan打标签的vlan报文,实现该工作负载的与其他工作负载或者外网的通信。
76.参照图7,上述步骤s300中,在第二物理网卡和第二端口上配置虚拟化网络,具体可以通过以下步骤实现:
77.步骤s330,接收控制面返回的第二vlan配置信息,第二vlan配置信息由控制面根据服务器的标识信息和第二物理网卡的网卡标识分配得到,控制面基于软件定义网络sdn的控制器确定;
78.步骤s340,根据第二vlan配置信息配置第二物理网卡的vlan值;
79.步骤s350,更新并向控制面发送虚拟端口的端口信息、服务器的标识信息和第二物理网卡的网卡标识,以使控制面再次查询第二映射关系确定第二端口并根据第二vlan配置信息配置第二端口的vlan值。
80.其中,sdnc plugin在判定当前是层次化端口接入方式之后,根据服务器的标识信息+第二物理网卡的网卡标识到sdnc上申请该工作负载的虚拟端口的vlan值,sdnc根据服务器的标识信息到拓扑数据库中查询交换机端口,确定该交换机端口对应为第二端口,sdnc在第一端口上对工作负载的vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim,其中vlan值由sdnc分配,vim接收到sdnc返回的vlan值后在服务器对应的物理网卡(第二物理网卡)上配置vlan,更新工作负载的vnic(包括虚拟端口的端口标识、端口类型、服务器的标识信息和第二物理网卡的网卡标识)并向sdnc发送,sdnc再次根据第二映射关系、第二物理网卡的网卡标识和服务器的标识信息找到第二端口,sdnc向第二端口配置vlan,该vlan即为上述sdnc分配的vlan。此时,分别在服务器的网卡上、交换机的网口上配置了相同的vlan值,因此工作负载可以基于该vlan向交换机发送数据报文,也可以从交换机侧接受经过该vlan打标签的vlan报文,实现该工作负载的与其他工作负载或者外网的通信。
81.可以理解的是,为了在多网卡服务器中选定第一物理网卡和第二物理网卡,可以参照以下之一的方式进行选定:
82.将服务器中网卡标识值最小的物理网卡作为第一物理网卡;
83.将具备ovs属性的物理网卡作为第一物理网卡;
84.将用户的预设配置所选定的物理网卡作为第一物理网卡。
85.通过上述步骤,既保证了多网卡形态的工作负载的创建和部署,又保证了兼容现有局点的扩展不受影响,既满足了新的应用需求,又做到了资源的充分利旧,保证了系统的稳定运行和平滑演进。
86.下面以三个实际示例对本发明实施例的网络功能虚拟化方法进行说明:
87.示例一,为在新建局点的全部服务器中都采用多物理网卡(nic)部署的示例。
88.参照图8,是新建局点中所有服务器都以多物理网卡形态部署的情况,即无单网卡服务器和多网卡服务器混合部署,以其中单个服务器配置了两个物理网卡(nic1和nic2)为例进行说明(并不排除一台服务器有大于两个物理网卡的情况)。
89.在图8中,服务器中创建了三个虚拟机vm,分别为vm1、vm2和vm3,其中vm1只启用了一个虚拟机端口,vm2只启用了一个虚拟机端口,vm3上启用了两个虚拟机端口。通过本发明
实施例的机制,vm1和vm3的一个虚拟机端口都选择从物理网卡nic1出服务器,vm2和vm3的另一个虚拟机端口都选择从物理网卡nic2出服务器(虚线表示ovs vnic,实线表示sriov vnic或者其他)。
90.服务器在部署时,已经在vim上设定nic1为缺省网卡,其余的物理网卡比如nic2为非缺省网卡。sdnc上在导入映射关系的时候,需要区分对待:
91.对于缺省网卡,只配置服务器(compute id-1)和交换机端口(port-1)的映射关系;
92.对于非缺省网卡,需要配置计算节点服务器(compute id-1)、nic2 id和交换机端口(port-2)的映射关系;
93.如下表1:
94.keyvaluecompute id-1switch port-1compute id-1+nic2 idswitch port-2
95.表1.示例一的映射关系表
96.对于上述三个vm部署vnic,可以按照下面方式处理:
97.1)当创建vm1的vnic1的时候,因为是在缺省网卡(nic1)上创建,云平台(如vim/tecs/openstack)只携带compute id-1,sdnc plugin和sdnc会通过compute id-1查询到leaf交换机的port-1,并在port-1上配置相关vlan信息;
98.2)当创建vm2的vnic1的时候,因为是在非缺省网卡(nic2)上创建,云平台需要携带compute id-1和nic2的id,sdnc plugin和sdnc会通过compute id-1和nic2的id查询到leaf交换机的port-2,并在port-2上配置相关vlan信息;
99.3)当创建vm3的vnic1的时候,因为是在缺省网卡(nic1)上创建,云平台(如vim/tecs/openstack)只携带compute id-1,sdnc plugin和sdnc会通过compute id-1查询到leaf交换机的port-1,并在port-1上配置相关vlan信息;
100.4)当创建vm3的vnic2的时候,因为是在非缺省网卡(nic2)上创建,云平台需要携带compute id-1和nic2的id,sdnc plugin和sdnc会通过compute id-1和nic2的id查询到leaf交换机的port-2,并在port-2上配置相关vlan信息;
101.具体部署流程参见图9至图11,分步骤解释如下:
102.对于vm1的vnic1端口创建过程:
103.s501,user从sdnc界面上预配置映射关系;
104.s502,sdnc在拓扑数据库中存储该映射关系;
105.s503,user从vim上发起创建/更新vnic端口的流程,携带vnic端口id、端口类型和compute id等信息,该事件和信息会被sdnc plugin感知到;
106.s504,sdnc plugin根据vnic端口id、compute id-1以及端口类型判定是层次化端口接入场景,sdnc plugin根据compute id-1到sdnc上申请该vnic端口的vlan值;
107.s505,sdnc根据compute id-1到拓扑数据库中查询交换机端口,根据上述映射关系,可以获取到交换机的端口id,比如,输入的是compute id-1,返回的是switchport-1;sdnc在该端口上对vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim;
108.s506,vim在nic1上配置vlan;
109.s507,更新vnic端口(携带vnic端口id、端口类型和compute id-1);
110.s508,sdnc再次根据映射关系和compute id-1找到对应的交换机端口port-1;
111.s509,sdnc向对应的交换机端口上配置vlan,该vlan即为s505步骤分配的vlan。
112.对于vm2的vnic1端口创建过程:
113.s511,user从sdnc界面上预配置映射关系;
114.s512,sdnc在拓扑数据库中存储该映射关系;
115.s513,user从vim上发起创建/更新vnic端口的流程,携带vnic端口id、端口类型、compute id-1和nic2 id等信息,该事件和信息会被sdnc plugin感知到;
116.s514,sdnc plugin根据vnic端口id、compute id-1以及端口类型判定是层次化端口接入场景,sdnc plugin根据compute id-1+nic2 id到sdnc上申请该vnic端口的vlan值;
117.s515,sdnc根据compute id-1+nic2 id到拓扑数据库中查询交换机端口,根据上述映射关系,可以获取到交换机的端口id,比如,输入的是compute id-1+nic2 id,返回的是switch port-2;sdnc在该端口上对vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim;
118.s516,vim在nic2上配置vlan;
119.s517,更新vnic端口(携带vnic端口id、端口类型、compute id-1和nic2 id);
120.s518,sdnc再次根据映射关系和compute id-1+nic2 id找到对应的交换机端口port-2;
121.s519,sdnc向对应的交换机端口上配置vlan,该vlan即为s516步骤分配的vlan。
122.对于vm3的vnic1端口创建过程,同步骤s501至s509;
123.对于vm3的vnic2端口创建过程:
124.s521,user从sdnc界面上预配置映射关系;
125.s522,sdnc在拓扑数据库中存储该映射关系;
126.s523,user从vim上发起创建/更新vnic端口的流程,携带vnic端口id、端口类型、compute id-1和nic2 id等信息,该事件和信息会被sdnc plugin感知到;
127.s524,sdnc plugin根据vnic端口id、compute id-1以及端口类型判定是层次化端口接入场景,sdnc plugin根据compute id-1+nic2 id到sdnc上申请该vnic端口的vlan值;
128.s525,sdnc根据compute id-1+nic2 id到拓扑数据库中查询交换机端口,根据上述映射关系,可以获取到交换机的端口id,比如,输入的是compute id-1+nic2 id,返回的是switch port-2;sdnc在该端口上对vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim;
129.s526,vim在nic2上配置vlan;
130.s527,更新vnic端口(携带vnic端口id、端口类型、compute id-1和nic2 id);
131.s528,sdnc再次根据映射关系和compute id-1+nic2 id找到对应的交换机端口port-2;
132.s529,sdnc向对应的交换机端口上配置vlan,该vlan即为s526步骤分配的vlan。
133.示例二,为在现有局点中扩容新服务器的示例。即原有的服务器还是使用原有的机制保证虚拟端口的创建和上线,新扩容的服务器均以多物理网卡形态部署的情况。
134.参照图12,是现有服务器和新扩容服务器的部署情况,下面以单物理网卡的现有
服务器和两个物理网卡(nic1和nic2)的扩容服务器做对比的混合组网为例进行说明(并不排除新扩容的服务器有大于两个物理网卡的情况)。
135.在图12中,服务器1(图中以compute node1表示)为现有服务器,创建了三个虚拟机分别为vm1、vm2和vm3,服务器1的所有虚拟端口均按照原有流程方式上线,服务器2(图中以compute node1表示)为扩容服务器,创建了三个虚拟机分别是vm4、vm5和vm6,其中vm4只启用了一个虚拟机端口,vm5只启用了一个虚拟机端口,vm6上启用了两个虚拟机端口。通过本发明实施例的机制,vm4和vm5的一个虚拟机端口都选择从物理网卡nic1出服务器2,vm5和vm6的另一个虚拟机端口都选择从物理网卡nic2出服务器2(虚线表示ovs vnic,实线表示sriov vnic或者其他)。
136.服务器2在部署时,已经在vim上设定nic1为缺省网卡,其余的物理网卡比如nic2为非缺省网卡。sdnc上在导入映射关系的时候,需要区分对待:
137.对于缺省网卡,只配置服务器(compute id-2)和交换机端口(port-1)的映射关系;
138.对于非缺省网卡,需要配置计算节点服务器(compute id-2)、nic2 id和交换机端口(port-2)的映射关系;
139.如下表2:
140.keyvaluecompute id-2switch2 port-1compute id-2+nic2 idswitch2 port-2
141.表2.示例二的映射关系表
142.对于上述服务器2的三个vm部署vnic,可以按照下面方式处理:
143.1)当创建vm4的vnic1、vm6的vnic1的时候,因为是在缺省网卡(nic1)上创建,云平台(如vim/tecs/openstack)只携带compute id-2,sdnc plugin和sdnc会通过compute id-2查询到leaf交换机2的port1,并在port-1上配置相关vlan信息;
144.2)当创建vm5的vnic1、vm6的vnic2的时候,因为是在非缺省nic(nic2)上创建,云平台需要携带compute id-2和nic2的id,sdnc plugin和sdnc会通过compute id-2和nic2的id查询到leaf交换机2的port-2,并在port-2上配置相关vlan信息;
145.具体部署流程参见图13,分步骤解释如下:
146.s601,user从sdnc界面上预配置映射关系;
147.s602,sdnc在拓扑数据库中存储该映射关系;
148.对于vm1的vnic1、vm2的vnic1、vm3的vnic1和vnic2、vm4的vnic、vm6的vnic1端口创建过程,同步骤s503-s509。
149.对于vm5的vnic1和vm6的vnic2端口创建过程,如下:
150.s603,user从vim上发起创建/更新vnic端口的流程,携带vnic端口id、端口类型、compute id-2和nic2 id等信息,该事件和信息会被sdnc plugin感知到;
151.s604,sdnc plugin根据vnic端口id、compute id-2以及端口类型判定是层次化端口接入场景,sdnc plugin根据compute id-2+nic2 id到sdnc上申请该vnic端口的vlan值;
152.s605,sdnc根据compute id-2+nic2 id到拓扑数据库中查询交换机端口,根据上述映射关系,可以获取到交换机的端口id,比如,输入的是compute id-2+nic2 id,返回的
是switch2 port-2;sdnc在该端口上对vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim;
153.s606,vim在nic2上配置vlan;
154.s607,更新vnic端口(携带vnic端口id、端口类型、compute id-2和nic2 id);
155.s608,sdnc再次根据映射关系和compute id-2+nic2 id找到对应的交换机端口port-2;
156.s609,sdnc向对应的交换机端口上配置vlan,该vlan即为s606步骤分配的vlan。
157.示例三,为现有局点中原有服务器扩展新物理网卡的示例。即原有服务器通过扩展物理网卡的形式进行带宽扩容,服务器的原有物理网卡保持作为缺省网卡,使用原有的机制保证虚机端口的创建和上线;新扩展物理网卡后的服务器改为多网卡形态部署。
158.参照图14,是现有服务器改造前后的部署情况,下面以以改造前后的单物理网卡和两个物理网卡(原有物理网卡nic1和扩容物理网卡nic2)做对比进行说明(并不排除该服务器有大于两个物理网卡的情况)。
159.在图14中,服务器扩展物理网卡后,保持原有的三个虚拟机分别为vm1、vm2和vm3,vm1、vm2和vm3原先的vnic1可以保持原有流程方式上线,vm3启用vnic2,通过从非缺省网卡nic2出服务器,走下面新流程上线(虚线表示ovs vnic,实线表示sriov vnic或者其他)。sdnc上在更新导入映射关系的时候,对于新扩展的非缺省网卡,增加配置compute id、nic2 id和交换机端口port-2的映射关系;
160.如下表3
161.keyvaluecompute id+nic2 idswitch2 port-2
162.表3.示例三的映射关系表
163.对于上述服务器的三个vm部署vnic,可以按照下面方式处理:
164.1)当创建vm1的vnic1、vm2的vnic1和vm3的vnic1的时候,因为是在缺省网卡(nic1)上创建,云平台(如vim/tecs/openstack)只携带compute id,sdnc plugin和sdnc会通过compute id查询到leaf交换机的port1,并在port-1上配置相关vlan信息;
165.2)当创建vm3的vnic2的时候,因为是在非缺省nic(nic2)上创建,云平台需要携带compute id和nic2的id,sdnc plugin和sdnc会通过compute id和nic2的id查询到leaf交换机2的port-2,并在port-2上配置相关vlan信息;
166.具体部署流程参见图15,分步骤解释如下:
167.s701,user从sdnc界面上预配置映射关系;
168.s702,sdnc在拓扑数据库中存储该映射关系;
169.对于vm1的vnic1、vm2的vnic1和vm3的vnic1端口创建过程,同步骤s503-s509。
170.对于vm3的vnic2端口创建过程,如下:
171.s703,user从vim上发起创建/更新vnic端口的流程,携带vnic端口id、端口类型、compute id和nic2 id等信息,该事件和信息会被sdnc plugin感知到;
172.s704,sdnc plugin根据vnic端口id、compute id以及端口类型判定是层次化端口接入场景,sdnc plugin根据compute id+nic2 id到sdnc上申请该vnic端口的vlan值;
173.s705,sdnc根据compute id+nic2 id到拓扑数据库中查询交换机端口,根据上述
映射关系,可以获取到交换机的端口id,比如,输入的是compute id+nic2 id,返回的是switch port-2;sdnc在该端口上对vnic端口分配vlan值,并将vlan值依次反馈给sdnc plugin和vim;
174.s706,vim在nic2上配置vlan;
175.s707,更新vnic端口(携带vnic端口id、端口类型、compute id和nic2 id);
176.s708,sdnc再次根据映射关系和compute id+nic2 id找到对应的交换机端口port-2;
177.s709,sdnc向对应的交换机端口上配置vlan,该vlan即为s706步骤分配的vlan。
178.综上三个势力,通过扩展非缺省网卡nic的id,而且是仅对非缺省网卡进行扩展,既保证了多物理网卡形态的vm的创建和部署,又保证了兼容现有局点的不受影响,既满足了新的应用需求,有做到了资源的充分利旧,保证了系统的稳定运行和平滑演进。
179.本发明实施例的还提供了一种网络功能虚拟化装置,包括至少一个处理器和用于与至少一个处理器通信连接的存储器;存储器存储有能够被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述的网络功能虚拟化方法。
180.参照图16,以网络功能虚拟化装置1000中的控制处理器1001和存储器1002可以通过总线连接为例。存储器1002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器1002可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器1002可选包括相对于控制处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至网络功能虚拟化装置1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
181.本领域技术人员可以理解,图16中示出的装置结构并不构成对网络功能虚拟化装置1000的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
182.本发明实施例的还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,被图16中的一个控制处理器1001执行,可使得上述一个或多个控制处理器执行上述方法实施例中的网络功能虚拟化方法,例如,执行以上描述的图2中的方法步骤s100至步骤s300、图3中的方法步骤s401至步骤s403、图4中的方法步骤s210至步骤s220、图5中的方法步骤s310至步骤s320、图6中的方法步骤s230至步骤s250和图7中的方法步骤s330至步骤s350。
183.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
184.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、
数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
185.以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1