Trio2o is to provide APIs gateway for multiple OpenStack clouds to act as a single OpenStack cloud.
Go to file
Dongfeng Huang 84396eb456 The framework of dynamic pod binding
1. What is the problem?
Originally this patch was committed to the Tricircle and provided
dynamic pod binding support. After splitting this feature should be
put in Trio2o. So we plan to synchronize this patch from Gerrit
to Trio2o. You can find the old patch on Gerrit here[1].

In the Trio2o, each tenant is bound to multiple pods, where it creates
various types of resources. However such a binding relationship should
be dynamic instead of static. For instance, when some resources in a pod
are exhausted, tenant needs to be bound to a new pod in the same AZ.

2. What is the solution to the problem?
To deal with the above problem, the Trio2o dynamically binds tenants
to pod which has available resources. We call this feature dynamic pod
binding, which is explained in the spec[2] in detail. In this patch, we
only try to bind a tenant to a pod dynamically, when she tries to create
a VM.

3. What the features need to be implemented to the Trio2o to realize
the solution?
When a tenant creates a VM, the Trio2o first selects all available
pods for her. Then by filtering and weighing the pods, the Trio2o
selects the most suitable pod for the tenant. Next, the Trio2o queries
database for current binding relationship of the tenant. If the tenant
is not bound to any pod, we create a new binding relationship, which
binds the tenant to the selected pod. If the tenant is already bound to
a pod, and the pod is not the one selected by the Trio2o, we update
current binding relationship, which binds the tenant to a new pod. If
the tenant is already bound to a pod, and the pod is exactly the one
selected by the Trio2o, the Trio2o does nothing.

[1] https://review.openstack.org/#/c/356187
[2] https://review.openstack.org/#/c/306224

Change-Id: I1c884ce47ace919f732d98ee154bdd59ed22cd74
2017-04-12 15:01:52 +08:00
cmd Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
devstack Synchronized patch: Nova API-Gateway Server Action Support(part1) 2017-04-12 09:51:31 +08:00
doc/source Enable tempest test 2017-02-06 00:15:28 -05:00
etc Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
releasenotes Merge "Enable release notes translation" 2016-11-17 07:44:19 +00:00
specs Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
trio2o The framework of dynamic pod binding 2017-04-12 15:01:52 +08:00
.coveragerc Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
.gitignore Change the gate to OpenStack infrastrucure 2015-12-15 12:09:09 +08:00
.gitreview Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
.testr.conf Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
CONTRIBUTING.rst Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
HACKING.rst Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
LICENSE Add source code to Tricircle 2014-09-25 15:56:40 +08:00
README.rst Remove networking related code from the Trio2o 2016-11-14 02:12:48 -05:00
requirements.txt Updated from global requirements 2017-04-07 06:18:25 +00:00
setup.cfg The framework of dynamic pod binding 2017-04-12 15:01:52 +08:00
setup.py Updated from global requirements 2017-04-07 06:18:25 +00:00
test-requirements.txt Fix the issue in tempest test for volumes 2017-04-10 12:46:05 +08:00
tox.ini Enable tempest test 2017-02-06 00:15:28 -05:00

README.rst

Trio2o

The Trio2o provides an OpenStack API gateway to allow multiple OpenStack instances, spanning in one site or multiple sites or in hybrid cloud, to be managed as a single OpenStack cloud.

The Trio2o and these managed OpenStack instances will use shared KeyStone (with centralized or distributed deployment) or federated KeyStones for identity management.

The Trio2o presents one big region to the end user in KeyStone. And each OpenStack instance called a pod is a sub-region of the Trio2o in KeyStone, and usually not visible to end user directly.

The Trio2o acts as OpenStack API gateway, can handle OpenStack API calls, schedule one proper OpenStack instance if needed during the API calls handling, forward the API calls to the appropriate OpenStack instance.

The end user can see avaialbility zone(AZ) and use AZ to provision VM, Volume, through the Trio2o. One AZ can include many OpenStack instances, the Trio2o can schedule and bind OpenStack instance for the tenant inside one AZ. A tenant's resources could be bound to multiple specific bottom OpenStack instances in one or multiple AZs automatically.