Full virtualization : In full virtualization the host provides full emulation for the guest. This is the most compatible type of virtualization because the guest has no idea that it is running in a virtualized environment. One of the disadvantages of this type of virtualization is that it is slow, since all calls from the guest have to be passed through the virtualization layer. It however does not require any modification on the guest at all.
Paravirtualization : This is more efficient than full virtualization, however it requires modification on the guest. In paravirtualization, the guest is given hooks into the physical hardware, these hooks allow it to bypass the virtualization layer and access the physical gear. An example of paravirtualization is the virtio drive in Linux that is used for networking.
A VM is a virtual machine that has it’s own OS running inside a host. So if a host has 2 VM’s, there are 3 different copies of the OS running, one on the host, and one each in the 2 VM’s.
VM’s use emulated hardware. VM’s are heavy weight compared to LXC. LXC or Linux containers is wherein the container has it’s own network, ipc, process stack, however it shares the same OS.
LXC are lightweight compared to VM’s. Think of LXC’s are chroot on steroids. Reference: http://lxc.sourceforge.net/index.php/about/kernel-namespaces/
OpenStack is a very popular cloud operating system, and VMware is the commercial king of virtualization. In order to understand the relationship between them, we need to first understand the difference between a cloud OS and a virtualization layer. A cloud OS such as OpenStack includes virtualization and one or more of the following IaaS, PaaS, or SaaS. IaaS stands for Infrastructure as a Service. PaaS is platform as a service, and SaaS is software as a service.
VMware initially started off as a virtualization only solution, and later on added cloud friendly products with vCloud director. OpenStack can use a number of virtualization solutions, such as VMware, KVM or Xen. Virtualization enables many “virtual” systems to run on a single hardware. For instance you can have RHEL, CentOS, Ubuntu virtual machines running on a physical server running RHEL with KVM. OpenStack can be used to deploy virtual machines on different hypervisors, i.e., physical machines that are running virtualization. Virtualization is a part of cloud OS. Using a cloud OS you may also be able to do bare-metal provisioning. Bare-metal provisioning is the ability to deploy physical hardware and not just virtual machines.
Deciding on whether you need a simple virtualization solution such as KVM, VMware, or if you need a cloud OS such as OpenStack should not be a challenging tasks. Some of the issues to keep in mind when making this decision are:
* Size of deployment
* Purpose of deployment
* Technical skills available to manage the environment
OpenStack is not easy to manage, it is quite complex. It consists various components which require a good understanding to install and operate. VMware or KVM on the other hand are easy to install and manage. VMware has a free virtualization solution called VMware ESXi, which is very easy to install and manage. If you are planning on having a small installation, you may be ok with KVM and oVirt. (http://www.ovirt.org/Home) oVirt is an open source management solution for KVM based virtualization. If you want to implement IaaS in a mid size to large enterprise, OpenStack may be a better solution, especially if you have dedicated service engineers who can spend extensive time on installaing, maintaining and managing OpenStack.
sudo virsh autostart --disable sudo virsh autostart
sudo virsh dumpxml name_of_vm > name_of_vm.xml sudo virsh undefine name_of_vm #vi name_of_vm.xml and change the hostname as well as the disk image name #mv the old image name to the new image name sudo virsh define name_of_vm.xml sudo virsh list --all
#edit the range sudo virsh net-edit default #restart sudo virsh net-destroy default sudo virsh net-start default