Virtual Infrastructure:
  kvm, uvb + libvirt


      Bryan McLellan
          http://loftninjas.org
           btm@loftnin...
Widemile is awesome




I work there, and thus the world is a better place for all
                     of humanity.
What I got for “free”

•Identical Blades
•Running non identical Debian installs (etch/sid, i386/amd64)
•Running different ...
Problems


• Lack of Homogeneity

• Monkey configuration sucks

• Documentation offensive

                               ...
What I did
• Lack of Homogeneity
  – debian pxe install with preseeds
• Monkey configuration sucks
  – puppify (configurat...
We can always do better




 http://www.flickr.com/photos/jpasden/67513019/
What upset me (nobody else cares)
• PXE installs take soooooo long
• Backporting too many packages to debian
• Interacting...
How I Learned to Stop Worrying and
           Love the Bomb
• PXE installs take soooooo long
   – deb-bootstrap with ubunt...
libvirt – virtualization API




Started at Redhat ‘s Emerging Technology Group
Was Xen focused, but Redhat recently bough...
virsh
virt-manager
ubuntu-vm-builder
Bash script wrapper for deb-bootstrap + qemu
apt-get install ubuntu-vm-builder
         capistrano scrip...
ubuntu-vm-builder
Bash script wrapper for deb-bootstrap + qemu
apt-get install ubuntu-vm-builder
         capistrano scrip...
kvm
    The cool hypervisor on the block (ubuntu, redhat)
•
    Kernel modifications are mainlined (unlike xen)
•
    Supe...
file { quot;/srv/kvmquot;:
  ensure => directory,
  group => admins,
  mode => 0775,
}

# Permissions required for remote ...
service { quot;libvirt-binquot;:
              ensure => running,
              hasstatus => true,
              require =...
http://loftninjas.org
Upcoming SlideShare
Loading in …5
×

Virtual Infrastructure

1,941 views

Published on

Building an open-source virtualization infrastructure

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,941
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
85
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Virtual Infrastructure

  1. 1. Virtual Infrastructure: kvm, uvb + libvirt Bryan McLellan http://loftninjas.org btm@loftninjas.org Senior Systems Administrator Widemile
  2. 2. Widemile is awesome I work there, and thus the world is a better place for all of humanity.
  3. 3. What I got for “free” •Identical Blades •Running non identical Debian installs (etch/sid, i386/amd64) •Running different versions of vmware-server • OS, software, installed by hand • Configure using notes in an outlook public folder •Host database tracked with DNS vm04-something.test.widemile.com
  4. 4. Problems • Lack of Homogeneity • Monkey configuration sucks • Documentation offensive http://www.flickr.com/photos/annebuzz/2666654754/
  5. 5. What I did • Lack of Homogeneity – debian pxe install with preseeds • Monkey configuration sucks – puppify (configuration management) – capistrano (ruby scripting over ssh) – iclassify (node classification) • Documentation offensive – Configuration management is self documenting – Wikify the notes
  6. 6. We can always do better http://www.flickr.com/photos/jpasden/67513019/
  7. 7. What upset me (nobody else cares) • PXE installs take soooooo long • Backporting too many packages to debian • Interacting with VMware programmatically too much work. • VMware UIs cost $$ • Dreams: cpu/ram hotplug, live migration
  8. 8. How I Learned to Stop Worrying and Love the Bomb • PXE installs take soooooo long – deb-bootstrap with ubuntu-vm-builder (2.5min) • Backporting too many packages to debian – switch to Ubuntu! • Interacting with VMware programmatically too much work. – libvirt is much easier and cleaner • VMware UIs cost $$ – Libvirt is free • Dreams: cpu/ram hotplug, live migration – Word on the street is that kvm + libvirt support these – I don’t think they’re there yet though.
  9. 9. libvirt – virtualization API Started at Redhat ‘s Emerging Technology Group Was Xen focused, but Redhat recently bought Qumranet, makers of KVM Ubuntu/Canonical picked KVM as virtualization platform of choice libvirt doesn’t really support all that Provides CLI management (virsh) Provides GUI management (virt-manager)
  10. 10. virsh
  11. 11. virt-manager
  12. 12. ubuntu-vm-builder Bash script wrapper for deb-bootstrap + qemu apt-get install ubuntu-vm-builder capistrano script: vmware: 102 lines uvb: 12 lines ubuntu-vm-builder kvm hardy --addpkg openssh-server -d /srv/kvm/#{hostname} --domain #{domain} --hostname #{hostname} --mem #{memory} --mirror http://ubuntu.widemile.com/ubuntu --libvirt qemu:///system --bridge #{eth0}
  13. 13. ubuntu-vm-builder Bash script wrapper for deb-bootstrap + qemu apt-get install ubuntu-vm-builder capistrano script: vmware: 102 lines uvb: 12 lines Not a lot of enterprise features yet ubuntu-vm-builder kvm Bridging vs NAT hardy --addpkg openssh-server / creates user Root password -d /srv/kvm/#{hostname} --domain #{domain} --hostname #{hostname} --mem #{memory} --mirror http://ubuntu.widemile.com/ubuntu --libvirt qemu:///system --bridge #{eth0}
  14. 14. kvm The cool hypervisor on the block (ubuntu, redhat) • Kernel modifications are mainlined (unlike xen) • Super fast / lightweight (feel the wind in your hair) • Growing fast • class kvm { case $lsbdistid { quot;Ubuntuquot;: { # Only Ubuntu releases are new enough for this package { quot;kvmquot;: ensure => present; quot;libvirt-binquot;: ensure => present; quot;ubuntu-vm-builderquot;: ensure => latest; }
  15. 15. file { quot;/srv/kvmquot;: ensure => directory, group => admins, mode => 0775, } # Permissions required for remote access # Puppet doesn't support managing the libvirtd group members through the group type file { quot;/var/run/libvirt/libvirt-sockquot;: group => admins, require => Service[quot;libvirt-binquot;]; quot;/var/run/libvirt/libvirt-sock-roquot;: group => admins, require => Service[quot;libvirt-binquot;]; }
  16. 16. service { quot;libvirt-binquot;: ensure => running, hasstatus => true, require => Package[quot;libvirt-binquot;], } # required by u-v-b exec { quot;devmapper-autoloadquot;: command => quot;/bin/echo dm_mod >> /etc/modulesquot;, onlyif => quot;/usr/bin/test `grep -c '^dm_mod' /etc/modules` -lt 1quot;, } exec { quot;devmapper-loadquot;: command => quot;/sbin/modprobe dm_modquot;, onlyif => quot;/usr/bin/test `/bin/lsmod | grep -c '^dm_mod'` -lt 1quot;, } realize Group[quot;libvirtdquot;] } } }
  17. 17. http://loftninjas.org

×