Many OpenStack Tacker instances deployment¶
https://blueprints.launchpad.net/tacker/+spec/many-tacker-instances
This specification describes the enhancement of OpenStack Tacker deployment for scalable and flexible depending on usecase and deployment scale of VNF instance. Current OpenStack Tacker allows to deploy OpenStack Tacker itself as single instance, and scale up by high performance compute is required if large scale deployment of VNF instance is necessary. However, scale up approach sometimes faces limitation issue and distributed OpenStack Tacker instance is required for reliability. For example, OpenStack Tacker needs to manage some thousands of VNF insntance for vRAN usecase, and one OpenStack Tacker instance manages less than some hundreds of VNF instance to reduce the impact when the OpenStack Tacker is failure.
This spec proposes to extend OpenStack Tacker deployment to support scale out/in approach for scalablity and reliability by improving single instance concept of current OpenStack Tacker implementation. The scope of this version is only scalablity of OpenStack Tacker instance, and assignment of VNF instance for particular OpenStack Tacker instance is addressed future version.
Problem description¶
Current OpenStack Tacker implementation assumes 1:1 mapping between OpenStack Tacker and database. Therefore, OpenStack Tacker faces issue for multiple OpenStack Tacker instances as following when multiple OpenStack Tacker synchronizes with database:
conflict of locks to synchronize between OpenStack Tacker conductor and database.
many database synchronization when many Tacker instance runs due to unit of tacker conductor synchronizing database is per Tacker instance.
huge memory usage when number of VNF instances are huge by all OpenStack Tacker conductor instances handles all VNF instaces (out of scope of this spec)
slow query by API GW for huge number of VNF instances by 1 API GW queries all VNF instances (out of scope of this spec)
Use Cases¶
As an operator, I want to deploy multiple OpenStack Tacker instance for large scale VNF instance deployment.
As an operator, I want to assign particular VNF instance to particular OpenStack Tacker instance (out of scope of this spec)
Proposed change¶
This spec proposes to improve synchronization mechanism between OpenStack Tacker conductor and database. 1st change is “tacker/sol_refactored/conductor/conductor_v2.py” and “tacker/sol_refactored/conductor/v2_hook.py” will change lock mechanism from conductor instance to no lock to avoid conflict of lock for database. 2nd change is only leader conductor instance synchronize with database to avoid synchronization by all conductor insntances. Leader selection mechanism is TBD.
Alternatives¶
None.
Data model impact¶
None.
REST API impact¶
None.
Security impact¶
None.
Notifications impact¶
None.
Other end user impact¶
TBD
Performance Impact¶
Improves speed of synchronization between conductor and database by multiple conductor instances and saves memory usage.
Other deployer impact¶
None.
Developer impact¶
When developing new features, developer needs to consider the possibility of multiple instances conflict for database access.
Upgrade impact¶
None.
Implementation¶
Assignee(s)¶
TBD
Work Items¶
TBD
Dependencies¶
TBD
Testing¶
OpenStack Tacker pipeline can be test, because feature is not changed.
Documentation Impact¶
None.
References¶
None.