SlideShare a Scribd company logo
1 of 119
Download to read offline
Hands on Virtualization with
          Ganeti
           Lance Albertson
           Peter Krenesky
       http://is.gd/osconganeti | http://is.gd/osconganetipdf
About us
        OSU Open Source Lab
Server hosting for Open Source Projects
  Open Source development projects
 Lance / Lead Systems Administrator
   Peter / Lead Software Engineer
How we use Ganeti
Powers all OSUOSL virtualization
Project hosting
KVM based
Hundreds of VMs
Web hosts, code hosting, etc
Tutorial Overview
Ganeti Architecture
Installation
Virtual machine deployment
Cluster Management
Dealing with failures
Ganeti Web Manager
Hands-on Tutorial
Debian VMs with VirtualBox
Pre-setup already using Puppet
Setup Guide PDF
Hands-on is optional
Importing VMs
Install VirtualBox
Import node1/2 (node3 is optional)
USB drives are available with images
Ganeti Cluster
What is Ganeti?
Cluster virtual server management
software tool
Built on top of existing OSS
hypervisors
Fast & simple recovery after physical
failures
Using cheap commodity hardware
Private IaaS
Comparing Ganeti
Utilizes local storage
Built to deal with hardware failures
Mature project
Low package requirements
Easily pluggable via hooks & RAPI
Project Background
Google funded project
Used in internal corporate env
Open Sourced in 2007 GPLv2
Team based in Google Switzerland
Active mailing list & IRC channel
Started internally before libvirt
Terminology
Components
 Python
 Haskell
  DRBD
  LVM
Hypervisor
Architecture
Nodes
Physical machine
Fault tolerance not required
Added/removed at will from cluster
No data loss with loss of node
Node Daemons
ganeti-noded      control hardware resources, runs on all

ganeti-confd      only functional on master, runs on all

ganeti-rapi       offers HTTP-based API for cluster, runs on master

ganeti-masterd    allows control of cluster, runs on master
Instances




Virtual machine that runs on the
cluster
fault tolerant/HA entity within cluster
Instance Parameters
Hypervisor (called hvparams)
General (called beparams)
Networking (called nicparams)
Modified via instance or cluster
defaults
hvparams
Boot order, CDROM Image
NIC Type, Disk Type
VNC Parameters, Serial console
Kernel Path, initrd, args
Other Hypervisor specific parameters
beparams
         nicparams
Memory / Virtual CPUs
MAC
NIC mode (routed or bridged)
Link
Disk template
drbd : LVM + DRBD between 2 nodes
plain : LVM w/ no redundancy
file : Plain files, no redundancy
diskless : Special purposes
IAllocator
Automatic placement of instances
Eliminates manual node specification
htools
External scripts used to compute
Primary & Secondary concepts




Instances always runs on primary
Uses secondary node for disk
replication
Depends on disk template (i.e. drbd)
Planning
your cluster
Hardware Planning
        Disks
  Types: SAS vs SATA
 Speed: Faster = better
Number: More = better
Hardware Planning
           CPU
   Cores: More = better
Speed: Depends on your uses
    Brand: AMD vs Intel
Hardware Planning
          RAM
 Amount: More = better
Use case: Types of services
Other considerations
        RAID
   Redundant Power
    Higher Density
     More nodes
   Network topology
Operating System Planning
 Debian - most supported upstream
 Gentoo - great support
 Ubuntu - should work great
 CentOS - works but a few setup issues
Networking



  Bridging is most widely used
Routed networking also supported
   Nodes on private NAT/VLAN
Hands-on
 Setup
Pre-Installation Steps
Operating System Setup
Clean, minimal system install
Minimum 20GB system volume
Single LVM Volume Group for
instances
64bit is preferred
Similar hardware/software
configuration across nodes
Partition Setup
                     typical layout
/dev/sda1    /boot         200M

/dev/sda2    /             10-20G

/dev/sda3    LVM           rest, named ganeti
Hostname Issues
Requires hostname to be the FQDN
i.e. node1.example.com instead of
node1
hostname --fqdn requires resolver
library
Reduce dependency on DNS and
guessing
Installing
    the
Hypervisor
Hypervisor requirements
   Mandatory on all nodes

   Xen 3.0 and above
  KVM 0.11 and above
  Install via your distro
DRBD Architecture




RAID1 over the network
Installing DRBD
Required for high availability
Can upgrade non-HA to DRBD later
Need at least >=drbd-8.0.12
Depends on distro Support
Included in mainline
DRBD Setup
                          Installation
$ apt-get install drbd8-utils


                          Via modules
$ echo drbd minor_count=255 usermode_helper=/bin/true >> /etc/modules
$ depmod -a
$ modprobe drbd minor_count=255 usermode_helper=/bin/true


                            Via Grub
# Kernel Commands
drbd.minor_count=255 drbd.usermode_helper=/bin/true
Network
 Setup
Interface Layout




   eth0 - trunked VLANs
eth1 - private DRBD network
VLAN setup
                  for Debian/Ubuntu
allow-hotplug   eth0
allow-hotplug   eth1
allow-hotplug   vlan100
allow-hotplug   vlan42

auto vlan100
iface vlan100 inet manual
    vlan_raw_device eth0

auto vlan42
iface vlan42 inet manual
    vlan_raw_device eth0
Bridge setup
                     for Debian/Ubuntu
allow-hotplug br42
allow-hotplug br10

auto br42
iface br42 inet static
   address 10.1.0.140
   netmask 255.255.254.0
   network 10.1.0.0
   broadcast 10.1.1.255
   gateway 10.1.0.1
   dns-nameservers 10.1.0.130
   dns-search example.org
   bridge_ports vlan42
   bridge_stp off
   bridge_fd 0

auto br100
iface br100 inet manual
   bridge_ports vlan100
   bridge_stp off
   bridge_fd 0
DRBD Network setup
                for Debian/Ubuntu
iface eth1 inet static
    address 192.168.16.140
    netmask 255.255.255.0
    network 192.168.16.0
    broadcast 192.168.16.255
Configuring LVM
$ pvcreate /dev/sda3
$ vgcreate ganeti /dev/sda3
lvm.conf changes
               Ignore drbd devices
filter = ["r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ]
Installing
  Ganeti
Installation Options
  Via package manager
      Via source
Installing Ganeti
         Dependencies
                via source
$ apt-get install lvm2 ssh bridge-utils 
    iproute iputils-arping ndisc6 python 
    python-pyopenssl openssl 
    python-pyparsing python-simplejson 
    python-pyinotify python-pycurl socat
Htools Dependencies
          provides IAllocator hail
$ apt-get install ghc6 libghc6-json-dev 
    libghc6-network-dev 
    libghc6-parallel-dev libghc6-curl-dev
Install Ganeti
        Note: this is for >=ganeti-2.5
$ ./configure --localstatedir=/var 
    --sysconfdir=/etc 
    --enable-htools
$ make
$ make install
Startup Scripts
             Installed into /usr/local/
$ cp doc/examples/ganeti.initd /etc/init.d/ganeti
$ update-rc.d ganeti defaults 20 80
ganeti-watcher
$ cp doc/examples/ganeti.cron /etc/cron.d/ganeti

   Automatically restarts failed instances
   Restarts failed secondary storage
What gets installed
Python libraries under the ganeti namespace
Set of programs under /usr/local/sbin or
/usr/sbin
Set of tools under lib/ganeti/tools directory
IAllocator scripts under lib/ganeti/tools
directory
Cron job needed for cluster maintenance
Init script for Ganeti daemons
Install OS
Definition
Instance creation scripts
       also known as OS Definitions
Requires Operating System installation script
Provide scripts to deploy various operating systems
Ganeti Instance Deboostrap - upstream supported
Ganeti Instance Image - written by me
OS Variants
Variants of the OS Definition
Used for defining guest operating
system
Types of deployment settings:
     Filesystem
     Image directory
     Image Name
Install Instance Image Dependencies
$ apt-get install dump qemu-kvm kpartx
Install Instance Image
$ ./configure --prefix=/usr 
    --localstatedir=/var 
    --sysconfdir=/etc 
    --with-os-dir=/srv/ganeti/os
$ make
$ make install
Creating images
  Manually install/setup guest
        Shutdown guest
Create filesystem dump or tarball
      Place in IMAGE_DIR
Hands on
Ganeti Initialization
Cluster name
Mandatory once per cluster, on the first node.

 Cluster hostname resolvable by all
 nodes
 IP reserved exclusively for the
 cluster
 Used by master node
 i.e.: ganeti.example.org
Initialization
                 KVM example
$ gnt-cluster init 
    --master-netdev=br0 
    --vg-name ganeti 
    --secondary-ip 192.168.16.16 
    --enabled-hypervisors=kvm 
    --nic-parameters link=br0 
    --backend-parameters 
        vcpus=1,memory=128M 
    --hypervisor-parameters 
        kvm:kernel_path=/boot/vmlinuz-2.6-kvmU 
        vnc_bind_address=0.0.0.0 
    ganeti.example.org
Cluster init args
             Master Network Device
--master-netdev=br0

               Volume Group Name
--vg-name ganeti

                   DRBD Interface
--secondary-ip 192.168.16.16

               Enabled Hypervisors
--enabled-hypervisors=kvm
Cluster init args
                     Default NIC
--nic-parameters link=br0

           Default Backend parameters
--backend-parameters vcpus=1,memory=128M

         Default Hypervisor Parameters
--hypervisor-parameters 
    kvm:kernel_path=/boot/vmlinuz-2.6-kvmU, 
    vnc_bind_address=0.0.0.0 

                 Cluster hostname
ganeti.example.org
Hands-on
Testing Ganeti
Testing/Viewing the nodes
$ gnt-node list
Node              DTotal DFree MTotal MNode MFree Pinst Sinst
node1.example.org 223.4G 223.4G  7.8G 300M 7.5G       0     0
node2.example.org 223.4G 223.4G  7.8G 300M 7.5G       0     0


    Ganeti damons can talk to each other
    Ganeti can examine storage on the
    nodes (DTotal/DFree)
    Ganeti can talk to the selected
    hypervisor (MTotal/MNode/MFree)
Cluster burnin testing
$ /usr/lib/ganeti/tools/burnin -o image -p instance{1..5}


    Does the hardware work?
    Can the Hypervisor create instances?
    Does each operation work properly?
Adding an instance
      Requires at least 5 params

OS for the instance (gnt-os list)
Disk template
Disk count & size
Node or iallocator
Instance name (resolvable)
Hands-on
Deploying VMs
Add Command
$ gnt-instance add 
    -n TARGET_NODE:SECONDARY_NODE 
    -o OS_TYPE 
    -t DISK_TEMPLATE -s DISK_SIZE 
    INSTANCE_NAME
Other options
          among others

Memory size (-B memory=1GB)
Number of virtual CPUs (-B vcpus=4)
NIC settings (--nic 0:link=br100)
batch-create
See gnt-instance manpage for
others
Instance Removal
$ gnt-instance remove INSTANCE_NAME
Startup/Shutdown
$ gnt-instance startup INSTANCE_NAME
$ gnt-instance shutdown INSTANCE_NAME

         Started automatically
    Do not use hypervisor directly
Querying Instances
Two methods:
     listing instances
     detailed instance information
One useful for grep
Other has more details, slower
Listing instances
$ gnt-instance list
Instance                Hypervisor   OS                      Primary_node        Status     Memory
instance1.example.org   kvm          image+gentoo-hardened   node1.example.org   ERROR_down      -
instance2.example.org   kvm          image+centos            node2.example.org   running      512M
instance3.example.org   kvm          image+debian-squeeze    node1.example.org   running      512M
instance4.example.org   kvm          image+ubuntu-lucid      node2.example.org   running      512M
Detailed Instance Info
$ gnt-instance info instance2
Instance name: instance2.example.org
UUID: 5b5b1c35-23de-45bf-b125-a9a001b2bebb
Serial number: 22
Creation time: 2011-05-24 23:05:44
Modification time: 2011-06-15 21:39:12
State: configured to be up, actual state is up
  Nodes:
    - primary: node2.example.org
    - secondaries:
  Operating system: image+centos
  Allocated network port: 11013
  Hypervisor: kvm
    - console connection: vnc to node2.example.org:11013 (display 5113)
    - acpi: True
    ...
  Hardware:
    - VCPUs: 2
    - memory: 512MiB
    - NICs:
      - nic/0: MAC: aa:00:00:39:4b:b5, IP: None, mode: bridged, link: br113
  Disk template: plain
  Disks:
    - disk/0: lvm, size 9.8G
      access mode: rw
      logical_id: ganeti/0c3f6913-cc3d-4132-bbbf-af9766a7cde3.disk0
      on primary: /dev/ganeti/0c3f6913-cc3d-4132-bbbf-af9766a7cde3.disk0 (252:3)
Export/Import
$ gnt-backup export -n TARGET_NODE INSTANCE_NAME

Create snapshot of disk & configuration
Backup, or import into another cluster
      One snapshot for an instance
Importing an instance
$ gnt-backup import 
    -n TARGET_NODE 
    --src-node=NODE 
    --src-dir=DIR INSTANCE_NAME
Import of foreign instances
$ gnt-instance add -t plain -n HOME_NODE ... 
    --disk 0:adopt=lv_name[,vg=vg_name] 
    INSTANCE_NAME

   Already stored as LVM volumes
   Ensure non-managed instance is stopped
   Take over given logical volumes
   Better transition
Instance Console
$ gnt-instance console INSTANCE_NAME

         Type ^] when done, to exit.
Hands-on
Instance HA
  Features
Changing the Primary node
          Failing over an instance
$ gnt-instance failover INSTANCE_NAME

         Live migrating an instance
$ gnt-instance migrate INSTANCE_NAME
Restoring redundancy for DRBD-based
              instances
   Primary node storage failed
        Re-create disks on it
   Secondary node storage failed
        Re-create disks on secondary
        node
        Change secondary
Replacing disks
$ # re-create disks on the primary node
gnt-instance replace-disks -p INSTANCE_NAME

$ # re-create disks on the current secondary
gnt-instance replace-disks -s INSTANCE_NAME

$ # change the secondary node, via manual
$ # specification
gnt-instance replace-disks -n NODE INSTANCE_NAME

$ # change the secondary node, via an iallocator
$ # script
gnt-instance replace-disks -I SCRIPT INSTANCE_NAME

$ # automatically fix the primary or secondary node
gnt-instance replace-disks -a INSTANCE_NAME
Conversion of an instance's disk type
$ # start with a non-redundant instance
gnt-instance add -t plain ... INSTANCE

$ # later convert it to redundant
gnt-instance stop INSTANCE
gnt-instance modify -t drbd 
    -n NEW_SECONDARY INSTANCE
gnt-instance start INSTANCE

$ # and convert it back
gnt-instance stop INSTANCE
gnt-instance modify -t plain INSTANCE
gnt-instance start INSTANCE
Node
Operations
Add/Re-add
$ gnt-node add NEW_NODE
     May need to pass -s REPLICATION_IP parameter

$ gnt-node add --readd EXISTING_NODE
               -s parameter not required
Master fail-over
$ gnt-cluster master-failover

    On a non-master, master-capable node
Evacuating nodes
Moving the primary instances
Moving secondary instances
Primary Instance conversion
$ gnt-node migrate NODE
$ gnt-node evacuate NODE
Node Removal
$ gnt-node remove NODE_NAME

           Deconfigure node
         Stop ganeti daemons
          Node in clean state
Hands-on
Job Operations
Listing Jobs
$ gnt-job list
17771 success INSTANCE_QUERY_DATA
17773 success CLUSTER_VERIFY_DISKS
17775 success CLUSTER_REPAIR_DISK_SIZES
17776 error    CLUSTER_RENAME(cluster.example.com)
17780 success CLUSTER_REDIST_CONF
17792 success INSTANCE_REBOOT(instance1.example.com)
Detailed Info
$ gnt-job info 17776
Job ID: 17776
  Status: error
  Received:          2009-10-25 23:18:02.180569
  Processing start: 2009-10-25 23:18:02.200335 (delta 0.019766s)
  Processing end:    2009-10-25 23:18:02.279743 (delta 0.079408s)
  Total processing time: 0.099174 seconds
  Opcodes:
    OP_CLUSTER_RENAME
      Status: error
      Processing start: 2009-10-25 23:18:02.200335
      Processing end:    2009-10-25 23:18:02.252282
      Input fields:
        name: cluster.example.com
      Result:
        OpPrereqError
        [Neither the name nor the IP address of the cluster has changed]
      Execution log:
Watching a job
$ gnt-instance add --submit … instance1
JobID: 17818
$ gnt-job watch 17818
Output from job 17818 follows
-----------------------------
Mon Oct 26 2009 - INFO: Selected nodes for instance instance1 via iallocator dumb: node1, node2
Mon Oct 26 2009 * creating instance disks...
Mon Oct 26 2009 adding instance instance1 to cluster config
Mon Oct 26 2009 - INFO: Waiting for instance instance1 to sync disks.
…
Mon Oct 26 2009 creating os for instance instance1 on node node1
Mon Oct 26 2009 * running the instance OS create scripts...
Mon Oct 26 2009 * starting instance...
30min
   break
Be back at 3:00pm
Hands-on
Using htools
Components
Automatic allocation
hbal : Cluster rebalancer
hail : IAllocator script
hspace : Cluster capacity estimator
hbal
$ hbal -m ganeti.example.org
Loaded 4 nodes, 63 instances
Initial check done: 0 bad nodes, 0 bad instances.
Initial score: 0.53388595
Trying to minimize the CV...
    1. bonsai             g1:g2 => g2:g1 0.53220090 a=f
    2. connectopensource g3:g1 => g1:g3 0.53114943 a=f
    3. amahi              g2:g3 => g3:g2 0.53088116 a=f
    4. mertan             g1:g2 => g2:g1 0.53031862 a=f
    5. dspace             g3:g1 => g1:g3 0.52958328 a=f
Cluster score improved from 0.53388595 to 0.52958328
Solution length=5


           Useful for cluster re-balancing
hbal
$ hbal -C -m ganeti.example.org
Loaded 4 nodes, 71 instances
Initial check done: 0 bad nodes, 0 bad instances.
Initial score: 2.10591985
Trying to minimize the CV...
    1. linuxfund             g4:g3 => g4:g2 2.09981699 a=r:g2
Cluster score improved from 2.10591985 to 2.09981699
Solution length=1

Commands to run to reach the above solution:

  echo jobset 1, 1 jobs
    echo job 1/1
    gnt-instance replace-disks -n g2 linuxfund
hspace
             Cluster planning
$ hspace --memory 512 --disk 10240 
$    -m ganeti.example.org
HTS_INI_INST_CNT=63

HTS_FIN_INST_CNT=101

HTS_ALLOC_INSTANCES=38
HTS_ALLOC_FAIL_REASON=FAILDISK
hail
$ gnt-instance add -t drbd -I hail 
$    -s 10G -o image+ubuntu-maverick 
$    --net 0:link=br42 instance1.example.org 
  - INFO: Selected nodes for instance instance1.example.org
          via iallocator hail: node1.example.org, node2.example.org
* creating instance disks...
adding instance instance1.example.org to cluster config
  - INFO: Waiting for instance instance1.example.org to sync disks.
  - INFO: - device disk/0: 3.60% done, 1149 estimated seconds remaining
  - INFO: - device disk/0: 29.70% done, 144 estimated seconds remaining
  - INFO: - device disk/0: 55.50% done, 88 estimated seconds remaining
  - INFO: - device disk/0: 81.10% done, 47 estimated seconds remaining
  - INFO: Instance instance1.example.org's disks are in sync.
* running the instance OS create scripts...
* starting instance...
Hands-on
Handling Node
   Failures
Node Groups
All nodes in same pool
Nodes not equally connected
sometimes
Cluster-wide job locking
Node Group Attributes
At least one group
alloc_policy: unallocable,
last_resort, & preferred
P/S nodes must be in the same group
for an instance
Group moves are possible
Node Group Management
# add a new node group
gnt-group add <group>

# delete an empty node group
gnt-group remove <group>

# list node groups
gnt-group list

# rename a node group
gnt-group rename <oldname> <newname>
Node Group Management
# list only nodes belonging to a node group
gnt-node {list,info} -g <group>

$ gnt-group list
Group   Nodes Instances AllocPolicy NDParams
default     5        74 preferred   (empty)

# assign a node to a node group
gnt-node modify -g <group>
OOB Management
Emergency Power Off
Repairs
Crashes
gnt-cluster modify --oob-
program <script>
Remote API
Remote API
External tools
Retrieve cluster state
Execute commands
JSON over HTTP via REST
RAPI Security
Users & Passwords
RFC 2617 HTTP Authentication
Read-only or Read-write
RAPI Example use-cases
Web-based GUI (see Ganeti Web
Manager)
Automate cluster tasks via scripts
Custom reporting tools
Project
Roadmap
Project Details
http://code.google.com/p/ganeti/
License: GPL v2
Ganeti 1.2.0 - December 2007
Ganeti 2.0.0 - May 2009
Ganeti 2.4.0 - Mar 2011 / 2.4.2 current
Ganeti 2.5.0 - July 2011?
Upcoming features
Merge htools
CPU Pinning
Replacing internal HTTP server
Import/export version 2
Moving instance across node groups
Network management
Shared storage support
Ganeti Web
 Manager
Conclusion
Questions?
         Lance Albertson                                             Peter Krenesky

        lance@osuosl.org                                            peter@osuosl.org

           @ramereth                                                   @kreneskyp

  http://www.lancealbertson.com                           http://blogs.osuosl.org/kreneskyp/


       http://code.google.com/p/ganeti/
http://code.osuosl.org/projects/ganeti-webmgr


                                 Presentation made with showoff
                     http://github.com/ramereth/presentation-ganeti-tutorial
                     http://is.gd/osconganeti | http://is.gd/osconganetipdf

More Related Content

What's hot

Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Jérôme Petazzoni
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless modeAkihiro Suda
 
Apache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppApache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppJim Jagielski
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingOpen Source Consulting
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersJérôme Petazzoni
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Jérôme Petazzoni
 
Docker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeDocker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeRhio kim
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To RunningGiacomo Vacca
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swiftymtech
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Boden Russell
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by DockerTerry Chen
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudIdeato
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XJérôme Petazzoni
 
"Containers do not contain"
"Containers do not contain""Containers do not contain"
"Containers do not contain"Maciej Lasyk
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionJérôme Petazzoni
 
NanoQplus Installation Guide - for Windows
NanoQplus Installation Guide - for WindowsNanoQplus Installation Guide - for Windows
NanoQplus Installation Guide - for WindowsJongsoo Jeong
 

What's hot (20)

The state of the swarm
The state of the swarmThe state of the swarm
The state of the swarm
 
Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)Introduction to Docker (as presented at December 2013 Global Hackathon)
Introduction to Docker (as presented at December 2013 Global Hackathon)
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
Apache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer AppApache httpd 2.4: The Cloud Killer App
Apache httpd 2.4: The Cloud Killer App
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource Consulting
 
A Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things ContainersA Gentle Introduction To Docker And All Things Containers
A Gentle Introduction To Docker And All Things Containers
 
Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9 Docker Introduction + what is new in 0.9
Docker Introduction + what is new in 0.9
 
Docker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - GoraeDocker, Docker Swarm mangement tool - Gorae
Docker, Docker Swarm mangement tool - Gorae
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
Installation Openstack Swift
Installation Openstack SwiftInstallation Openstack Swift
Installation Openstack Swift
 
Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...Performance characteristics of traditional v ms vs docker containers (dockerc...
Performance characteristics of traditional v ms vs docker containers (dockerc...
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
 
Demystifying kubernetes
Demystifying kubernetesDemystifying kubernetes
Demystifying kubernetes
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in Cloud
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
"Containers do not contain"
"Containers do not contain""Containers do not contain"
"Containers do not contain"
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
 
NanoQplus Installation Guide - for Windows
NanoQplus Installation Guide - for WindowsNanoQplus Installation Guide - for Windows
NanoQplus Installation Guide - for Windows
 

Similar to Hands on Virtualization with Ganeti

9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_trainingvideos
 
Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10Sean Hull
 
Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Henning Sprang
 
Free radius billing server with practical vpn exmaple
Free radius billing server with practical vpn exmapleFree radius billing server with practical vpn exmaple
Free radius billing server with practical vpn exmapleChanaka Lasantha
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with dockerJohan Janssen
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linuxVicent Selfa
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDropsolid
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardwayDave Pitts
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Puppet
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Red Hat Developers
 
WordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry PiWordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry PiYuriko IKEDA
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual InfrastructureBryan McLellan
 
Linux Containers From Scratch
Linux Containers From ScratchLinux Containers From Scratch
Linux Containers From Scratchjoshuasoundcloud
 
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012Lance Albertson
 
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISORVanika Kapoor
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)Ata Rehman
 

Similar to Hands on Virtualization with Ganeti (20)

Dev ops
Dev opsDev ops
Dev ops
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
Web Server Free Bsd
Web Server Free BsdWeb Server Free Bsd
Web Server Free Bsd
 
Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10
 
Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...
 
Free radius billing server with practical vpn exmaple
Free radius billing server with practical vpn exmapleFree radius billing server with practical vpn exmaple
Free radius billing server with practical vpn exmaple
 
Continuous delivery with docker
Continuous delivery with dockerContinuous delivery with docker
Continuous delivery with docker
 
Install and configure linux
Install and configure linuxInstall and configure linux
Install and configure linux
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!Why you’re going to fail running java on docker!
Why you’re going to fail running java on docker!
 
WordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry PiWordPress Home Server with Raspberry Pi
WordPress Home Server with Raspberry Pi
 
Virtual Infrastructure
Virtual InfrastructureVirtual Infrastructure
Virtual Infrastructure
 
Linux Containers From Scratch
Linux Containers From ScratchLinux Containers From Scratch
Linux Containers From Scratch
 
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012
Ganeti Hands-on Walk-thru (part 2) -- LinuxCon 2012
 
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISORLOAD BALANCING OF APPLICATIONS  USING XEN HYPERVISOR
LOAD BALANCING OF APPLICATIONS USING XEN HYPERVISOR
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)Advanced Level Training on Koha / TLS (ToT)
Advanced Level Training on Koha / TLS (ToT)
 

More from OSCON Byrum

OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom FifieldOSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom FifieldOSCON Byrum
 
Protecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent LicenseProtecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent LicenseOSCON Byrum
 
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataUsing Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataOSCON Byrum
 
Finite State Machines - Why the fear?
Finite State Machines - Why the fear?Finite State Machines - Why the fear?
Finite State Machines - Why the fear?OSCON Byrum
 
Open Source Automotive Development
Open Source Automotive DevelopmentOpen Source Automotive Development
Open Source Automotive DevelopmentOSCON Byrum
 
How we built our community using Github - Uri Cohen
How we built our community using Github - Uri CohenHow we built our community using Github - Uri Cohen
How we built our community using Github - Uri CohenOSCON Byrum
 
The Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in PythonThe Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in PythonOSCON Byrum
 
Distributed Coordination with Python
Distributed Coordination with PythonDistributed Coordination with Python
Distributed Coordination with PythonOSCON Byrum
 
An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)OSCON Byrum
 
Oscon 2013 Jesse Anderson
Oscon 2013 Jesse AndersonOscon 2013 Jesse Anderson
Oscon 2013 Jesse AndersonOSCON Byrum
 
US Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David MertzUS Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David MertzOSCON Byrum
 
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...OSCON Byrum
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of usOSCON Byrum
 
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking OSCON Byrum
 
Declarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScriptDeclarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScriptOSCON Byrum
 
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...OSCON Byrum
 
A Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed ApplicationsA Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed ApplicationsOSCON Byrum
 
Life After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data CloudLife After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data CloudOSCON Byrum
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesOSCON Byrum
 
Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platformsOSCON Byrum
 

More from OSCON Byrum (20)

OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom FifieldOSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
OSCON 2013 - Planning an OpenStack Cloud - Tom Fifield
 
Protecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent LicenseProtecting Open Innovation with the Defensive Patent License
Protecting Open Innovation with the Defensive Patent License
 
Using Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open DataUsing Cascalog to build an app with City of Palo Alto Open Data
Using Cascalog to build an app with City of Palo Alto Open Data
 
Finite State Machines - Why the fear?
Finite State Machines - Why the fear?Finite State Machines - Why the fear?
Finite State Machines - Why the fear?
 
Open Source Automotive Development
Open Source Automotive DevelopmentOpen Source Automotive Development
Open Source Automotive Development
 
How we built our community using Github - Uri Cohen
How we built our community using Github - Uri CohenHow we built our community using Github - Uri Cohen
How we built our community using Github - Uri Cohen
 
The Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in PythonThe Vanishing Pattern: from iterators to generators in Python
The Vanishing Pattern: from iterators to generators in Python
 
Distributed Coordination with Python
Distributed Coordination with PythonDistributed Coordination with Python
Distributed Coordination with Python
 
An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)An overview of open source in East Asia (China, Japan, Korea)
An overview of open source in East Asia (China, Japan, Korea)
 
Oscon 2013 Jesse Anderson
Oscon 2013 Jesse AndersonOscon 2013 Jesse Anderson
Oscon 2013 Jesse Anderson
 
US Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David MertzUS Patriot Act OSCON2012 David Mertz
US Patriot Act OSCON2012 David Mertz
 
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
OSCON 2012 US Patriot Act Implications for Cloud Computing - Diane Mueller, A...
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
 
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
BodyTrack: Open Source Tools for Health Empowerment through Self-Tracking
 
Declarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScriptDeclarative web data visualization using ClojureScript
Declarative web data visualization using ClojureScript
 
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...Using and Building Open Source in Google Corporate Engineering - Justin McWil...
Using and Building Open Source in Google Corporate Engineering - Justin McWil...
 
A Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed ApplicationsA Look at the Network: Searching for Truth in Distributed Applications
A Look at the Network: Searching for Truth in Distributed Applications
 
Life After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data CloudLife After Sharding: Monitoring and Management of a Complex Data Cloud
Life After Sharding: Monitoring and Management of a Complex Data Cloud
 
Faster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypesFaster! Faster! Accelerate your business with blazing prototypes
Faster! Faster! Accelerate your business with blazing prototypes
 
Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platforms
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

Hands on Virtualization with Ganeti

  • 1. Hands on Virtualization with Ganeti Lance Albertson Peter Krenesky http://is.gd/osconganeti | http://is.gd/osconganetipdf
  • 2. About us OSU Open Source Lab Server hosting for Open Source Projects Open Source development projects Lance / Lead Systems Administrator Peter / Lead Software Engineer
  • 3. How we use Ganeti Powers all OSUOSL virtualization Project hosting KVM based Hundreds of VMs Web hosts, code hosting, etc
  • 4. Tutorial Overview Ganeti Architecture Installation Virtual machine deployment Cluster Management Dealing with failures Ganeti Web Manager
  • 5. Hands-on Tutorial Debian VMs with VirtualBox Pre-setup already using Puppet Setup Guide PDF Hands-on is optional
  • 6. Importing VMs Install VirtualBox Import node1/2 (node3 is optional) USB drives are available with images
  • 8. What is Ganeti? Cluster virtual server management software tool Built on top of existing OSS hypervisors Fast & simple recovery after physical failures Using cheap commodity hardware Private IaaS
  • 9. Comparing Ganeti Utilizes local storage Built to deal with hardware failures Mature project Low package requirements Easily pluggable via hooks & RAPI
  • 10. Project Background Google funded project Used in internal corporate env Open Sourced in 2007 GPLv2 Team based in Google Switzerland Active mailing list & IRC channel Started internally before libvirt
  • 12. Components Python Haskell DRBD LVM Hypervisor
  • 14. Nodes Physical machine Fault tolerance not required Added/removed at will from cluster No data loss with loss of node
  • 15. Node Daemons ganeti-noded control hardware resources, runs on all ganeti-confd only functional on master, runs on all ganeti-rapi offers HTTP-based API for cluster, runs on master ganeti-masterd allows control of cluster, runs on master
  • 16. Instances Virtual machine that runs on the cluster fault tolerant/HA entity within cluster
  • 17. Instance Parameters Hypervisor (called hvparams) General (called beparams) Networking (called nicparams) Modified via instance or cluster defaults
  • 18. hvparams Boot order, CDROM Image NIC Type, Disk Type VNC Parameters, Serial console Kernel Path, initrd, args Other Hypervisor specific parameters
  • 19. beparams nicparams Memory / Virtual CPUs MAC NIC mode (routed or bridged) Link
  • 20. Disk template drbd : LVM + DRBD between 2 nodes plain : LVM w/ no redundancy file : Plain files, no redundancy diskless : Special purposes
  • 21. IAllocator Automatic placement of instances Eliminates manual node specification htools External scripts used to compute
  • 22. Primary & Secondary concepts Instances always runs on primary Uses secondary node for disk replication Depends on disk template (i.e. drbd)
  • 24. Hardware Planning Disks Types: SAS vs SATA Speed: Faster = better Number: More = better
  • 25. Hardware Planning CPU Cores: More = better Speed: Depends on your uses Brand: AMD vs Intel
  • 26. Hardware Planning RAM Amount: More = better Use case: Types of services
  • 27. Other considerations RAID Redundant Power Higher Density More nodes Network topology
  • 28. Operating System Planning Debian - most supported upstream Gentoo - great support Ubuntu - should work great CentOS - works but a few setup issues
  • 29. Networking Bridging is most widely used Routed networking also supported Nodes on private NAT/VLAN
  • 32. Operating System Setup Clean, minimal system install Minimum 20GB system volume Single LVM Volume Group for instances 64bit is preferred Similar hardware/software configuration across nodes
  • 33. Partition Setup typical layout /dev/sda1 /boot 200M /dev/sda2 / 10-20G /dev/sda3 LVM rest, named ganeti
  • 34. Hostname Issues Requires hostname to be the FQDN i.e. node1.example.com instead of node1 hostname --fqdn requires resolver library Reduce dependency on DNS and guessing
  • 35. Installing the Hypervisor
  • 36. Hypervisor requirements Mandatory on all nodes Xen 3.0 and above KVM 0.11 and above Install via your distro
  • 38. Installing DRBD Required for high availability Can upgrade non-HA to DRBD later Need at least >=drbd-8.0.12 Depends on distro Support Included in mainline
  • 39. DRBD Setup Installation $ apt-get install drbd8-utils Via modules $ echo drbd minor_count=255 usermode_helper=/bin/true >> /etc/modules $ depmod -a $ modprobe drbd minor_count=255 usermode_helper=/bin/true Via Grub # Kernel Commands drbd.minor_count=255 drbd.usermode_helper=/bin/true
  • 41. Interface Layout eth0 - trunked VLANs eth1 - private DRBD network
  • 42. VLAN setup for Debian/Ubuntu allow-hotplug eth0 allow-hotplug eth1 allow-hotplug vlan100 allow-hotplug vlan42 auto vlan100 iface vlan100 inet manual vlan_raw_device eth0 auto vlan42 iface vlan42 inet manual vlan_raw_device eth0
  • 43. Bridge setup for Debian/Ubuntu allow-hotplug br42 allow-hotplug br10 auto br42 iface br42 inet static address 10.1.0.140 netmask 255.255.254.0 network 10.1.0.0 broadcast 10.1.1.255 gateway 10.1.0.1 dns-nameservers 10.1.0.130 dns-search example.org bridge_ports vlan42 bridge_stp off bridge_fd 0 auto br100 iface br100 inet manual bridge_ports vlan100 bridge_stp off bridge_fd 0
  • 44. DRBD Network setup for Debian/Ubuntu iface eth1 inet static address 192.168.16.140 netmask 255.255.255.0 network 192.168.16.0 broadcast 192.168.16.255
  • 45. Configuring LVM $ pvcreate /dev/sda3 $ vgcreate ganeti /dev/sda3
  • 46. lvm.conf changes Ignore drbd devices filter = ["r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ]
  • 48. Installation Options Via package manager Via source
  • 49. Installing Ganeti Dependencies via source $ apt-get install lvm2 ssh bridge-utils iproute iputils-arping ndisc6 python python-pyopenssl openssl python-pyparsing python-simplejson python-pyinotify python-pycurl socat
  • 50. Htools Dependencies provides IAllocator hail $ apt-get install ghc6 libghc6-json-dev libghc6-network-dev libghc6-parallel-dev libghc6-curl-dev
  • 51. Install Ganeti Note: this is for >=ganeti-2.5 $ ./configure --localstatedir=/var --sysconfdir=/etc --enable-htools $ make $ make install
  • 52. Startup Scripts Installed into /usr/local/ $ cp doc/examples/ganeti.initd /etc/init.d/ganeti $ update-rc.d ganeti defaults 20 80
  • 53. ganeti-watcher $ cp doc/examples/ganeti.cron /etc/cron.d/ganeti Automatically restarts failed instances Restarts failed secondary storage
  • 54. What gets installed Python libraries under the ganeti namespace Set of programs under /usr/local/sbin or /usr/sbin Set of tools under lib/ganeti/tools directory IAllocator scripts under lib/ganeti/tools directory Cron job needed for cluster maintenance Init script for Ganeti daemons
  • 56. Instance creation scripts also known as OS Definitions Requires Operating System installation script Provide scripts to deploy various operating systems Ganeti Instance Deboostrap - upstream supported Ganeti Instance Image - written by me
  • 57. OS Variants Variants of the OS Definition Used for defining guest operating system Types of deployment settings: Filesystem Image directory Image Name
  • 58. Install Instance Image Dependencies $ apt-get install dump qemu-kvm kpartx
  • 59. Install Instance Image $ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-os-dir=/srv/ganeti/os $ make $ make install
  • 60. Creating images Manually install/setup guest Shutdown guest Create filesystem dump or tarball Place in IMAGE_DIR
  • 62. Cluster name Mandatory once per cluster, on the first node. Cluster hostname resolvable by all nodes IP reserved exclusively for the cluster Used by master node i.e.: ganeti.example.org
  • 63. Initialization KVM example $ gnt-cluster init --master-netdev=br0 --vg-name ganeti --secondary-ip 192.168.16.16 --enabled-hypervisors=kvm --nic-parameters link=br0 --backend-parameters vcpus=1,memory=128M --hypervisor-parameters kvm:kernel_path=/boot/vmlinuz-2.6-kvmU vnc_bind_address=0.0.0.0 ganeti.example.org
  • 64. Cluster init args Master Network Device --master-netdev=br0 Volume Group Name --vg-name ganeti DRBD Interface --secondary-ip 192.168.16.16 Enabled Hypervisors --enabled-hypervisors=kvm
  • 65. Cluster init args Default NIC --nic-parameters link=br0 Default Backend parameters --backend-parameters vcpus=1,memory=128M Default Hypervisor Parameters --hypervisor-parameters kvm:kernel_path=/boot/vmlinuz-2.6-kvmU, vnc_bind_address=0.0.0.0 Cluster hostname ganeti.example.org
  • 67. Testing/Viewing the nodes $ gnt-node list Node DTotal DFree MTotal MNode MFree Pinst Sinst node1.example.org 223.4G 223.4G 7.8G 300M 7.5G 0 0 node2.example.org 223.4G 223.4G 7.8G 300M 7.5G 0 0 Ganeti damons can talk to each other Ganeti can examine storage on the nodes (DTotal/DFree) Ganeti can talk to the selected hypervisor (MTotal/MNode/MFree)
  • 68. Cluster burnin testing $ /usr/lib/ganeti/tools/burnin -o image -p instance{1..5} Does the hardware work? Can the Hypervisor create instances? Does each operation work properly?
  • 69. Adding an instance Requires at least 5 params OS for the instance (gnt-os list) Disk template Disk count & size Node or iallocator Instance name (resolvable)
  • 71. Add Command $ gnt-instance add -n TARGET_NODE:SECONDARY_NODE -o OS_TYPE -t DISK_TEMPLATE -s DISK_SIZE INSTANCE_NAME
  • 72. Other options among others Memory size (-B memory=1GB) Number of virtual CPUs (-B vcpus=4) NIC settings (--nic 0:link=br100) batch-create See gnt-instance manpage for others
  • 73. Instance Removal $ gnt-instance remove INSTANCE_NAME
  • 74. Startup/Shutdown $ gnt-instance startup INSTANCE_NAME $ gnt-instance shutdown INSTANCE_NAME Started automatically Do not use hypervisor directly
  • 75. Querying Instances Two methods: listing instances detailed instance information One useful for grep Other has more details, slower
  • 76. Listing instances $ gnt-instance list Instance Hypervisor OS Primary_node Status Memory instance1.example.org kvm image+gentoo-hardened node1.example.org ERROR_down - instance2.example.org kvm image+centos node2.example.org running 512M instance3.example.org kvm image+debian-squeeze node1.example.org running 512M instance4.example.org kvm image+ubuntu-lucid node2.example.org running 512M
  • 77. Detailed Instance Info $ gnt-instance info instance2 Instance name: instance2.example.org UUID: 5b5b1c35-23de-45bf-b125-a9a001b2bebb Serial number: 22 Creation time: 2011-05-24 23:05:44 Modification time: 2011-06-15 21:39:12 State: configured to be up, actual state is up Nodes: - primary: node2.example.org - secondaries: Operating system: image+centos Allocated network port: 11013 Hypervisor: kvm - console connection: vnc to node2.example.org:11013 (display 5113) - acpi: True ... Hardware: - VCPUs: 2 - memory: 512MiB - NICs: - nic/0: MAC: aa:00:00:39:4b:b5, IP: None, mode: bridged, link: br113 Disk template: plain Disks: - disk/0: lvm, size 9.8G access mode: rw logical_id: ganeti/0c3f6913-cc3d-4132-bbbf-af9766a7cde3.disk0 on primary: /dev/ganeti/0c3f6913-cc3d-4132-bbbf-af9766a7cde3.disk0 (252:3)
  • 78. Export/Import $ gnt-backup export -n TARGET_NODE INSTANCE_NAME Create snapshot of disk & configuration Backup, or import into another cluster One snapshot for an instance
  • 79. Importing an instance $ gnt-backup import -n TARGET_NODE --src-node=NODE --src-dir=DIR INSTANCE_NAME
  • 80. Import of foreign instances $ gnt-instance add -t plain -n HOME_NODE ... --disk 0:adopt=lv_name[,vg=vg_name] INSTANCE_NAME Already stored as LVM volumes Ensure non-managed instance is stopped Take over given logical volumes Better transition
  • 81. Instance Console $ gnt-instance console INSTANCE_NAME Type ^] when done, to exit.
  • 83. Changing the Primary node Failing over an instance $ gnt-instance failover INSTANCE_NAME Live migrating an instance $ gnt-instance migrate INSTANCE_NAME
  • 84. Restoring redundancy for DRBD-based instances Primary node storage failed Re-create disks on it Secondary node storage failed Re-create disks on secondary node Change secondary
  • 85. Replacing disks $ # re-create disks on the primary node gnt-instance replace-disks -p INSTANCE_NAME $ # re-create disks on the current secondary gnt-instance replace-disks -s INSTANCE_NAME $ # change the secondary node, via manual $ # specification gnt-instance replace-disks -n NODE INSTANCE_NAME $ # change the secondary node, via an iallocator $ # script gnt-instance replace-disks -I SCRIPT INSTANCE_NAME $ # automatically fix the primary or secondary node gnt-instance replace-disks -a INSTANCE_NAME
  • 86. Conversion of an instance's disk type $ # start with a non-redundant instance gnt-instance add -t plain ... INSTANCE $ # later convert it to redundant gnt-instance stop INSTANCE gnt-instance modify -t drbd -n NEW_SECONDARY INSTANCE gnt-instance start INSTANCE $ # and convert it back gnt-instance stop INSTANCE gnt-instance modify -t plain INSTANCE gnt-instance start INSTANCE
  • 88. Add/Re-add $ gnt-node add NEW_NODE May need to pass -s REPLICATION_IP parameter $ gnt-node add --readd EXISTING_NODE -s parameter not required
  • 89. Master fail-over $ gnt-cluster master-failover On a non-master, master-capable node
  • 90. Evacuating nodes Moving the primary instances Moving secondary instances
  • 91. Primary Instance conversion $ gnt-node migrate NODE $ gnt-node evacuate NODE
  • 92. Node Removal $ gnt-node remove NODE_NAME Deconfigure node Stop ganeti daemons Node in clean state
  • 94. Listing Jobs $ gnt-job list 17771 success INSTANCE_QUERY_DATA 17773 success CLUSTER_VERIFY_DISKS 17775 success CLUSTER_REPAIR_DISK_SIZES 17776 error CLUSTER_RENAME(cluster.example.com) 17780 success CLUSTER_REDIST_CONF 17792 success INSTANCE_REBOOT(instance1.example.com)
  • 95. Detailed Info $ gnt-job info 17776 Job ID: 17776 Status: error Received: 2009-10-25 23:18:02.180569 Processing start: 2009-10-25 23:18:02.200335 (delta 0.019766s) Processing end: 2009-10-25 23:18:02.279743 (delta 0.079408s) Total processing time: 0.099174 seconds Opcodes: OP_CLUSTER_RENAME Status: error Processing start: 2009-10-25 23:18:02.200335 Processing end: 2009-10-25 23:18:02.252282 Input fields: name: cluster.example.com Result: OpPrereqError [Neither the name nor the IP address of the cluster has changed] Execution log:
  • 96. Watching a job $ gnt-instance add --submit … instance1 JobID: 17818 $ gnt-job watch 17818 Output from job 17818 follows ----------------------------- Mon Oct 26 2009 - INFO: Selected nodes for instance instance1 via iallocator dumb: node1, node2 Mon Oct 26 2009 * creating instance disks... Mon Oct 26 2009 adding instance instance1 to cluster config Mon Oct 26 2009 - INFO: Waiting for instance instance1 to sync disks. … Mon Oct 26 2009 creating os for instance instance1 on node node1 Mon Oct 26 2009 * running the instance OS create scripts... Mon Oct 26 2009 * starting instance...
  • 97. 30min break Be back at 3:00pm
  • 99. Components Automatic allocation hbal : Cluster rebalancer hail : IAllocator script hspace : Cluster capacity estimator
  • 100. hbal $ hbal -m ganeti.example.org Loaded 4 nodes, 63 instances Initial check done: 0 bad nodes, 0 bad instances. Initial score: 0.53388595 Trying to minimize the CV... 1. bonsai g1:g2 => g2:g1 0.53220090 a=f 2. connectopensource g3:g1 => g1:g3 0.53114943 a=f 3. amahi g2:g3 => g3:g2 0.53088116 a=f 4. mertan g1:g2 => g2:g1 0.53031862 a=f 5. dspace g3:g1 => g1:g3 0.52958328 a=f Cluster score improved from 0.53388595 to 0.52958328 Solution length=5 Useful for cluster re-balancing
  • 101. hbal $ hbal -C -m ganeti.example.org Loaded 4 nodes, 71 instances Initial check done: 0 bad nodes, 0 bad instances. Initial score: 2.10591985 Trying to minimize the CV... 1. linuxfund g4:g3 => g4:g2 2.09981699 a=r:g2 Cluster score improved from 2.10591985 to 2.09981699 Solution length=1 Commands to run to reach the above solution: echo jobset 1, 1 jobs echo job 1/1 gnt-instance replace-disks -n g2 linuxfund
  • 102. hspace Cluster planning $ hspace --memory 512 --disk 10240 $ -m ganeti.example.org HTS_INI_INST_CNT=63 HTS_FIN_INST_CNT=101 HTS_ALLOC_INSTANCES=38 HTS_ALLOC_FAIL_REASON=FAILDISK
  • 103. hail $ gnt-instance add -t drbd -I hail $ -s 10G -o image+ubuntu-maverick $ --net 0:link=br42 instance1.example.org - INFO: Selected nodes for instance instance1.example.org via iallocator hail: node1.example.org, node2.example.org * creating instance disks... adding instance instance1.example.org to cluster config - INFO: Waiting for instance instance1.example.org to sync disks. - INFO: - device disk/0: 3.60% done, 1149 estimated seconds remaining - INFO: - device disk/0: 29.70% done, 144 estimated seconds remaining - INFO: - device disk/0: 55.50% done, 88 estimated seconds remaining - INFO: - device disk/0: 81.10% done, 47 estimated seconds remaining - INFO: Instance instance1.example.org's disks are in sync. * running the instance OS create scripts... * starting instance...
  • 105. Node Groups All nodes in same pool Nodes not equally connected sometimes Cluster-wide job locking
  • 106. Node Group Attributes At least one group alloc_policy: unallocable, last_resort, & preferred P/S nodes must be in the same group for an instance Group moves are possible
  • 107. Node Group Management # add a new node group gnt-group add <group> # delete an empty node group gnt-group remove <group> # list node groups gnt-group list # rename a node group gnt-group rename <oldname> <newname>
  • 108. Node Group Management # list only nodes belonging to a node group gnt-node {list,info} -g <group> $ gnt-group list Group Nodes Instances AllocPolicy NDParams default 5 74 preferred (empty) # assign a node to a node group gnt-node modify -g <group>
  • 109. OOB Management Emergency Power Off Repairs Crashes gnt-cluster modify --oob- program <script>
  • 111. Remote API External tools Retrieve cluster state Execute commands JSON over HTTP via REST
  • 112. RAPI Security Users & Passwords RFC 2617 HTTP Authentication Read-only or Read-write
  • 113. RAPI Example use-cases Web-based GUI (see Ganeti Web Manager) Automate cluster tasks via scripts Custom reporting tools
  • 115. Project Details http://code.google.com/p/ganeti/ License: GPL v2 Ganeti 1.2.0 - December 2007 Ganeti 2.0.0 - May 2009 Ganeti 2.4.0 - Mar 2011 / 2.4.2 current Ganeti 2.5.0 - July 2011?
  • 116. Upcoming features Merge htools CPU Pinning Replacing internal HTTP server Import/export version 2 Moving instance across node groups Network management Shared storage support
  • 119. Questions? Lance Albertson Peter Krenesky lance@osuosl.org peter@osuosl.org @ramereth @kreneskyp http://www.lancealbertson.com http://blogs.osuosl.org/kreneskyp/ http://code.google.com/p/ganeti/ http://code.osuosl.org/projects/ganeti-webmgr Presentation made with showoff http://github.com/ramereth/presentation-ganeti-tutorial http://is.gd/osconganeti | http://is.gd/osconganetipdf