一种融合物理机、虚拟机与容器网络设置的系统及方法与流程

文档序号:13476071阅读:852来源:国知局

本发明涉及云计算网络领域,特别是一种融合物理机、虚拟机与容器网络设置的系统及方法。



背景技术:

随着云计算的发展,很多物理机上业务迁移到了虚拟机、容器上。目前很多云平台都是管理虚拟机或者容器的分离的平台,而容器的网络是由容器平台自身管理、虚拟机的网络管理也是由虚拟机的平台管理,这样会有一下问题:

(1)容器的网络、虚拟机的网络由两大平台进行管理,管理比较复杂;

(2)容器、虚拟机的网络数据没有交互,导致业务系统的网络受到限制;

(3)传统的物理机运行的业务网络也没有和虚拟机、容器的业务网络进行统一的对接,需要交互时,需要慎重的考虑。



技术实现要素:

本发明解决的技术问题之一在于提出了一种融合物理机、虚拟机与容器网络设置系统;解决现有技术中物理机、虚拟机与容器网络设置各自独立管理存在的问题。

本发明解决的技术问题之二在于提出一种融合物理机、虚拟机与容器网络设置的方法。

本发明解决上述技术问题之一的技术方案是:

所述的系统主要包括网络控制器、计算控制器和计算组件;

所述网络控制器实现:

(11)负责整个网络数据的持久化记录,其中包括网络上的端口,端口上的限速设置记录;

(12)将数据通过消息通道发送至网络其他组件,并提供消息通道让网络其他组件获取其数据;

(13)对外提供api调用,api包含新建、关联、更新、查询网络端口接口;

所述计算控制器实现:

(21)主要负责物理机、容器、虚拟机的相关网络参数设置,以及容器、虚拟机的创建控制;

(22)调用网络控制器的端口创建、端口关联相关api、并将端口的关联状态为“关联中”;

(23)和计算组件通过消息通道或api方式进行通信;

所述计算组件实现:

(31)接受计算控制器的设置网络消息或对外提供关联物理机、容器或虚拟机的设置网络接口;

(32)根据网络端口标识获取端口的网络信息,其中包含mac、ip、域名服务器、网关地址网络信息;

(33)根据mac、端口标识建立物理机、容器或虚拟机的网络接口;

(34)根据端口关联的物理机、容器或虚拟机类型,调用物理机、容器、虚拟机的网络驱动模块建立网络接口;

(35)在按照统一关联的方式将网络接口和虚拟交换机的端口进行关联。

物理机的网络驱动模块实现:

(1)建立veth对,其中veth对的名称为“前端/后端物理机的标识”,“前端物理机的标识”的网络接口,其mac地址设置为端口中的mac;

(2)根据网络端口的信息设置前端网络接口的ip地址信息。

容器的网络驱动模块实现:

(1)根据容器的标识获取容器网络所在的命名空间;

(2)在容器的命名空间中建立veth对,其中veth对的名称为“前端/后端容器的标识”,“前端/后端容器的标识”的网络接口在命名空间内部;

(3)根据网络端口的信息设置前端网络接口的网络,包括mac、ip地址、域名、网关。

虚拟机的网络驱动模块实现配置libvirt中的网络参数的mac地址为端口的mac地址;网络后端接口名称为“后端虚拟机的标识”。

本发明解决上述技术问题之一的技术方案是:

所述方法主要步骤如下:

(1)在网络控制器上新建物理机、容器或虚拟机需要使用的网络端口信息;

(2)计算控制器调用网络控制器的关联接口将物理机、容器或虚拟机的标识与网络端口进行关联;

(3)计算控制器发送网络端口标识给计算组件,计算组件收到端口标识后,向网络控制器获取网络端口的信息,根据端口信息创建物理机、虚拟机或容器需要使用的网络接口,将网络接口和本地的交换机建立端口连接;根据网络ip信息设置物理机、容器或虚拟机的通信的网络地址信息;

(4)交换机控制器在检查到有新增端口连接后,将向网络控制器获取对应的端口信息并设置相关的网络规则。

网络控制器新建网络端口信息包括:

(1)提供api新建网络端口,请求参数中包含了端口的名称、网络的标识以及子网的标识,其中标识具有唯一性;

(2)创建端口的过程包含了端口的ip、mac地址分配,以及设置端口的关联状态为“未关联”;

(3)创建成功后,接口反馈端口标识;创建失败,则反馈错误信息。

所述的关联接口包括:

(1)关联接口请求参数中包含了关联物理机、容器或者虚拟机的标识,端口标识,以及物理机或宿主机的主机名称;

(2)关联信息包含被关联的端口标识、主机名称、关联的标识、关联的状态会持久化存储;

(3)关联状态包含关联中、关联成功、关联失败、未关联。

网络接口和虚拟交换机进行关联,包括:

(1)将后端标识的网络接口添加到虚拟交换机的端口上;

(2)其端口名称为“后端标识”,其附加的mac地址为端口mac,外部的id为端口标识。

(3)如果第2步操作成功,则调用网络控制器的更新端口接口更新关联状态为“关联成功”;否则,调用网络控制器的更新端口接口关联更新关联状态为“关联失败”。

交换机控制器设置端口的vlan标识以及端口的流规则信息。

本发明方案的有益效果如下:

(1)建立一种通用的设置物理机、虚拟机、容器的网络方法;

(2)在此基础上实现物理机、虚拟机、容器的统一网络管控;

(3)方便物理机、虚拟机、容器上的业务系统通信与安全保护。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图。

具体实施方式

如图1所示,本发明系统的实施方法如下:

1、在网络控制器上新建网络端口信息

(1)其网络控制器采用开源neutron组件二次开发实现,在新增端口接口上添加参数使用标识参数,支持compute:machine,compute:docker,compute:vm或者compute:none标识,对外提供api,其中compute:machine为物理机使用端口标识,compute:docker容器使用标识,compute:vm虚拟机使用标识或者compute:none没有使用的端口;

(2)将标识保存至ports表的device_owner中,反馈新建的端口id,新增联状态字段bond,其状态为“unbonding”。

2、计算控制器调用网络控制器的关联接口将物理机、容器或虚拟机的标识与网络端口进行关联

采用开源neutron组件二次开发关联接口二次开发,更新端口的标识状态为“bonding”,device_id为物理机、容器、虚拟机的id,其中bonding为关联中的状态。

3、计算控制器发送网络标识给计算组件

通过直接调用计算组件的api接口,发送请求参数为端口id;计算组件采用tomcat下的服务发布。

4、计算组件创建网络接口

调用neutron组件查询端口api,获取到device_owner的类型,一下以device_owner为物理机网络接口compute:machine为例说明:

首先建立veth对:

iplinkaddpre_machineidtypepeernameaft_machineid

设置pre_machineid的网络信息

ifconfigpre_machineid192.168.10.20/24

设置pre_machineid的mac地址为端口mac

这样物理机就可以拥有192.168.10.20网络了。

5、添加网络接口到虚拟交换机上

ovs-vsctl--timeout=120----if-existsdel-portaft_machineid--add-portbr-intpre_machineid--setinterfaceaft_machineidexternal-ids:iface-id=portidexternal-ids:iface-status=activeexternal-ids:attached-mac=macaddrexternal-ids:vm-uuid=machineid

其中macaddr为port的mac地址。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1