Jump to: navigation, search

Difference between revisions of "Image handling in edge environment"

Line 27: Line 27:
 
** Sensitivity for network connection loss is not clear
 
** Sensitivity for network connection loss is not clear
  
== Several Glances with an independent syncronisation service ==
+
== Several Glances with an independent syncronisation service, sych via Glance API ==
 
Every edge cloud instance have its Glance instance. There is a synchronisation service what is able to instruct the Glances to do the synchronisation. The synchronisation of the image data is done using Glance API-s.<br/>
 
Every edge cloud instance have its Glance instance. There is a synchronisation service what is able to instruct the Glances to do the synchronisation. The synchronisation of the image data is done using Glance API-s.<br/>
 
[[File:Glance-edge-architecture-synch-service.PNG]]<br/>
 
[[File:Glance-edge-architecture-synch-service.PNG]]<br/>
Line 35: Line 35:
 
** Can support multiple OpenStack versions in the different edge cloud instances
 
** Can support multiple OpenStack versions in the different edge cloud instances
 
** Can be extended to support multiple VIM types
 
** Can be extended to support multiple VIM types
 +
* Cons
 +
** Needs a new synchronisation service
 +
 +
== Several Glances with an independent syncronisation service, synch using the backend ==
 +
Every edge cloud instance have its Glance instance. There is a synchronisation service what is able to instruct the Glances to do the synchronisation. The synchronisation of the image data is the responsibility of the backend (eg.: CEPH).
 +
[[File:444px-Vancouver_image_edge_notes_figures_xSeveralGlancesWithAnIndependentSynchronisationServiceBackendSynch.png]]
 +
Cascading is visible for the syncronisation service only, not for Glance.
 +
* Pros
 
* Cons  
 
* Cons  
 
** Needs a new synchronisation service
 
** Needs a new synchronisation service

Revision as of 11:46, 11 June 2018

This page contains a summary of the Vancouver Forum discussions about the topic. Full notes of the discussion are in here. The features and requirements for edge cloud infrastructure are described in OpenStack_Edge_Discussions_Dublin_PTG.
Source of the figures is here.

Synchronisation strategies

  • Copy every image to every edge cloud instance: the simplest and less optimal solution
  • Copy images only to those edge cloud instances where they are needed
    • Provide a syncronisation policy together with the image
    • Rely on the pulling of the images

Architecture options for Glance

Legend for the figures:

Vancouver image edge notes figures xLegend.png

One Glance with multiple backends

There is one central Glance what is capable to handle multiple backends. Every edge cloud instance is represented by a backend. The syncronisation of the image data is the responsibility of the backend (eg.: CEPH). OpenStack services in the edge cloud instances are using the images in the Glance backend with a direct url.
Glance-edge-architecture-multiple-backends.PNG
Work for multiple backends has been already started with an etherpad and a spec. Cascading (one edge cloud instance is the receiver and the source of the images at the same time) is possible if the central Glance is able to orchestrate the syncronisation of images.

  • Concerns
    • Network partitioning tolerance?
    • Is it safe to store database credentials in the far edge? (It is not possible to provide image access without network connection and not store the database credentials in the edge cloud instance)
  • Pros
    • Relatively easy to implement based on the current Glance architecture
  • Cons
    • Requires the same Glance backend in every edge cloud instance
    • Requires the same OpenStack version in every edge cloud instance (apart from during upgrade)
    • Sensitivity for network connection loss is not clear

Several Glances with an independent syncronisation service, sych via Glance API

Every edge cloud instance have its Glance instance. There is a synchronisation service what is able to instruct the Glances to do the synchronisation. The synchronisation of the image data is done using Glance API-s.
Glance-edge-architecture-synch-service.PNG
Cascading is visible for the syncronisation service only, not for Glance.

  • Pros
    • Every edge cloud instance can have a different Glance backend
    • Can support multiple OpenStack versions in the different edge cloud instances
    • Can be extended to support multiple VIM types
  • Cons
    • Needs a new synchronisation service

Several Glances with an independent syncronisation service, synch using the backend

Every edge cloud instance have its Glance instance. There is a synchronisation service what is able to instruct the Glances to do the synchronisation. The synchronisation of the image data is the responsibility of the backend (eg.: CEPH). File:444px-Vancouver image edge notes figures xSeveralGlancesWithAnIndependentSynchronisationServiceBackendSynch.png Cascading is visible for the syncronisation service only, not for Glance.

  • Pros
  • Cons
    • Needs a new synchronisation service

One Glance and multiple Glance API servers

There is one central Glance and every edge cloud instance runs a separate Glance API server. These Glance API servers are communicating with the central Glance. Backend is accessed centrally, there is only caching in the edge cloud instances.
Glance-edge-architectures-api-servers.PNG
Cascading is not possible as only pulling strategy works in this case.

  • Pros
    • Implicitly location aware
  • Cons
    • First usage of an image always takes a long time
    • In case of network connection error to the central Galnce Nova will have access to the images, but will not be able to figure out if the user have rights to use the image and will not have path to the images data