OpenStack vs. Ganeti

Attribution-ShareAlike CC BY-SA ©2015

Session Overview

About me

Virtualized Computing Resources

Typical Solutions

OpenStack is all the hype

OpenStack Overview

_images/openstack-arch.jpg

OpenStack Pros

OpenStack Cons

So what about Ganeti?

First, what is Ganeti?

What isn't Ganeti?

Ganeti Overview

Project Background

Ganeti Goals

Low Entry Level

  • Easy to install, manage and upgrade
  • Architecture is fairly easy to understand

Enterprise Scale

  • Manage 1 to 200 within a single cluster

Open Source Citizen

  • Design and code discussions are open to the community
  • Welcome third-party projects

Architecture

Ganeti Terminology

Node:Virtualization host
Instance:Virtual Machine Guest
Cluster:Set of nodes, managed as a collective
Node Group:homogeneous set of nodes (i.e. rack of nodes)
Job:Ganeti operation

Storage in Ganeti

Primary & Secondary Concepts

Ganeti Walk-through

root@node1:~# gnt-node list
Node              DTotal DFree MTotal MNode MFree Pinst Sinst
node1.example.org  26.0G 25.5G   744M  186M  587M     0     0
node2.example.org  26.0G 25.5G   744M  116M  650M     0     0

root@node1:~# gnt-os list
Name
image+cirros
image+default

root@node1:~# gnt-instance add -n node1 -o image+cirros -t plain -s 1G \
  --no-start instance1
Thu Jun  7 06:05:58 2015 * disk 0, vg ganeti, name 780af428-3942-4fa9-8307-1323de416519.disk0
Thu Jun  7 06:05:58 2015 * creating instance disks...
Thu Jun  7 06:05:58 2015 adding instance instance1.example.org to cluster config
Thu Jun  7 06:05:58 2015  - INFO: Waiting for instance instance1.example.org to sync disks.
Thu Jun  7 06:05:58 2015  - INFO: Instance instance1.example.org's disks are in sync.
Thu Jun  7 06:05:58 2015 * running the instance OS create scripts...

root@node1:~# gnt-instance list
Instance              Hypervisor OS           Primary_node      Status     Memory
instance1.example.org kvm        image+cirros node1.example.org ADMIN_down      -

Ganeti Walk-through (Instance Info)

root@node1:~# gnt-instance info instance1
Instance name: instance1.example.org
UUID: bb87da5b-05f9-4dd6-9bc9-48592c1e091f
Serial number: 1
Creation time: 2015-06-07 06:05:58
Modification time: 2015-06-07 06:05:58
State: configured to be down, actual state is down
  Nodes:
    - primary: node1.example.org
    - secondaries:
  Operating system: image+cirros
  Allocated network port: 11000
  Hypervisor: kvm
    - console connection: vnc to node1.example.org:11000 (display 5100)
…
Hardware:
    - VCPUs: 1
    - memory: 128MiB
    - NICs:
      - nic/0: MAC: aa:00:00:dd:ac:db, IP: None, mode: bridged, link: br0
  Disk template: plain
  Disks:
    - disk/0: lvm, size 1.0G
      access mode: rw
      logical_id:  ganeti/780af428-3942-4fa9-8307-1323de416519.disk0
      on primary:  /dev/ganeti/780af428-3942-4fa9-8307-1323de416519.disk0 (252:1)

Ganeti Walk-through (Converting disk template)

root@node1:~# gnt-instance shutdown instance1
Waiting for job 11 for instance1.example.org ...

root@node1:~# gnt-instance modify -t drbd -n node2 instance1
Thu Jun  7 06:09:07 2015 Converting template to drbd
Thu Jun  7 06:09:08 2015 Creating additional volumes...
Thu Jun  7 06:09:08 2015 Renaming original volumes...
Thu Jun  7 06:09:08 2015 Initializing DRBD devices...
Thu Jun  7 06:09:09 2015  - INFO: Waiting for instance instance1.example.org to sync disks.
Thu Jun  7 06:09:11 2015  - INFO: - device disk/0:  5.10% done, 20s remaining (estimated)
Thu Jun  7 06:09:31 2015  - INFO: - device disk/0: 86.00% done, 3s remaining (estimated)
Thu Jun  7 06:09:34 2015  - INFO: - device disk/0: 98.10% done, 0s remaining (estimated)
Thu Jun  7 06:09:34 2015  - INFO: Instance instance1.example.org's disks are in sync.
Modified instance instance1
 - disk_template -> drbd
Please don't forget that most parameters take effect only at the next start of the instance.

Ganeti Walk-through (Live migration)

root@node1:~# gnt-instance start instance1
Waiting for job 14 for instance1.example.org …

root@node1:~# gnt-instance migrate -f instance1
Thu Jun  7 06:10:38 2015 Migrating instance instance1.example.org
Thu Jun  7 06:10:38 2015 * checking disk consistency between source and target
Thu Jun  7 06:10:38 2015 * switching node node1.example.org to secondary mode
Thu Jun  7 06:10:38 2015 * changing into standalone mode
Thu Jun  7 06:10:38 2015 * changing disks into dual-master mode
Thu Jun  7 06:10:39 2015 * wait until resync is done
Thu Jun  7 06:10:39 2015 * preparing node1.example.org to accept the instance
Thu Jun  7 06:10:39 2015 * migrating instance to node1.example.org
Thu Jun  7 06:10:44 2015 * switching node node2.example.org to secondary mode
Thu Jun  7 06:10:44 2015 * wait until resync is done
Thu Jun  7 06:10:44 2015 * changing into standalone mode
Thu Jun  7 06:10:45 2015 * changing disks into single-master mode
Thu Jun  7 06:10:46 2015 * wait until resync is done
Thu Jun  7 06:10:46 2015 * done

Common Use Cases for Ganeti

Ganeti Pros

Ganeti Cons

Ganeti + Synnefo = OpenStack-ish

Synnefo is a complete open source IaaS cloud stack written in Python that provides Compute, Network, Image, Volume and Object Storage services

https://www.synnefo.org

Synnefo Architecture

_images/snf-architecture.png

How the OSL is using Ganeti

How the OSL is using OpenStack

OpenStack / Ganeti side-by-side

OpenStack:

Ganeti:

Future plans

Final Summary

Questions?

Attribution-ShareAlike CC BY-SA ©2015