openstacko d collaborative openstack clouds on demand
play

OpenStackod: Collaborative OpenStack Clouds On-Demand - PowerPoint PPT Presentation

OpenStackod: Collaborative OpenStack Clouds On-Demand http://beyondtheclouds.github.io Who Are We? Adrien Lebre Javier Rojas Balderrama Ronan-Alexandre Cherrueau Prof. IMT Atlantique Inria research engineer Inria research engineer


  1. OpenStackoïd: Collaborative OpenStack Clouds On-Demand - http://beyondtheclouds.github.io

  2. Who Are We? Adrien Lebre Javier Rojas Balderrama Ronan-Alexandre Cherrueau Prof. IMT Atlantique Inria research engineer Inria research engineer STACK Team leader OpenStackoïd developer OpenStackoïd developer http://stack.inria.fr https://github.com/BeyondTheClouds/openstackoid/ https://github.com/BeyondTheClouds/openstackoid/ Inria Discovery Chair EnosLib developer EnOS developer http://beyondtheclouds.github.io http://enoslib.readthedocs.io http://enos.readthedocs.io http://beyondtheclouds.github.io 2

  3. Managing Resources of an Edge Infrastructure? - 3

  4. Properties ● 100s/1000s of locations ( i.e., data centers) ● Dozen of servers per data centers Edge Infra? ● WAN links (10 to 300 ms RTT) ● Intermittent connectivity A kind of Distributed Cloud ● Network partitioning issues Infrastructure 4

  5. Example of an Edge Infrastructure ● A National Research and Education Network ○ Internet2/Renater/... ● Red point is a Point of Presence ( PoP ) ● A PoP contains a micro Data Center ○ Dozen of servers ● WAN links interconnect PoPs 10ms , Paris ↔ Marseille ○ 150ms , Berlin ↔ Denver ○ ● Losing connection may lead to network partitions (e.g. Marseille Corte in France) 5

  6. Example of an Edge Infrastructure ● A National Research and Education Network ○ Internet2/Renater/... ● Red point is a Point of Presence ( PoP ) ● A PoP contains a micro Data Center ○ Dozen of servers ● WAN links interconnect PoPs 10ms , Paris ↔ Marseille ○ 150ms , Berlin ↔ Denver ○ ● Losing connection may lead to network partitions (e.g. Marseille Corte in France) 6

  7. Managing Resources of an Edge Infra? Same as in Cloud Computing. Tuned for the Edge . 1. Operate/use a single DC ○ Manage users, flavors, quotas ○ Provision compute, storage, net 2. Operate/use several DCs Cross-DC collaborative provisioning ○ (intra/inter services) ○ Manage multiple DC simultaneously 3. Robustness w.r.t. network delay & disconnections ○ Access/Manage reachable resources (full isolation) 7

  8. Managing Resources of an Edge Infra with OpenStack - 8

  9. Red Thread: Boot of a VM Alice Boot of a Debian VM (simplified) Operator requests a boot to nova 1. 1.POST 2. Nova contacts glance to get Debian VM UUID /servers 3. Nova boots VM internally 3.boot VM Boot VM scenarios nova ● in a single DC ( 1-DC ) ● in one DC with an image from another DC ( x-DC ) 2.GET ● in multiple DC ( *-DC ) /image/Debian Debian blob ● Globally vs. partially connected infa. glance Boot VM 1-DC x-DC *-DC global ?? ?? ?? DC HTTP Request HTTP Response partial ?? ?? ?? Internal Call 9

  10. Approach 1: Centralized Management One DC hosts the control plane ; Other DCs host compute nodes Theoretically , manipulating remote compute resources does ● not change the OpenStack behavior Practically , a lot of issues/challenges ‡ † ● ○ Impact of latency, throughput, intermittent connectivity, etc. What are the deployment rules for each service ( e.g. , Cinder)? ○ ○ Deployment/Upgrade of the system ● Several studies (scalability, communication buses, etc.) show that it is a viable approach but they are still challenges to tackle ○ StarlingX TC as well as other actors (RedHat, Orange, etc.) Boot VM 1-DC x-DC *-DC are investigating those issues global - - ✓ Operational, but focuses on specific use-cases ➔ partial ✗ ✗ ✗ 10

  11. Approach 2: Distributed Management Every DC is one OpenStack that collaborates with others (à la peer-to-peer) Theoretically , should fulfill needs for managing Edge resources infra. One control plane per DC ● A DC is independent of others (partition resiliency) ○ Boot VM in Paris, Marseille, or Corte, till we can connect to ■ DCs are collaborative with each other ● Share resources with others (benefits from natural sharding) ○ Boot VM in Paris with Debian image from Marseille ■ Replicate resources at some locations (preserve from delay/partition) ○ Replicate Debian image in Paris, Marseille and Corte ■ Practically , a sophisticated solution Boot VM 1-DC x-DC *-DC ● Implementing collaboration is a conundrum global ✓ ✓ ✓ ● OpenStack doesn’t provide a general solution partial ✓ ✓ ✓ 11

  12. DataBase Collaboration Alice Every DC is an OpenStack; Implement collaboration by making resources 1 global via the DB (active-active Galera, CockroachDB, …) ‡ † 3 nova nova Pro 2 ● Do not need to modify OpenStack code Issues glance glance ● Maintain consistency of all data across all DCs Berlin DC Denver DC ○ Forbids any writes in case of network partition (partial: ✗ ) ● DataBase only considers data ○ A resource is made of data and effects Boot VM 1-DC x-DC *-DC ○ Collaboration via DB misses effects (x-DC/*-DC: Keystone ✓ , Neutron ✗ , ...) global ✓ , ✗ ✓ , ✗ ✓ Resources could not be global (CAP theorem) ➔ partial ✗ ✗ ✗ Resource has to come with its side e�ects ➔ 12

  13. Service-to-Service Collaboration Make the service natively collaborative (K2K ‡ , Glance to Glance † ) Alice Pro 1. Know the features of the service (deal with side effects) ● Efficient/Optimal implementation (optimistically scale at edge) ● 3. nova nova Issues 2.a Tangle sophisticated collaboration code with vanilla code ● Force core developers to maintain collaboration code, make ○ glance glance new features collaborative 2.b Berlin DC Denver DC Intrusive collaboration is not an option for some services (not ○ everyone want to do edge/need collaboration) Boot VM 1-DC x-DC *-DC Collaboration code should be decoupled from vanilla code ➔ global ✓ ? ✓ ? ✓ partial ✓ ? ✓ ? ✓ ?

  14. Broker Collaboration Broker on top orchestrates the collaboration (Tricircle ‡ , Mixmatch † , ...) Pro Alice 1. ● Put collaboration code outside of vanilla code (in the broker) ● Enable enhancement of APIs for sharing/replication nova ● Deal with side effects (inter-service for free, intra in the broker) broker 3. nova nova Issues 2.a ● Current implementations glance broker 2.b ○ Rely on a central broken (partial: ✗ ) ○ Miss mechanism for replication (*-DC: ✗ ) glance glance ● Broker has to be exhaustive with the underlying APIs Berlin DC Denver DC ○ Lot of code to simply expose APIs at broker level Broker should not reimplement API to the risk of ➔ Boot VM 1-DC x-DC *-DC developing a new OpenStack on top of OpenStack global ✓ ✓ ✗ partial ✗ ✗ ✗ 14

  15. Distributed Management with OpenStackoïd - 15

  16. Alice OpenStackoïd 1.POST VM UUID /servers A broker based solution without a broker 3.boot VM Alice defines the scope of the request into the CLI. The nova nova scope specifies where the request applies 2.GET Debian blob openstack server create my-vm /image/Debian --image Debian --os-scope { nova: Berlin glance glance , glance: Denver } Generalization to all APIs Berlin DC Denver DC ● Don’t have to be exhaustive with the underlying API Boot VM in Berlin with ● Don’t require a specific code for an API Debian from Denver 16

  17. OpenStackoïd Scope for 1-DC operations OS@Berlin$ openstack server create my-vm --image Debian --os-scope {nova: Berlin, glance: Berlin} Scope for x-DC operations OS@Berlin$ openstack server create my-vm --image Debian --os-scope {nova: Berlin, glance: Denver} Scope for *-DC operations OS@Berlin$ openstack server create my-vm --image Debian --os-scope {nova: Berlin&Denver, glance: Denver} 17

  18. *-DC: and ‘ & ’ Do the operation here and there Properties ● Create a user in Berlin and Denver ● On-demand partial replication ○ Replication at scope locations openstack user create Alice --password-prompt ○ Keep consistency 🏇 --os-scope {keystone: Berlin&Denver} ● Query multiple DCs at once ● List VMs in Berlin and Denver ● Don’t change computation type 🏇 openstack server list ○ List VM & List VM = List VM --os-scope {nova: Berlin&Denver} ○ List a & List a = List a ○ a & a = ??? 18

  19. *-DC: or ‘ | ’ Do the operation here or there Properties ● Boot a VM in Berlin with image from ● Let the operator implements retries Denver or Paris workflow openstack server create my-vm No matter if one is down or don’t have --image Debian the image, till the other is up and has --os-scope { nova: Berlin the image. , glance: Denver|Paris } 19

  20. OpenStackoïd Proof-of-Concept - 20

  21. openstack server create … scope:{ keystone: Berlin , nova: Berlin, glance: Denver } HAproxy Berlin Keystone Berlin Berlin Nova Glance Berlin HAproxy Denver Keystone Denver Denver Nova Denver Glance 21

  22. Features Scope stick to operation Session from start to end of the operation execution ● Enable concurrent operations with different scopes ● Scope at service level (nova, glance, keystone, …) High level understanding of OpenStack is enough to define collaborations ● Inter-service collaboration only ● Risk of bad collaborations (x-DC) ● Resources unreachability : boot VM in Berlin with local network in Denver; it is not yet possible to extend network resources across DCs (API limitations, technical issues) ● Local state : verify in keystone of Berlin the glance service token from Denver 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend