ganeti
play

Ganeti The Cluster Virtualization Management Software Helga - PowerPoint PPT Presentation

Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti The Cluster Virtualization Management Software Helga Velroyen (helgav@google.com) Klaus Aehlig (aehlig@google.com) August 24, 2014 Introduction


  1. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti The Cluster Virtualization Management Software Helga Velroyen (helgav@google.com) Klaus Aehlig (aehlig@google.com) August 24, 2014

  2. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Cluster For Ganeti, a cluster is • virtual machines (“instances”) • on physical machines (“nodes”) using some hypervisor (Xen, kvm, . . . ) • and some storage solution instance (DRBD, shared storage, . . . ). instance instance instance node node node

  3. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Cluster Management Ganeti helps • to get there • uniform interface hypervisors/storage/. . . • policies, balanced allocation instance instance instance instance node node node

  4. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Cluster Management Ganeti helps • to get there • uniform interface hypervisors/storage/. . . • policies, balanced allocation instance • and to stay there instance instance instance node node node

  5. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Cluster Management Ganeti helps • to get there • uniform interface hypervisors/storage/. . . • policies, balanced allocation instance instance instance keeping N + 1 redundancy • and to stay there instance instance instance • failover instances node node node • rebalance • Restart instances after power outage • . . .

  6. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Cluster creation • gnt-cluster init -s 192.0.2.1 clusterA.example.com

  7. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Cluster creation • gnt-cluster init -s 192.0.2.1 clusterA.example.com • gnt-node add -s 192.0.2.2 node2.example.com

  8. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Cluster creation • gnt-cluster init -s 192.0.2.1 clusterA.example.com • gnt-node add -s 192.0.2.2 node2.example.com • . . .

  9. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Cluster creation • gnt-cluster init -s 192.0.2.1 clusterA.example.com • gnt-node add -s 192.0.2.2 node2.example.com • . . . • gnt-instance add -t drbd -o debootstrap -s 2G --tags=foo,bar instance1.example.com

  10. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Cluster creation • gnt-cluster init -s 192.0.2.1 clusterA.example.com • gnt-node add -s 192.0.2.2 node2.example.com • . . . • gnt-instance add -t drbd -o debootstrap -s 2G --tags=foo,bar instance1.example.com The -o debootstrap references the OS definition to be used. An OS definition essentially is a collection of scripts to create , import , export , . . . an instance.

  11. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Planned Node maintenance Evacutating a node • gnt-node modify --drained=yes node2.example.com

  12. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Planned Node maintenance Evacutating a node • gnt-node modify --drained=yes node2.example.com • hbal -L -X

  13. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Planned Node maintenance Evacutating a node • gnt-node modify --drained=yes node2.example.com • hbal -L -X • gnt-node modify --offline=yes node2.example.com

  14. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Planned Node maintenance Evacutating a node • gnt-node modify --drained=yes node2.example.com • hbal -L -X • gnt-node modify --offline=yes node2.example.com Using the node again • gnt-node modify --online=yes node2.example.com

  15. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Basic Interaction—Planned Node maintenance Evacutating a node • gnt-node modify --drained=yes node2.example.com • hbal -L -X • gnt-node modify --offline=yes node2.example.com Using the node again • gnt-node modify --online=yes node2.example.com • hbal -L -X

  16. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs

  17. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs master node • gnt-* don’t execute tasks gnt-* luxid they just submit jobs

  18. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs master node • gnt-* don’t execute tasks gnt-* luxid they just submit jobs • CLI does not have to wait; --submit • can be queried with gnt-job info

  19. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs master node • gnt-* don’t execute tasks gnt-* luxid they just submit jobs

  20. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks gnt-* luxid they just submit jobs job file • luxid recieves job • written to disk • replicated to some other nodes (the “master candidates”) job file

  21. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job job file

  22. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job • queued • limit on jobs running simultaneously (NEW: run-time tunable) job file

  23. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job • queued • limit on jobs running simultaneously (NEW: run-time tunable) job file • job dependency (NEW: honored at queuing stage)

  24. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job • queued • limit on jobs running simultaneously (NEW: run-time tunable) job file • job dependency (NEW: honored at queuing stage) • ad-hoc rate limiting (NEW in Ganeti 2.13; more later)

  25. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job • queued job file

  26. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job • queued job • waiting • forked off, but still waiting for locks job file (instances, nodes, . . . )

  27. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job wconfd • queued job • waiting • forked off, but still waiting for locks job file (instances, nodes, . . . ) • Reading configuration

  28. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job wconfd • queued job • waiting • forked off, but still waiting for locks job file (instances, nodes, . . . ) • Reading configuration • Already responsible for its own job file

  29. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job wconfd • queued job • waiting job file

  30. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid they just submit jobs job file • luxid recieves job wconfd node • queued noded job • waiting • running job file • Actual manipulation of the world via noded

  31. Introduction Jobs Locking Deployment at Scale Current and Future Development Conclusion Ganeti Jobs MC node noded master node • gnt-* don’t execute tasks luxid conf they just submit jobs job file • luxid recieves job wconfd node • queued noded job • waiting • running conf job file • Actual manipulation of the world via noded • Updates the configuration

Recommend


More recommend