Mirantis Folsom Meetup Intro

2,085 views

Published on

Published in: Investor Relations

Mirantis Folsom Meetup Intro

  1. 1. OpenStackOverview Mirantis, Inc.
  2. 2. What is OpenStack? "Open source software for building private and public clouds"
  3. 3. OpenStack capabilities● VMs on demand ○ provisioning ○ snapshotting● Volumes● Networks● Multi-tenancy ○ quotas for different users ○ user can be associated with multiple tenants● Object storage for VM images and arbitrary files
  4. 4. OpenStack History● July 2010 - Initial announcement● October 2010 - Austin Release● February 2011 - Bexar Release● April 2011 - Cactus Release● October 2011 - Diablo Release● April 2012 - Essex Release● October 2012 - Folsom Release● April 2013 - Grizzly Release
  5. 5. OpenStack Projects● Nova (Compute)● Glance (Image Service)● Swift (Object Store)● Keystone (auth)● Horizon (Dashboard)● Quantum (Network) formerly nova-network● Cinder (Block Storage) formerly nova-volume
  6. 6. OpenStack Projects: Relationship
  7. 7. OpenStack: Deployment Topology control cluster "one to one" relationship with Horizon Keystone each deployment instance. Quantum Glance Cloud Ctrl. Cinder (nova) compute cluster storage cluster compute compute compute storage storage storage node node node node node node compute compute compute storage storage storage node node node node node node
  8. 8. OpenStack Projects: Detailed View (Essex) Horizon CLI Keystone Glancenova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  9. 9. Still part of nova Horizon CLI Keystone Glancenova: Cloud Controller nova-api endpoint glance-api glance-registry scheduler nova: Compute nova-db nova-network nova-compute Swift que nova-volume ue hypervisor proxy-server object Shared Storage store
  10. 10. UI: horizon or CLI Keystone keystone servernova compute node keystone -db controller nova: Hypervisor queu nova- Compute nova-api e compute Quantum V M quantum scheduler server nova-db Network quantum -db Cinder block Glance quantum storage plugin endpoint queu e node glance-api scheduler storage glance-registry Swift cinder-vol proxy-server glance db object cinder-db store
  11. 11. OpenStack Projects: Communication Types HTTP AMQP SQL natv. API iSCSI UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  12. 12. Use Case: provisioning a VM
  13. 13. Initial State Tenant is created, provisioning quota is available, user has an access to Horizon/CLI UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  14. 14. Step 1: Request VM Provisioning via UI/CLI User specifies VM params: name, flavor, keys, etc. and hits "Create" button UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  15. 15. Step 1: Request Provisioning via UI/CLI● From UI a. Login to Horizon b. Specify params of VM in "Create VM" form c. Hit "Create" button● Under the hood a. Form params are converted to POST data b. "Create" request initiate HTTP POST request to back- end ■ To Keystone if auth token is not cached ■ To nova-api if auth token hasnt expired yet
  16. 16. Horizon "The OpenStack Dashboard (Horizon) provides a baseline user interface for managing OpenStack services."
  17. 17. Step 2: Validate Auth Data Horizon sends HTTP request to Keystone. Auth info is specified in HTTP headers. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  18. 18. Keystone"Keystone is an OpenStack project that provides Identity, Token, Catalog and Policy services for use specifically by projects in the OpenStack family."
  19. 19. Keystone Architecture
  20. 20. Keystone: auth flow
  21. 21. Step 2: Validate Auth Data Keystone sends temporary token back to Horizon via HTTP. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  22. 22. Step 3: Send API request to nova-apiHorizon sends POST request to nova-api (signed with given token). UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  23. 23. Step 4: Validate API Token nova-api sends HTTP request to validate API token to Keystone. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  24. 24. Step 4: Validate API Token Keystone validates API token and sends HTTP response with token acceptance/rejection info. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  25. 25. Step 5: Process API request nova-api parses request and validates it by fetching data from nova-db. If the request is valid, it saves initia db entry about VM to the database. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  26. 26. nova-api"nova-api is a RESTful API web service which is used to interact with nova"
  27. 27. nova-api clients
  28. 28. nova database"nova database stores current state of all objects in compute cluster."
  29. 29. Step 6: Publish provisioning request to queuenova-api makes rpc.call to scheduler.It publishes a short message toscheduler queue with VM info. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  30. 30. Step 6: Pick up provisioning request scheduler picks up the message from MQ. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- db object db router/gw store
  31. 31. Message queue "Message queue is a unified way for collaboration between nova components."
  32. 32. Step 7: Schedule provisioning Scheduler fetches information about the whole cluster from database and based on this info selects the most applicable compute host. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  33. 33. nova-scheduler "nova-scheduler is a daemon, which determines, on which compute host the request should run."
  34. 34. nova-scheduler: available schedulers Scheduler Description Chance Picks a host that is up at random Simple Picks a host that is up and has the fewest running instances Filter Picks the best-suited host which satisfies selected filter Multi A scheduler that holds multiple sub- schedulers
  35. 35. Step 8: Start VM provisioning on compute nodeScheduler publishes message to thecompute queue (based on host ID)and triggers VM provisioning UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  36. 36. Step 9: Start VM rendering via hypervisornova-compute fetches informationabout VM from DB, creates a commandto hypervisor and delegates VMrendering to hypervisor. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  37. 37. nova-compute "nova-compute is a worker daemon,which primarily creates and terminates VMs via hypervisor API."
  38. 38. nova-compute drivers nova-computeXCP VMWare HyperV LPAR libvirtVM VM VM VMVM VM VM VM KVM Xen Qemu LXC VM VM VM VM VM VM VM VM
  39. 39. Step 10: Configure network nova-compute makes a call to quantum-api to provision network for the instance UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  40. 40. Step 11: configure network quantum configures IP, gateway, L2 connectivity UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  41. 41. Step 12: Request volume attachmentIt is assumed a volume is alreadycreated. Nova-compute contactscinder to get volume data. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block Glance quantum queu plugin/agt cinder-api storage glance-api e node scheduler storage glance-registry Swift cinder-vol proxy-server glance cinder- object db db store
  42. 42. Step 12: Request volume attachmentNova-compute sets up iSCSI initiator& instructs the hypervisor to mountiSCSI vol. as a new block device UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block Glance quantum queu plugin/agt cinder-api storage glance-api e node scheduler storage glance-registry Swift cinder-vol proxy-server glance cinder- object db db store
  43. 43. Step 12: Request volume attachmentiSCSI communication begins UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  44. 44. cinder "block storage as-a-service"
  45. 45. cinder architecture
  46. 46. Step 13: Request VM Image from Glance nova-compute requests VM image from Glance via Image ID UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  47. 47. Glance "The Glance project provides services for discovering, registering, and retrieving virtual machine images."
  48. 48. Step 14: Get Image URI from Glance If image with given image ID can be found - return URI UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  49. 49. Step 15: Download image from Swift nova-compute downloads image using URI, given by Glance, from Glances back- end. After downloading - it renders it. UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  50. 50. Initial State UI: horizon or CLI Keystone keystone server nova compute node keyston e-db nova: Hypervisor controller queu nova- e Compute compute nova-api Quantum V M quantum scheduler server nova-db Network quantum- db Cinder block storage Glance quantum node plugin/agt cinder-api queu e glance-api storage scheduler glance-registry Swift cinder-vol network node proxy-server dhcp serv. glance cinder- object db db router/gw store
  51. 51. www.mirantis.com

×