Bug 1712001

Summary: [RFE] Distributed image import
Product: Red Hat OpenStack Reporter: Erno Kuvaja <ekuvaja>
Component: openstack-glanceAssignee: Erno Kuvaja <ekuvaja>
Status: ON_QA --- QA Contact: msava
Severity: medium Docs Contact: Jenny-Anne Lynch <jelynch>
Priority: high    
Version: 16.0 (Train)CC: akekane, athomas, bdobreli, cyril, eglynn, gcharot, gfidente, jelynch, johfulto, jschluet, mariel, msava, nlevinki, pgrist, scohen, spower, yrabl
Target Milestone: z2Keywords: FutureFeature, TestOnly, Triaged
Target Release: ---Flags: astillma: needinfo? (ekuvaja)
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-glance-22.1.0-0.20210917121835.8499efd.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2174868, 2174876, 2174885    
Bug Blocks: 1706910, 1466391, 1934989    

Description Erno Kuvaja 2019-05-20 15:14:05 UTC
As glance-api service is fully independent and stateless the different nodes do not know nor care if they are operating alone or in a cluster. To address some of the distributed models we need to change that and build understanding between the nodes that there is others in same environments that might have different needs or resources available.

Main concerns to address at the beginning are:

0) Cache management
   - For improved usability we need to move some of the caching functionality from node-local tooling to the API. To be able to manage pre-caching and listing cached images in distributed or HA-environments the glance-api nodes needs to be able to talk to eachother so that the commands does not need to be targeted to individual nodes behind loadbalancers.

1) Image Import
   - Currently if "glance-local" import method is availble the glance-api nodes needs to share common filesystem or user needs to (be able) target individual nodes so they can issue the import call to the node that has the image staged. Once the api nodes can communicate with eachother the work can be done by node that has access to the data regardless if it received the original Rest API call.

2) Copying Image data between image stores
   - The call to copy a image to another store in the environment might not be possible from the node that receives the Rest API call. To implement asynchronous copy operation we need, yet again, be able to have the nodes communicating with each other to ensure that the work can be done by node that has access to both, source and destination.

Implementation:

Utilizing RabbitMQ as that is already deployment dependency and is proven technology for such purpose. Unfortunately oslo_messaging does not provide all needed Rabbit features to utilize it in this work so we will need to work directly with available clients and build the boilerplating orselves.

Comment 9 Pranali Deore 2021-05-20 05:33:28 UTC
*** Bug 1654408 has been marked as a duplicate of this bug. ***

Comment 11 Cyril Roelandt 2021-11-24 21:32:36 UTC
The patches were included in upstream/wallaby, so they are available in the latest Glance downstream RPM.

Comment 24 Lukas Svaty 2023-06-16 08:13:29 UTC
Bulk moving target milestone to GA after the release of Beta on 14th June '23.

Comment 29 Lon Hohberger 2023-08-16 10:33:42 UTC
According to our records, this should be resolved by openstack-glance-22.1.2-1.20230310130836.883fc8a.el9ost.  This build is available now.