Virtual server: Difference between revisions
imported>Young Sang Baek |
imported>Young Sang Baek No edit summary |
||
Line 8: | Line 8: | ||
{{TOC|bottom}} | {{TOC|bottom}} | ||
=History= | |||
=Technology= | =Technology= | ||
Line 104: | Line 104: | ||
====Cloud Computing==== | ====Cloud Computing==== | ||
=Economics= |
Revision as of 12:24, 7 August 2010
To provide students with experience in collaboration, you are warmly invited to join in here, or to leave comments on the discussion page. The anticipated date of course completion is 13 August 2010. One month after that date at the latest, this notice shall be removed. Besides, many other Citizendium articles welcome your collaboration! |
A virtual server is a virtual machine (VM) that is running on top of a physical server. The physical server containing the virtual server is commonly called the host whereas each virtual server contained in the host is referred to as a guest. A virtual server is created through hardware virtualization.
Virtual servers are isolated in their own virtual environment allowing multiple instances to be hosted simultaneously on a single server. Guests on the server can run different applications or tasks, on different operating systems, independently from one another. From example, one virtual server can run as a chat server, another as an FTP server, and another as database server, all of which can run concurrently on a single physical machine. To ensure independence and consistency, the physical server utilizes a hypervisor whose role is to monitor the states of each guest. To server users, this appears as if each virtual server is a unique physical device thus maximizing the resources and processing-power of a single physical server. Downtime during server maintenance is also minimized since virtual servers can easily be transferred or migrated from one physical server to another given that both servers are running on the same processor manufacturers.
History
Technology
Virtual servers are computers which run in a virtualized environment knowingly or unknowingly. Virtualized environment is created by abstracting hardware level from the operating systems (OS). This level of abstraction occurs by implementing a thin layer of software between the physical hardware of the computers and the operating system on top of it.
Operating systems that are running in a virtualized environment is commonly called Guest OSs and the OS which provides the bases of virtualized environment is called an Host OS.
Hypervisor
Hypervisor also known as Virtual Machine Monitor (VMM) is the software which provides the thin layer of abstracted hardware to the guest operating systems. In most circumstances, guest OSs communicates with the hypervisor layer which translates guest OSs instructions to hardware instructions which operates the physical server.
There are two types of hypervisors.
- Type 1 - Bare metal: Hypervisors which runs directly on top of the hardware. Type 1 hypervisors usually built on top of micro-kernel which controls both the hardware and the guest OSs. Examples are Xen Hypervisor, VMware GSX, Microsoft Hyper-V.
- Type 2 - Hosted: Hypervisors running on top of a host OS. Host OS controls the hardware and the hypervisor layer sits on top of the hosted OS which guest OSs running as processes within the host OS. Examples are Virtual PC, VMware Workstation, VirtualBox, Parallels Desktop for Mac.
Virtualization Categories
There are currently three virtualization techniques, each with their advantages and disadvantages.
Full virtualization
Full virtualization is an environment where the hypervisor emulates all underlying hardware specification. This includes CPU management, memory management, I/O processes and peripherals. In x86 processor environment, full virtualization is accomplished by using software emulation called binary translation. Binary translation involves the hypervisor receives the CPU instructions from the guest OS then forwards it to the hardware CPU. Currently in the x86 domain, VMware champions in the way of binary translation and offers multiple platforms for full virtualization environments.
Paravirtualization
Paravirtualization involves modifying the OS kernel of the guest OSs to make the guset OS "hypervisor aware". This technique allows guest OSs to make non-virtualizable instructions with special hypercall instructions which communications directly with the virtualization layer hypervisor. Paravirtualization has been around since the inception of virtual servers, in the current x86 domain, Xen Hypervisor, by open source XenSource (now own by Citrix) is a dominant player.
Hardware Assisted
Hardware assisted virtualization revolves around the concept of having a implicit processor and or other hardware assistance in performing virtualization. In case of x86 platforms, Intel and AMD have both released hardware virtualization in 2005. Intel's version is called Intel VT, AMD with AMD-V. Both technologies employee special set of instructions on the processor which the hypervisors can take advantage of to offload some costly processor instructions. At this current time, hardware virtualization is still early in maturity and does not outperform software only variations yet. The future does seem bright for hardware virtualization with Intel and AMD both committed in this technology and continue to improve the ways hardware can assist in performing virtualization.
Advantages | Disadvantages | |
---|---|---|
Full virtualization |
|
|
Paravirtualization |
|
|
Hardware Assisted |
|
|
Intel-VT
Intel's version of hardware virtualization known as Intel-VT comprises of three separate modules. Processor component is called Intel VT-x for Xeon processors and VT-i for Itanium processors. Intel also has a virtualization hardware supported in their chipset called VT-d. VT-d handles the I/Os from the OSs and enables the hypervisors to offload I/O tasks to the chipset allowing greater performances. Third module is called VT-c which handles the network traffic. With VT-c enabled network card, the chipset in the network card can handle the network traffic load between virtualized machines.
AMD-V
AMD with its own hardware virtualization is packaged under a product name AMD-V. AMD-V enables similar advantages with Intel's Intel-VT, providing separate additional virtualization instructions that can be used by the hypervisors to offload costly instructions, improved memory management allowing the hardware to perform the address look up rather than having it done within the software and improving I/O throughput by offloading I/O instructions to the hardware as well.
x86 virtualization challenges
In an x86 operating system environment, the OSs are designed to run directly on top of the hardware and the user applications interfaces with the hardware through the OS. In the model of trust computing base this hierarchy is normally represented with four levels of privilege known as TCB Rings. With the four ring levels: 0, 1, 2, 3, base OS is expected to run in ring 0 where it has the highest privilege and in direct communication with the hardware. User applications typically run in Ring 3 where it's least privileged. In the model of virtualization, because the hypervisor simulates the hardware and sits below the base OS, the hypervisor takes the place of ring 0 thus pushing the guest OS system to higher level. This posses great challenges to the OSs expecting to run in ring 0 however realizing it's located in the higher level. VMware was first to overcome this difficulty by using a technique binary translation explained above.
Memory Virtualization
When creating a virtualized environment, one must additional to CPU virtualization, memory management. In the cases of full virtualization where the guest OSs are not "hypervisor aware", it expects the memory space to start from 0x0000, however because the hypervisor handles the transition between the OS and the hardware, the guest OS usually will not have access to the memory it desires. To handle multiple virtual machines within a single physical memory space, hypervisors use what's known as shadow page table which contains the direct translation between virtual machine's memory table to the physical memory table. This is the reason why you cannot allocate memory to the virtual machine greater that of the physical memory space. While employing shadow page table allows seamless translation between the virtual memory space and the physical memory space, the translation takes toll on the processor and creates a over head. Second generation of hardware virtualization techniques help facilitate this process by offloading it to the hardware.
Hardware Assisted
By offloading memory address translation to the hardware, hardware assisted hypervisors can focus on the translations of the instruction codes thus increase in performance. In the case of Intel-VT, Intel calls this technique Extended Page Table (EPT). EPT allows direct translation of the guest OS's page tables to EPT bypassing the necessary translation done by the hypervisor.