Linux KVM Virtualization (LFS540)

The Linux Foundation designed the Linux KVM Virtualization course as a deep dive into KVM, the most popular virtualization technology in the open source ecosystem. Built by experts in the field of virtualization, this course provides the technical background to understand the components that constitute KVM as well as the components that are required to build and administer a modern virtual IT infrastructure.
This course is extremely focused on problems typically faced in the enterprise world: the lectures are filled with example of how KVM can be used in business environments as well as practical lab sessions that let participants gain a real world perspective of common virtualization problem and how to address them.
Technical IT professionals interested in building a reliable, efficient and open virtualization infrastructure with KVM. System administrators and devops who want to expand their existing skills to cover more advanced architecture topic, while gaining a deep understanding of the technologies at play in a virtual IT environment.
Attendees are expected to master the skills covered in the Linux Foundation Engineer track before attending this course. A good grasp of typical scalability and system administration issues frequently encountered in enterprise environments is useful. Participants are expected to be well versed in Linux command line usage, shell scripting and text file editing and Linux System Administration.
Topics Covered
At the end of the training, attendees will have acquired the skills needed to:
  • What role KVM plays in the virtualization ecosystem
  • How to assemble KVM and other components into a robust and efficient virtual IT infrastructure
Show details
Course Outline
1. Introduction
  • Linux Foundation
  • Linux Foundation Training
  • Logistics

2. Virtualization Overview
  • Software vs hardware
    • Paravirtualization
  • Available hypervisors
  • Terminology
    • Hosts vs Guests
    • Virtual Machine Monitor
    • Virtual Machine
    • Hardware Virtual Machine (HVM)
    • Emulator
    • virtual machine, images
3. KVM Quick Start
  • virt-install
  • kimchi
  • Qemu
  • Other OSS "quick start" tools
    • virt-manager
  • How to quickly get guest images installed and running with basic storage and networking configurations
4. KVM - the Kernel Virtual Machine
  • Architecture of KVM
    • Short history of KVM
    • How KVM is related to Linux
    • Where does Linux end and KVM start and vice versa
    • Is KVM a "bare-metal" hypervisor
    • KVM on x86 and other architectures
  • If you know how to use Linux you know how to use KVM
    • Brief section showing that Linux administrators already know much of what is necessary to administer KVM
  • How to obtain KVM
    • Enterprise Linux
    • Distribution differences
    • Community or Unsupported Linux
    • Custom-built or custom-configured options
5. Running KVM using Qemu
  • What is Qemu?
    • History
    • Overview
  • Running KVM using Qemu
    • detailed exposition of Qemu commands for
    • cpu, bus, disk, network
    • Qemu image formats
    • qcow2
    • raw
    • qed
    • others
  • qemu-img
  • Qemu and physical storage (LVM and LUNs)
  • Qemu networking
    • net device
    • emulation
    • virtio
    • vnet
      • Qemu graphics
      • Setting the VM bios using Qemu
      • Character devices, memory devices, and inter-vm communications
      • USB, other shared devices
      • Debugging with Qemu
      • Summary
        • Create, install, run, and monitor a VM using Qemu commands
6. libvirt
  • Why use libvirt?
  • Architecture of libvirt
    • libvirt network daemon
    • libvirt agent
    • virsh - the libvirt shell
    • libvirt XML
  • How libvirt uses Qemu and other Linux interfaces to run guests
    • libvirt guest state - how its stored and how you should use it
  • virt-manager and virt-viewer
  • libvirt tools
    • kimchi, ovirt, others
  • Using OpenVswitch with libvirt
    • OpenVswitch overview
    • OpenVswitch and Openflow
    • Software Defined Networking
    • libvirt's support for OpenVswitch
    • OpenVswitch, libvirt, and KVM
    • Putting it all together
  • Summary
    • create, install, run, and monitor a VM using libvirt commands and tools
  • oVirt
    • Architecture of oVirt
      • Focus and scale
      • Community
      • ovirtÂengine server
      • VDSM host agent
      • libvirt
    • oVirt data center organization
      • oVirt clusters or resource pools
        • servers
        • storage
        • network resources
        • Software Defined Networking
        • Neutron and KVM
      • Guest image repository
        • Creating
        • Cloning
        • Running VM images
    • VDSM storage clusters and shared block services
    • Summary
      • Obtain and install oVirt
      • Create, install, run, and monitor VMs using shared resources defined by oVirt
  • OpenStack
    • Architecture of OpenStack
      • Focus and scale
      • COPYRIGHT the Linux Foundation, 2014. Do Not Distribute. 3 / 4
      • Community
      • Versions and roadmap
      • Compute services
      • Storage services
      • Networking services
      • Security and credentials
    • OpenStack data center organization
      • Block and object Storage services
      • Networking
        • Software Define Networking and OpenStack
        • Neutron
        • Neutron and KVM
      • VM repository
      • Host and VM deployment
    • Customizing OpenStack for your KVM hosts and guests
    • Summary
      • obtain and install OpenStack
      • Creating, installing, running, and monitoring VMs using shared resources defined by OpenStack
  • Hardware
  • Tuning for Performance
    • Using VFIO to give the guest access to device memory
    • Disk Storage
      • Cache Settings
      • Virtio-scsi
      • Virtio-dataplane
      • I/O Schedulers
    • Networking
      • virtio-ethernet
      • SR-IOV
      • vhost-net
    • Memory
      • Possible memory performance issues
      • Introduction to NUMA
      • AutoNUMA
      • Memory migration
    • Analyzing vm performance
      • perf kvm
      • kvm_stat
      • kvmtrace
  • Security
    • Host security concerns
    • Guest securty
      • sVirt
  • Clustered file systems and shared storage
  • Data center automation