Virtualization

From WBITT's Cooker!

(Difference between revisions)
Jump to: navigation, search
(Virtualization)
(Virtualization)
Line 7: Line 7:
More at http://wbitt.com
More at http://wbitt.com
-
Virtualization
+
=== Virtualization ===
-
What is Virtualization?
+
* What is Virtualization?
-
Commonly known  virtualization technologies?  
+
* Commonly known  virtualization technologies?  
-
Advantages and  Disadvantages of Virtualization?
+
* Advantages and  Disadvantages of Virtualization?
-
Types of Virtualization (Para / Full, etc)
+
* Types of Virtualization (Para / Full, etc)
-
Types of Hyper-visors
+
* Types of Hyper-visors
-
Technologies we will cover: XEN, KVM
+
* Technologies we will cover: XEN, KVM
-
http://en.wikipedia.org/wiki/Virtualization
+
* Note: Most of the material was obtained from Wikipedia http://en.wikipedia.org/wiki/
-
History of Virtualization
+
=== History of Virtualization ===
-
The IBM System/360 Model 67 (S/360-67) was a mainframe, and first shipped in July 1966. It included features to facilitate time-sharing applications, notably virtual memory hardware and 32-bit addressing.  
+
* The IBM System/360 Model 67 (S/360-67) was a mainframe, and first shipped in July 1966. It included features to facilitate time-sharing applications, notably virtual memory hardware and 32-bit addressing.  
-
CP/CMS was the first fully-virtualized virtual machine operating system, running on IBM System/360 Model 67,  and evolved from the ground-breaking research system CP-40.
+
* CP/CMS was the first fully-virtualized virtual machine operating system, running on IBM System/360 Model 67,  and evolved from the ground-breaking research system CP-40.
-
History of Virtualization
+
* The S/360-67 included various hardware and microcode features that enabled full virtualization of the raw S/360 hardware. The full-virtualization concept was pioneered with CP-40 on custom hardware; its implementation on the S/360-67 made CP-67 possible.
-
The S/360-67 included various hardware and microcode features that enabled full virtualization of the raw S/360 hardware. The full-virtualization concept was pioneered with CP-40 on custom hardware; its implementation on the S/360-67 made CP-67 possible.
+
* It is important to note that full hardware virtualization was not an original design goal for the S/360-67.
-
It is important to note that full hardware virtualization was not an original design goal for the S/360-67.
+
* Thus, in many respects, it can be said, that IBM's CP-67 and CP/CMS products anticipated (and heavily influenced) contemporary virtualization software, such as VMware Workstation, Xen, and Microsoft Virtual PC.
 +
* The IBM System/370 (S/370) was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family.
 +
* Full virtualization was not quite possible with the x86 platform until the 2005-2006 addition of the AMD-V and Intel VT extensions.
 +
* Many platform virtual machines for the x86 platform came very close, and claimed full virtualization even prior to the AMD-V and Intel VT additions. e.g. Parallels Workstation, VMware Workstation, VMware Server (formerly GSX Server), VirtualBox, etc.
 +
=== VMware ===
 +
* VMware was founded in 1998 and delivered its first product, VMware Workstation, in 1999.
 +
* VMware and similar virtualization software for the x86 processor family must employ binary translation techniques to trap and virtualize the execution of certain instructions. These techniques incur some performance overhead as compared to a VM running on a natively virtualizable architecture.
 +
* VMware is closed source.
-
History of Virtualization
+
=== Other examples of x86 virtualization software ===
-
Thus, in many respects, it can be said, that IBM's CP-67 and CP/CMS products anticipated (and heavily influenced) contemporary virtualization software, such as VMware Workstation, Xen, and Microsoft Virtual PC.
+
* Microsoft's Virtual PC, Hyper-V, and Microsoft Virtual Server.  
-
The IBM System/370 (S/370) was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family.
+
* Open-source solutions: QEMU, Kernel-based Virtual Machine (KVM) and VirtualBox.
 +
* Research systems: Denali, L4, and Xen.
-
History of Virtualization
+
=== History of Virtualization ===
-
Full virtualization was not quite possible with the x86 platform until the 2005-2006 addition of the AMD-V and Intel VT extensions.
+
* The following software conditionally makes use of the support offered by AMD-V and/or Intel VT:
-
Many platform virtual machines for the x86 platform came very close, and claimed full virtualization even prior to the AMD-V and Intel VT additions. e.g. Parallels Workstation, VMware Workstation, VMware Server (formerly GSX Server), VirtualBox, etc.
+
KVM, VirtualBox, Xen, VMware ESX Server (also known as vSphere). Microsoft Hyper-V,  Microsoft Virtual Server (also branded as Microsoft Virtual PC or Windows Virtual PC), Oracle VM (uses Xen). Parallels Workstation,  Parallels Server, Sun xVM, Virtual Iron, VMware Workstation, VMware Fusion, VMware Server.
-
History of Virtualization
+
=== Xen ===
-
VMware was founded in 1998 and delivered its first product, VMware Workstation, in 1999 .
+
* Xen originated as a research project at the University of Cambridge, led by Ian Pratt, who later founded XenSource, Inc.
-
VMware and similar virtualization software for the x86 processor family must employ binary translation techniques to trap and virtualize the execution of certain instructions. These techniques incur some performance overhead as compared to a VM running on a natively virtualizable architecture.
+
* XenSource supports the development of the open source project and also sells enterprise versions of the software.
 +
* The first public release of Xen occurred in 2003.
 +
* Citrix Systems acquired XenSource, Inc in October 2007 and subsequently renamed Xensource's products under the Citrix brand.
 +
* Xen is open source software.
 +
* Xen Management Consoles
 +
** Xen Tools
 +
** Ganeti
 +
** Perl-based MLN
 +
** Web-based HyperVM and FluidVM, Cloudmin
 +
** GUI applications Convirture (formerly XenMan) and Red Hat's Virtual Machine Manager, virt-manager.
 +
** Novell's PlateSpin Orchestrate also manages Xen VMs in SUSE Linux Enterprise Server.
-
History of Virtualization
+
=== KVM ===
-
VMware is closed source.
+
* KVM ( Kernel-based Virtual Machine) was developed by Qumranet, Inc.  
-
Other examples of x86 virtualization software include:
+
* On September 4, 2008, Qumranet was acquired by Red Hat, Inc.
-
Microsoft's Virtual PC, Hyper-V, and Microsoft Virtual Server.
+
* KVM is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
-
Open-source solutions: QEMU, Kernel-based Virtual Machine (KVM) and VirtualBox.
+
* Using KVM, one can run multiple VMs running unmodified Linux or Windows images.  
-
Research systems: Denali, L4, and Xen.
+
* Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.
-
 
+
* The kernel component of KVM is included in mainline Linux, as of 2.6.20.
-
History of Virtualization
+
* KVM is open source software.  
-
The following software conditionally makes use of the support offered by AMD-V and/or Intel VT:
+
-
KVM, VirtualBox, Xen, VMware ESX Server (also known as vSphere). Microsoft Hyper-V,  Microsoft Virtual Server (also branded as Microsoft Virtual PC or Windows Virtual PC), Oracle VM (uses Xen). Parallels Workstation, Parallels Server, Sun xVM, Virtual Iron, VMware Workstation, VMware Fusion, VMware Server.
+
-
Xen
+
== Why use Virtualization? (pros and cons) ==
-
Xen originated as a research project at the University of Cambridge, led by Ian Pratt, who later founded XenSource, Inc.
+
* Consolidation (Power, Rack/Desk/Floor Space, Hardware, HVAC, Wiring/cabling, etc)
-
XenSource supports the development of the open source project and also sells enterprise versions of the software.  
+
* Efficient utilization of under-utilized resources (CPU / memory, disks, bandwidth, etc)
-
The first public release of Xen occurred in 2003.
+
* Support for applications only supporting older versions of some OS.
-
Xen
+
* Service / domain / role based compartmentalization (e.g. mail server and web server on separate VMs.)
-
Citrix Systems acquired XenSource, Inc in October 2007 and subsequently renamed Xensource's products under the Citrix brand.
+
* Development and Testing
-
Xen is open source software.
+
** Developers can test code on test servers.
-
Xen Management Consoles
+
** Easy roll-backs.
-
Xen Tools
+
** Replica of production server can be created as a VM, so patches, etc can be tested.
-
Ganeti
+
** Programs/Applications targeted to run on different OS / platforms can be tested. e.g a web application in need to be tested on firefox running on Linux and on Windows.
-
Perl-based MLN
+
** Virus testing, Spam testing, password cracking, sniffing, DOS, etc can all be tested safely.
-
Web-based HyperVM and FluidVM, Cloudmin
+
-
GUI applications Convirture (formerly XenMan) and Red Hat's Virtual Machine Manager, virt-manager.
+
-
Novell's PlateSpin Orchestrate also manages Xen VMs in SUSE Linux Enterprise Server.
+
-
KVM
+
* Training
-
KVM ( Kernel-based Virtual Machine) was developed by Qumranet, Inc. On September 4, 2008, Qumranet was acquired by Red Hat, Inc.
+
** Virtual labs can be setup with less resources
-
KVM is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
+
** Security training can be delivered without concerns of busting out in the production network.
-
Using KVM, one can run multiple VMs running unmodified Linux or Windows images.  
+
** Each student can have his own (virtual) lab in his own PC/Laptop, in addition to the lab provided by the instructor.
 +
* Virtual Appliances
 +
** Appliances, such a a hardened mail server, can be created, which simply would need to be started as a VM in your host OS, etc. Same can be done to create fully functional web hosting servers. (I have deployed few web hosting servers, using this method! )
 +
** Ease of machine migration in case of hardware failure. (e.g. No need to re-install / reconfigure your favourite mail server from scratch!)
 +
* Legacy application support
 +
** Legacy applications / programs , which do not support latest hardware or OS, etc, can be made to run on the OS they support, in a virtualized environment.
 +
** Such applications benefit from the newer hardware, such as speed , and thus run faster.
 +
** And someone said, less screw-drivers!
-
KVM
+
== Why “not” Virtualization? ==
-
Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.  
+
* Administration of VMs, when more than a few, is more complicated, and sensitive than more than a few physical servers. The different VM interfaces, such as VMware's  Virtual Infrastructure Center, and KVM's ovirt,  try to address this.  
-
The kernel component of KVM is included in mainline Linux, as of 2.6.20.
+
* For live migrations involving movement of a VM from one physical host to another, involves extra IPs, etc. Plus the shared storage, sometimes cluster file systems, etc.
-
KVM is open source software.  
+
* Various networking problems arise, such as firewalls, routing, switching, bridging etc.
-
Why use Virtualization?
+
* Some service providers (such as ServerBeach), does not support “bridged connections” from the rented server. This adds extra complexity in managing the physical host's firewall, routing tables, etc.
-
(pros and cons)
+
* Hardware needs to be more fault-tolerant, and relatively powerful, compared to single server/service requirements.
-
Consolidation (Power, Rack/Desk/Floor Space, Hardware, HVAC, Wiring/cabling, etc)
+
* Console access, block device access, recovery, system trouble-shooting, etc, are complex areas to handle.  
-
Efficient utilization of under-utilized resources (CPU / memory, disks, bandwidth, etc)
+
-
Support for applications only supporting older versions of some OS.
+
-
Service / domain / role based compartmentalization (e.g. mail server and web server on separate VMs.)
+
-
Why use Virtualization?
+
== Virtualization Technologies ==
-
Development and Testing
+
* Para Virtualization  
-
Developers can test code on test servers.
+
** Works without hardware acceleration.  
-
Easy rollbacks.
+
** Xen.  
-
Replica of production server can be created as a VM, so patches, etc can be tested.
+
** Only modified Guest OS can be used as VM.
-
Programs/Applications targeted to run on different OS / platforms can be tested. e.g a web application in need to be tested on firefox running on Linux and on Windows.
+
* Native / Hardware-based Full Virtualization
-
Why use Virtualization?
+
** Requires CPU based hardware acceleration. (Intel VT-x, AMD-V)
-
Training
+
** Bare-metal look and feel. Access to HW is controlled through hyper-visor.
-
Virtual labs can be setup with less resources
+
** Virtualization Technologies
-
Security training can be delivered without concerns of busting out in the production network.
+
** KVM, VMware ESX
-
Each student can have his own (virtual) lab in his own PC/Laptop, in addition to the lab provided by the instructor.
+
** Un-modified Guest OS can be used as VM. e.g. Windows.
-
Virus testing, Spam testing, password cracking, sniffing, DOS, etc can all be tested safely.
+
* Emulation -based Full Virtualization
-
Why use Virtualization?
+
** Hyper-visor simulates the virtual machine in software, by analyzing all instructions and converting each one appropriately before it gets to the CPU.
-
Virtual Appliances
+
** Slower than hardware-based full virtualization.
-
Appliances, such a a hardened mail server, can be created, which simply would need to be started as a VM in your host OS, etc. Same can be done to create fully functional web hosting servers. (I have deployed few web hosting servers, using this method! )
+
** Basic technique used by Vmware, for it's initial / basic products, Vmware Workstation, VMware Server , etc.
-
Ease of machine migration in case of hardware failure. (e.g. No need to re-install / reconfigure your favorite mail server from scratch!)
+
** QEMU, Bochs.
-
Why use Virtualization?
+
*OS Virtualization
-
Legacy application support
+
** OS Chroot environments.
-
Legacy applications / programs , which do not support latest hardware or OS, etc, can be made to run on the OS they support, in a virtualized environment.
+
** OpenVZ, Solaris Containers, FreeBSD jails, etc.
-
Such applications benefit from the newer hardware, such as speed , and thus run faster.
+
** Shared kernel is the single point of failure.  
-
And someone said, less screw-drivers!
+
* Application Virtualization
-
Why “not” Virtualization?
+
** Application creates a sandbox environment in browser, etc. e.g. JRE .  
-
Administration of VMs, when more than a few, is more complicated, and sensitive than more than a few physical servers. The different VM interfaces, such as VMware's  Virtual Infrastructure Center, and KVM's ovirt,  try to address this.
+
** API-level Virtualization
-
For live migrations involving movement of a VM from one physical host to another, involves extra IPs, etc. Plus the shared storage, sometimes cluster file systems, etc.
+
** Virtualization provided to support single application.  
-
Why “not” Virtualization?
+
** e.g. WINE is used to run Windows programs in Linux environment.
-
Various networking problems arise, such as firewalls, routing, switching, bridging etc.
+
-
Some service providers (such as ServerBeach), does not support “bridged connections” from the rented server. This adds extra complexity in managing the physical host's firewall, routing tables, etc.
+
-
Hardware needs to be more fault-tolerant, and relatively powerful, compared to single server/service requirements.
+
-
Why “not” Virtualization?
+
-
Console access, block device access, recovery, system trouble-shooting, etc, are complex areas to handle.
+
-
Virtualization Technologies
+
-
Para Virtualization  
+
-
Works without hardware acceleration.  
+
-
Xen.  
+
-
Only modified Guest OS can be used as VM.
+
-
Native / Hardware-based Full Virtualization
+
-
Requires CPU based hardware acceleration. (Intel VT-x, AMD-V)
+
-
Bare-metal look and feel. Access to HW is controlled through hyper-visor.
+
-
Virtualization Technologies
+
-
KVM, VMware ESX
+
-
Un-modified Guest OS can be used as VM. e.g. Windows.
+
-
Emulation -based Full Virtualization
+
-
Hyper-visor simulates the virtual machine in software, by analyzing all instructions and converting each one appropriately before it gets to the CPU.
+
-
Slower than hardware-based full virtualization.
+
-
Virtualization Technologies
+
-
Basic technique used by Vmware, for it's initial / basic products, Vmware Workstation, VMware Server , etc.
+
-
QEMU, Bochs.
+
-
OS Virtualization
+
-
OS Chroot environments.
+
-
OpenVZ, Solaris Containers, FreeBSD jails, etc.
+
-
Shared kernel is the single point of failure.  
+
-
Virtualization Technologies
+
-
Application Virtualization
+
-
Application creates a sandbox environment in browser, etc. e.g. JRE .  
+
-
API-level Virtualization
+
-
Virtualization provided to support single application. e.g. WINE is used to run Windows programs in Linux environment.
+

Revision as of 17:44, 26 March 2010

Contents

Virtualization

A little about the Author:

Muhammad Kamran Azeem [ CISSP, RHCE, OCP (DBA) ] Working on High Performance Computing Clusters at Saudi Aramco More at http://wbitt.com

Virtualization

  • What is Virtualization?
  • Commonly known virtualization technologies?
  • Advantages and Disadvantages of Virtualization?
  • Types of Virtualization (Para / Full, etc)
  • Types of Hyper-visors
  • Technologies we will cover: XEN, KVM
  • Note: Most of the material was obtained from Wikipedia http://en.wikipedia.org/wiki/

History of Virtualization

  • The IBM System/360 Model 67 (S/360-67) was a mainframe, and first shipped in July 1966. It included features to facilitate time-sharing applications, notably virtual memory hardware and 32-bit addressing.
  • CP/CMS was the first fully-virtualized virtual machine operating system, running on IBM System/360 Model 67, and evolved from the ground-breaking research system CP-40.
  • The S/360-67 included various hardware and microcode features that enabled full virtualization of the raw S/360 hardware. The full-virtualization concept was pioneered with CP-40 on custom hardware; its implementation on the S/360-67 made CP-67 possible.
  • It is important to note that full hardware virtualization was not an original design goal for the S/360-67.
  • Thus, in many respects, it can be said, that IBM's CP-67 and CP/CMS products anticipated (and heavily influenced) contemporary virtualization software, such as VMware Workstation, Xen, and Microsoft Virtual PC.
  • The IBM System/370 (S/370) was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family.
  • Full virtualization was not quite possible with the x86 platform until the 2005-2006 addition of the AMD-V and Intel VT extensions.
  • Many platform virtual machines for the x86 platform came very close, and claimed full virtualization even prior to the AMD-V and Intel VT additions. e.g. Parallels Workstation, VMware Workstation, VMware Server (formerly GSX Server), VirtualBox, etc.

VMware

  • VMware was founded in 1998 and delivered its first product, VMware Workstation, in 1999.
  • VMware and similar virtualization software for the x86 processor family must employ binary translation techniques to trap and virtualize the execution of certain instructions. These techniques incur some performance overhead as compared to a VM running on a natively virtualizable architecture.
  • VMware is closed source.

Other examples of x86 virtualization software

  • Microsoft's Virtual PC, Hyper-V, and Microsoft Virtual Server.
  • Open-source solutions: QEMU, Kernel-based Virtual Machine (KVM) and VirtualBox.
  • Research systems: Denali, L4, and Xen.

History of Virtualization

  • The following software conditionally makes use of the support offered by AMD-V and/or Intel VT:

KVM, VirtualBox, Xen, VMware ESX Server (also known as vSphere). Microsoft Hyper-V, Microsoft Virtual Server (also branded as Microsoft Virtual PC or Windows Virtual PC), Oracle VM (uses Xen). Parallels Workstation, Parallels Server, Sun xVM, Virtual Iron, VMware Workstation, VMware Fusion, VMware Server.

Xen

  • Xen originated as a research project at the University of Cambridge, led by Ian Pratt, who later founded XenSource, Inc.
  • XenSource supports the development of the open source project and also sells enterprise versions of the software.
  • The first public release of Xen occurred in 2003.
  • Citrix Systems acquired XenSource, Inc in October 2007 and subsequently renamed Xensource's products under the Citrix brand.
  • Xen is open source software.
  • Xen Management Consoles
    • Xen Tools
    • Ganeti
    • Perl-based MLN
    • Web-based HyperVM and FluidVM, Cloudmin
    • GUI applications Convirture (formerly XenMan) and Red Hat's Virtual Machine Manager, virt-manager.
    • Novell's PlateSpin Orchestrate also manages Xen VMs in SUSE Linux Enterprise Server.

KVM

  • KVM ( Kernel-based Virtual Machine) was developed by Qumranet, Inc.
  • On September 4, 2008, Qumranet was acquired by Red Hat, Inc.
  • KVM is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).
  • Using KVM, one can run multiple VMs running unmodified Linux or Windows images.
  • Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.
  • The kernel component of KVM is included in mainline Linux, as of 2.6.20.
  • KVM is open source software.

Why use Virtualization? (pros and cons)

  • Consolidation (Power, Rack/Desk/Floor Space, Hardware, HVAC, Wiring/cabling, etc)
  • Efficient utilization of under-utilized resources (CPU / memory, disks, bandwidth, etc)
  • Support for applications only supporting older versions of some OS.
  • Service / domain / role based compartmentalization (e.g. mail server and web server on separate VMs.)
  • Development and Testing
    • Developers can test code on test servers.
    • Easy roll-backs.
    • Replica of production server can be created as a VM, so patches, etc can be tested.
    • Programs/Applications targeted to run on different OS / platforms can be tested. e.g a web application in need to be tested on firefox running on Linux and on Windows.
    • Virus testing, Spam testing, password cracking, sniffing, DOS, etc can all be tested safely.
  • Training
    • Virtual labs can be setup with less resources
    • Security training can be delivered without concerns of busting out in the production network.
    • Each student can have his own (virtual) lab in his own PC/Laptop, in addition to the lab provided by the instructor.
  • Virtual Appliances
    • Appliances, such a a hardened mail server, can be created, which simply would need to be started as a VM in your host OS, etc. Same can be done to create fully functional web hosting servers. (I have deployed few web hosting servers, using this method! )
    • Ease of machine migration in case of hardware failure. (e.g. No need to re-install / reconfigure your favourite mail server from scratch!)
  • Legacy application support
    • Legacy applications / programs , which do not support latest hardware or OS, etc, can be made to run on the OS they support, in a virtualized environment.
    • Such applications benefit from the newer hardware, such as speed , and thus run faster.
    • And someone said, less screw-drivers!

Why “not” Virtualization?

  • Administration of VMs, when more than a few, is more complicated, and sensitive than more than a few physical servers. The different VM interfaces, such as VMware's Virtual Infrastructure Center, and KVM's ovirt, try to address this.
  • For live migrations involving movement of a VM from one physical host to another, involves extra IPs, etc. Plus the shared storage, sometimes cluster file systems, etc.
  • Various networking problems arise, such as firewalls, routing, switching, bridging etc.
  • Some service providers (such as ServerBeach), does not support “bridged connections” from the rented server. This adds extra complexity in managing the physical host's firewall, routing tables, etc.
  • Hardware needs to be more fault-tolerant, and relatively powerful, compared to single server/service requirements.
  • Console access, block device access, recovery, system trouble-shooting, etc, are complex areas to handle.

Virtualization Technologies

  • Para Virtualization
    • Works without hardware acceleration.
    • Xen.
    • Only modified Guest OS can be used as VM.
  • Native / Hardware-based Full Virtualization
    • Requires CPU based hardware acceleration. (Intel VT-x, AMD-V)
    • Bare-metal look and feel. Access to HW is controlled through hyper-visor.
    • Virtualization Technologies
    • KVM, VMware ESX
    • Un-modified Guest OS can be used as VM. e.g. Windows.
  • Emulation -based Full Virtualization
    • Hyper-visor simulates the virtual machine in software, by analyzing all instructions and converting each one appropriately before it gets to the CPU.
    • Slower than hardware-based full virtualization.
    • Basic technique used by Vmware, for it's initial / basic products, Vmware Workstation, VMware Server , etc.
    • QEMU, Bochs.
  • OS Virtualization
    • OS Chroot environments.
    • OpenVZ, Solaris Containers, FreeBSD jails, etc.
    • Shared kernel is the single point of failure.
  • Application Virtualization
    • Application creates a sandbox environment in browser, etc. e.g. JRE .
    • API-level Virtualization
    • Virtualization provided to support single application.
    • e.g. WINE is used to run Windows programs in Linux environment.
Personal tools