-
Topic: Virtualisation from the Ground Up
-
Host: Jon A
An introduction to virtualisation
What is Virtualisation?
-
Multiple instances of different operating systems running on the same piece of hardware.
-
Traditional environment – multitude of tin.
-
Virtual environment – minimal tin.
-
Power savings etc.
How does it work
-
Hardware virtualisation instruction set in CPU.
-
Hypervisor layer.
-
Shared Hardware resources.
-
Hard disk images.
Software Available?
-
Virtualbox (OSE) – Oracle.
-
VMWare
-
Xen – Citrix.
-
KVM – RedHat.
-
HyperV – Microsoft
Pre-Flight Checks – Hardware
We need to make sure our hardware is capable of virtualisation
egrep -c '(vmx|svm)' /proc/cpuinfo
0 = no hardware support
1 or more = hardware support available but may need to ensure switch is set in the bios
Pre-Flight Checks 2 – CPU
Install cpu-checker
apt-get install cpu-checker kvm-ok
Example output:
INFO: /dev/kvm does not exist HINT: sudo modprobe kvm_amd INFO: Your CPU supports KVM extensions KVM acceleration can be used
Pre-Flight Checks 3 – Kernel
Use a 64 bit kernel (if possible), To serve more than 2GB of RAM for your VMs, you must use a 64-bit kernel.
egrep -c ' lm ' /proc/cpuinfo
0 means no 64 bit
1 or more means it is
Now lets check we are running a 64 bit kernel
uname -m
if x86_64 is listed we’re golden!
Check your CPU is 64 bit capable
Software
For this demonstration Ubuntu and KVM is used
Ubuntu 12.04 Server
User called virtdude was created on install
Ubuntu Installation
Basic server install OpenSSH server added after reboot conduct the usual update
sudo apt-get update sudo apt-get dist-upgrade KVM Installation
Lets install the needed packages:
sudo apt-get update sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
-
libvirt-bin provides libvirtd which is the daemon for monitoring qemu and kvm instances using libvirt.
-
qemu-kvm is the backend hypervisor.
-
bridge-utils provides a bridge from your network to the virtual machines.
-
ubuntu-vm-builder powerful command line tool for building virtual machines, uses debootstrap.
-
KVM – User Privileges
Ensure user is a member of the libvirt group
sudo adduser `id -un` libvirtd
Now is probably a good opportunity to reboot.
KVM – Lets connect
Now we have the environment built, the hardware is setup and the hypervisor is running
Lets connect to the hypervisor to test
virsh list
Example output:
Id Name State
No VM running but a successful connection to the hypervisor
Networking
Out of the box we get a NAT
eth0 = 192.168.1.10
Ideal for testing/single host
We want a bridge onto physical LAN
br0 = 192.168.1.10
Guests
Virtualised machines are called guests
Lets make one
On the “management machine” install virt-manager for gui access
sudo apt-get install virt-manager
All eggs in one basket?
Single piece of tin multiple OS
Lets bring online a second host
Host 2
Eggs in 2 baskets?
Load balancing
-
Resilience
-
Shared storage
-
NFS Shared Storage
Lets install NFS on host 1
sudo apt-get install nfs-kernel-server
mkdir /export on host1
mkdir /import on both
cat <EOF»etc/exports
/export *(rw,no_root_squash)
EOF
Lets reboot to get NFS running
We now need to add the storage in the GUI console
Migration
We should now be able to migrate a VM from one host to the other
Migration copies the memory footprint and configuration of the running guest from host to host, without dowtime (or at least very little).
As we’ve proved, shared storage is required for this to work, so that both hosts can see the same virtual hard disk file
Local NFS – The Bad news
-
NFS is great if you have a dedicated storage appliance
-
Most virtualisation environments utilise filers with multiple disk arrays presented over various protocols such as NFS/iSCSI/FCOE/etc NetApp, EMC, Sun, HP, etc.
-
We’re back to having one basket with a local NFS setup.
Clustered File Store
If storage must reside on the same hardware as the hypervisor, then we must make the storage available from all hypervisor hosts
GlusterFS
storage hosted on all hypervisors and presented via NFS
Essentially raid volume over multiple hosts giving the required resilience
Conclusion
-
Removed the need for lots of physical hardware.
-
Thus saving power/money etc.
-
Provided resilient infrastructure.
-
Created our own personal cloud.
What Next?
-
oVirt – nice management tools
-
Expand the cloud.
-
Public/Private.
-
Openstack – Amazon EC2.
-
Ubuntu Tools – Juju/Charms.
-
World domination – 1 gazillion dollars.
Pingback: Project: Virtualisation | Rossendale and East Lancashire LUG