2010年2月15日 星期一

OS Virtualization

Background of OS Virtualization
aaaaaThe first system using the technique of Operating System virtualization is name Chroot. The Chroot system developed base on Unix operating systems, which is an operation that changes the apparent disk root directory for the current running process and its children. A program that is re-rooted to another directory cannot access or name files outside that directory. The Chroot system call was introduced by Bill Joy on 18 March 1982. After this, there are many other system appear, such as FreeBSD Jail, Container/Zone, iCore Virtual Accounts and Parallels Virtuozzo Containers, those are base on different operating system.

aaaaaOperating system virtualization is becoming more popular in recent years. Thanks to its' easy-to-setup characteristics on educational areas as well as in business aspects, schools and companies are trying to make use of this newly developed technology to construct a clean, effective, easily managed and unique system to serve myriads of users within companies/schools. Under these circumstances can OS Virtualization be well-developed.

(Modification Needed)

Principle of OS Virtualization
aaaaaOperating system virtualization is a server virtualization method allows virtualizes servers on the operating system (kernel) layer. It allows multiple isolated user-space instances, instead of only one. With operating system virtualization, nothing is pre-installed or permanently loaded on the local device and no hard-disk drive is needed for each user(therefore reducing hardware costs). With the current implementations, this virtual disk is actually a disk image file stored on a remote server. The client will be connected via the network to this virtual disk and will boot with the operating system installed on the virtual disk. This creates isolated environment on a single physical server and OS instances to utilize hardware, software, data centre and management efforts, it may look and feel like a real server, from the point of view of its owner.

e.g. We simplify the concepts by making the processes "visible". One can pretend there exists a centralized and powerful server which is located in somewhere and it is far away from the peer computers. Peer computers have no secondary storage devices, but it does has a bootstrap program and network interface card to make connection with the server computer, the bootstrap program then initializes the OS and other system services (e.g. system shell) to allow the users to continue starting other processes. Note that the server side may only has one physical hard drive, but storing large number of virtual disk images to serve different users using one single hard drive, this is why "virtual" is called, in the image, OS and other relevant softwares are installed (if any), users can mount the image after connecting to the server. This forms the backbone of the operation of the OS Virtualization. You can take a look at the following figure which illustrate the working principle.












Advantages

1) Flexible arrangement
OS Virtualization is a technique which allows you easily connect different Virtual Disks to a system. Different users can easily select different roles or even different kinds of operating system. We take just a few minutes to adding a new server or workstation. Moreover, the servers can be assigned with a specific role when needed by assigning another virtual disk.

e.g. When a user trys to compare the differences between running a web server in different OS, he/she will not need to repeating the installation or uninstallation processes of different OS, instead he can change the OS environment by adding one more virtual disks which has other OS system (e.g. Linux) installed. In this case, what the user needs to do is just adding one one virtual disks, this relatively saves time and effort for the user to test the web server in a completely new and different environment.

2) Easy maintenance
Although many clients access the virtual disk from different location, there is only one main server which contains the operating system. When we need to update or backup the server, we just need to maintain only one main server instead of many different computers. By assigning the previous virtual disk to those clients and restarting them you can revert to the previous state easily and quickly.

3) Easier to build up the system
Without the Operating System technique, we need to setup each computer individually, to build up a system, such as a lab of a university or the office network in a big company, there may over a hundred computers, which might take rather long time. If OS virtualization is apply, there only one computer we need to setup.

4) The system is back to a clean state whenever restart the computer
With OS Virtualization a machine only needs to be restarted to load the default configuration again. It can avoid some useless files or programs remain in the computers, make the resource allocate more efficiently.

Disadvantages
1) Network is an essential component
OS Virtualization products must be connected to the OS Virtualization server to use the operating system on the virtual disk. When no network connection is available the system cannot be used.

2) Data transmission requirement is high
The virtual disk is connected from the OS Virtualization server via the network, interface card a LAN is recommended. Over a WAN connection there is probably not enough bandwidth available and/or not reliable enough to use the system smoothly.

3)Variety of operating system is limited
Although many operating systems are supported, there are some Linux distributions which cannot run via the OS Virtualization technique.

References:
1) http://www.virtualizationadmin.com/articles-tutorials/general-virtualization-articles/introduction-os-virtualization-part1.html

2) http://www.parallels.com/products/virtuozzo/os/

3) http://en.wikipedia.org/wiki/Operating_system-level_virtualization

Figures adopted:
1) Figure demonstrating the working principle of OS Virtualization
http://www.virtualizationadmin.com/articles-tutorials/general-virtualization-article/introduction-os-virtualization-part1.html

2) Figure 2, Figure 3
http://www.parallels.com/