Virtualization
In accordance with Moore's Law, today's accelerated development of information technology and the penetration of virtualization technology makes it possible to break the traditional and typically inefficient "one-application-server-one" approach. Different applications have different kind of workloads imposed on the servers. While a typical file server has only a few percent of CPU load, in case of a hard-loaded database server up to 80% or more CPU load may occur. These workloads can be easily distributed and balanced in virtualized environment.
Using virtualization technologies make available the following advantages compared to the traditional approach:
Virtualizációs technológiák alkalmazásával az alábbi előnyök érhetők el szemben a tradícionális megközelítéssel:
- Optimizing the utilization of hardware resources
- Less hardware is required for these systems to serve
- Lower data center costs (electricity, air conditioning, etc.).
- Reduced space requirements in the data center
- Decreased the cost and time-frame of planned / unplanned downtime
- Increase availability
- Hardware independent
- Easier resource-management
Brief overview of the different aspects of virtualization:
Application-level virtualization
- The virtualiazation is realized not in OS-level
- Cygwin
- Realizing Posix/GNU programming environment in Windows OS
- Porting softwares developed in UNIX/Linux environment to Windows OS
- Wine
- Realizing Windows APIs and some kernel functions in Linux and X11 environment
Operating system-level virtualization
- Realizing several program executing environment separated from each other, within one OS
- It complements the base OS to be able to create multiple VE* within itself
- Actually these VEs are the virtual copies of the same OS
- Unable to run a different OS
- Only 1-3% performance overhead
- Virtuozzo (Virtual Private Server)
- Jails (limited, secure access to the resources of the base OS)
* VE: Virtual Environment
Emulation
- Simulating a physical machine’s structure partly or wholly on another physical machine
- C64, Amiga, Super Nintendo, Playstation etc. emulators
- Real time transformation of the virtual environment instructions into the physical environment instructions by software
- No need for any modification on any OS
- Any hardware component can simulated by its use (even if it does not exist)
- Performance problems may occur
API Emulation
- It allows the host OS to run different OSs in the virtual system
- Host OS APIs (almost) one-to-one mapping of the guest OS with the appropriate library
- VMware
- MS VirtualPC and MS Virtual Server 2005
Paravirtualization
- Virtual machines can directly communicate with the hardware
- The host OS provides direct access to the hardware via API
- The guest OS must be prepared for this (porting)
- Low ~5% performance overhead
- User Mode Linux
- Virtualizing Linux systems in Linux environment
- Part of the Linux-kernel for today
- XEN
- Virtualizing Linux, FreeBSD, Windows XP, Windows 2003 Server etc.