Ganeti A cluster virtualization manager. Guido Trotter - - PowerPoint PPT Presentation

ganeti
SMART_READER_LITE
LIVE PREVIEW

Ganeti A cluster virtualization manager. Guido Trotter - - PowerPoint PPT Presentation

Ganeti A cluster virtualization manager. Guido Trotter <ultrotter@google.com> Google, Ganeti, Debian What can it do? Manage clusters of physical machines Deploy Xen or KVM virtual machines on them Live migration


slide-1
SLIDE 1

Ganeti

A cluster virtualization manager. Guido Trotter <ultrotter@google.com>

  • Google, Ganeti, Debian
slide-2
SLIDE 2

What can it do?

  • Manage clusters of physical machines
  • Deploy Xen or KVM virtual machines on them
  • Live migration
  • Resiliency to failure
  • DRBD over-the-network data redundancy
  • Cluster balancing
  • Ease of repairs and hardware swaps
slide-3
SLIDE 3

Ideas

  • Making the virtualization entry level as low as possible
  • Easy to install/manage
  • No specialized hardware needed (eg. SANs)
  • Scale to enterprise ecosystems
  • Manage symultaneously from 1 to ~50 host machines
  • Access to advanced features (drbd, live migration)
  • Be a good open source citizen
  • Design and code discussions are open
  • External contributions are welcome
  • Cooperate with other "big scale" Ganeti users
slide-4
SLIDE 4

Terminology

  • Node: a virtualization host
  • Nodegroup: an omogeneous set of nodes
  • Instance: a virtualization guest
  • Cluster: a set of nodes, managed as a collective
slide-5
SLIDE 5

Technologies

  • Linux and its standard networking utils (iproute2, bridge-utils)
  • KVM/Xen (support in progress for lxc)
  • DRBD, or LVM, or files (SAN support is coming)
  • Python (plus a few modules)
  • socat
  • ssh
  • Haskell(*)

(*) Optional. But "edu" people should appreciate! ;)

slide-6
SLIDE 6

Initializing your cluster

The node needs to be set up, follow our installation guide. gnt-cluster init [-s ip] \

  • -enabled-hypervisors=kvm cluster

gnt-node add [-s ip] node2 gnt-node add [-s ip] node3 gnt-cluster info gnt-cluster modify [-B ...] [-H ...] [-N ...]

slide-7
SLIDE 7

Running instances

gnt-os list gnt-instance add -t drbd \ {-n node1:node2 | -I hail } \

  • o debootstrap+default i0

ping i0 ssh i0 # easy with OS hooks gnt-instance migrate i0 gnt-instance console i0

slide-8
SLIDE 8

Controlling Ganeti

  • Command line (*)
  • Ganeti Web manager
  • Developed by osuosl.org and grnet.gr
  • RAPI (Rest-full http interface) (*)
  • On-cluster luxi interface (*)
  • luxi is currently json over unix socket
  • there is code for python and haskell

(*) Programmable interfaces

slide-9
SLIDE 9

Cluster resource management

Implemented in htools, a haskell cluster resource balancer implementation:

  • hail: the instance allocator
  • hbal: the cluster balancer
  • hspace: the free space calculator
  • (hscan: remote cluster data fetcher)
slide-10
SLIDE 10

'big-scale' features

  • Nodegroups (2.4/2.5)
  • Routed networking
  • vm_capable and master_capable nodes (2.3)
  • Job priorities (2.3)
  • Out of Band management (2.4)
  • Cluster merger
slide-11
SLIDE 11

Other recent improvements

  • New KVM features (vhost, hugepages) (2.4)
  • Initial IPv6 (2.3)
  • Privilege separation (2.3)
  • Inter-cluster instance move
slide-12
SLIDE 12

Future roadmap

  • Distributed storage (ceph, sheepdog) and SANs
  • Better OS installation
  • Better self-healing
  • KVM enhancements
  • block device migration, QMP monitoring
  • SPICE/USB redirect
  • Networking enhancements
  • Pool and subnet management
  • Better low-level deployment
  • More hypervisors/hv-customizations
slide-13
SLIDE 13

People running Ganeti

  • Google (Corporate Computing Infrastructure)
  • grnet.gr (Greek Research & Technology Network)
  • osuosl.org (Oregon State University Open Source Lab)
  • fsffrance.org (according to docs on their website and trac)
  • ...
slide-14
SLIDE 14

Conclusion

  • Check us out at http://code.google.com/p/ganeti.
  • Or just Google Ganeti.
  • Try it. Love it. Improve it. Contribute back (CLA required).

Questions? Feedback? Ideas? Flames?