Tricircle 是一个由 OpenStack 社区维护的项目,旨在为跨多个 OpenStack 云环境提供联邦网络服务和资源管理。
Tricircle 允许用户在多个 OpenStack 云环境之间创建和管理虚拟网络,并且跨各个云环境之间的虚拟机可以进行通信和互操作。它提供了一种方法来跨不同的云环境共享网络资源,实现云资源的灵活扩展和管理。
Tricircle 有四个模块组成,上图橙色方块表示:
1、Central Plugin
Local Plugin是一个插件嵌入在Central Neutron Server进程中,嵌入在Neutorn API 与 Core Plugin之间的一个很薄的层,主要目的是实现与Local Neutron的交互,通过Plugin的方式不用改动原有的Neutron代码。
2、Local Plugin
Local Plugin是一个插件嵌入在Local Neutron Server进程中,嵌入在Neutorn API 与 Core Plugin之间的一个很薄的层,主要目的是实现与Central Neutron的交互,通过Plugin的方式不用改动原有的Neutron代码。
3、Admin API
Admin API 是一个独立的进程,部署在Central节点上。管理Tricircle自己的资源,对外提供API。管理的资源有三个Pod,Job,Routing。
Pod资源数据库查询如下:
Pod资源很好理解,维护了整个大的集群的关系,哪个是Central?(Central所属pod_az_name为空),Central下面有哪些Local Region?,每个Region下面有哪些AZ?
Job资源数据查询如下:async_job_logs为历史已经处理过的job
Job资源理解:由Central Plugin或者Admin API 下发消息到Local Neutron,需要通过异步方式发送时,需要发给Xjob来分发处理。这种消息就叫做job。
Routing资源数据库查询如下:
Routing资源理解:维护Central Neutron统一管理的网络资源(port、subnet、network、router、security group等)在哪个Local Neutron上。
4、XJob
Xjob模块是一个独立进程,部署在Central Neutron上,他的意义是提高消息的并发处理的能力,当Central Neutron要将消息发送到下面的Local Neutron时,可以将部分消息交给 Xjob后,再去处理其它逻辑。而Xjob可以并行将消息分发到各个Local Neutron。从而加快消息的处理速度。