By uwes on Jan 20, 2012
Welcome to the first articel of our series Virtualization@Oracle. In the following months we want to discuss several aspects of Virtualization and what can be used with Oracle technology.
Let us know what you think, give feedback.
Thanks in advanced
Part 1: Overview
As a starter let's see, what Virtualization means.
Wikipedia (http://en.wikipedia.org/wiki/Virtualization) describes it as:
"Virtualization, in computing, is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system, a storage device or network resources."
Virtualization areas can then be categorized:
But before we dive into the specific layers and topics in more detail, this introductory article explains the basics, what Oracle is capable of doing, and how it's done.
Before looking at the hardware layer, we introduce some concepts. These are called:
- Full Virtualization
- Thick Hypervisor
- Thin Hypervisor
- Type 1 Hypervisor
- Type 2 Hypervisor
- Application servers are means of virtualizing the application by spreading the task of running an application (or a business transaction, or many such parallel transactions) across multiple so-called instances of the application, possibly spread across multiple physical servers.
- Even at the time, when the definitions of some internet software protocols were created, they already allowed for software virtualization, like the definition of the MX-records (list of servers for internet Mail Exchange - not to be confused by Microsoft’s e-mail program by the name of Exchange) in the DNS (Domain Name System, the directory of all servers on the Internet), where there can be secondary servers useful if the primary servers are not reachable.
- Also an Oracle RAC implementation can be seen as software virtualization, because it allows for the distribution of the task across multiple instances and/or servers.
Let's start the definitions section with the term
Full VirtualizationAgain, Wikipedia has a complete article on that (http://en.wikipedia.org/wiki/Full_virtualization), but for our purposes here it should be sufficient to define it as a technology, that 100% abstracts the underlying layers, so that the layer and its interfaces can be 100% similar. So for "stuff" being programmed (be it an Operating System or an application) there is no need to know anything about the possible different implementations of the underlying layers. This then enables the easy migration from one fully virtualized environment into another fully virtualized environment.
Back to the definition section, and to the term
ParavirtualizationAgain, here also, we have something from Wikipedia (http://en.wikipedia.org/wiki/Paravirtualization), but for us here it shall suffice to say, that Paravirtualization differs from Full Virtualization in a way that it might expose some of the underlying elements directly. With that, different implementations of Paravirtualization might differ in small things, making the portability harder, as in the upper layers there needs to be an understanding of these differences. The advantage might in contrast be, that with the direct exposing of underlying stuff, these can be used to better serve specific needs. Therefore Paravirtualization adds into the upper layers of a stack specifics of the technology being virtualized. Typically this can increase the efficiency of the virtualization, because it often e.g. eliminates latency, which might be added through the full virtualization. On the other hand the knowledge and use of specifics of the underlaying virtualization technology makes it harder to change later to another virtualization technology.
With that definition we can now also introduce the concept of a
HypervisorAgain, Wikipedia has a full article on that (http://en.wikipedia.org/wiki/Hypervisor) but suffice it to say, that a hypervisor is the layer that abstracts the underlying elements, so that the stuff above it doesn't know, what's underneath, and only sees the interfaces exposed by the hypervisor. One could also call it a virtual machine manager, and, yes, this also is possible on different levels of the stack.
Back to the definition section and to the term
Thick HypervisorEvery hypervisor needs something to configure itself or be configured. So, if the hypervisor itself contains all these configuration tools directly, accessible via interfaces to configure itself, than we call it a thick hypervisor.
In contrast, if the hypervisor itself requires some external entity to be configured, than we call it a thin hypervisor.
Then we have the term
Type 1 HypervisorA Type 1 hypervisor runs directly on top of some hardware, whereas a
Type 2 Hypervisorrequires an already running operating system, and therefore runs inside that Operating System.
Now, with the definitions done, let's go back and look at Oracle and its product portfolio, w.r.t.
Hardware VirtualizationAgain: Wikipedia has an Article: http://en.wikipedia.org/wiki/Hardware_virtualization
When we look at the hardware layer, Oracle has a couple of different products, based on different technologies.
Oracle offers SPARC and x86 based systems, and divides those on the SPARC side into T- and M-series. The x86 systems have names like X????.
Looking at these three system-series, we have the following Oracle virtualization technologies, which can be used on the systems:
- M-Series: Dynamic System Domains
- T-Series: Oracle VM Server for SPARC (aka: Logical Domains)
- x86-based systems: Oracle VM Server for x86, Oracle VM VirtualBox
If we move up the stack, we have to look at what's available from the Operating System. Wikipedia calls that
Operating System-level Virtualization(http://en.wikipedia.org/wiki/Operating_system-level_virtualization).
This technology provides applications a secure and isolated runtime environment, that acts like an exclusive OS instance, but shares some resources of the operation system like devices and the kernel. Resource management is need, if Operating system-level virtualization is used.
Before we dive deeper, we first need to classify the different Operating Systems, that can run on the different types of hardware:
- M-Series: Oracle Solaris
- T-Series: Oracle Solaris
- x86-based Systems: Oracle Solaris, Linux, Microsoft Windows.
Another major area of virtualisation centers around the desktop.
In order to describe that, let’s first define, what a desktop is. Also Wikipedia has articles on that (http://en.wikipedia.org/wiki/Desktop_virtualization, and http://en.wikipedia.org/wiki/Desktop_environment). Let's stick to the term: A Desktop is, what a person sees on his computer monitor and interacts with a keyboard and mouse.
Desktop Virtualization then in turn describes technologies, that separate the "provider of the desktop" from the system, that controls the monitor, keyboard and mouse. More on that also in articles to come.
To finish, let’s add a small picture to help to understand the positioning:
With that we'd like to close this first introductory article and hope we've made you eager to read the ones coming in the following newsletters.
The series will continue as follows (tentative):
January 2012: Oracle VM Server for SPARC (Matthias Pfützner)
February 2012: Oracle VM Server for x86 (Matthias Pfützner)
March 2012: Oracle Solaris Zones and Linux Containers (Detlef Drewanz)
April 2012: Resource Management as Enabling Technology for Virtualization (Detlef Drewanz)
May 2012: Network Virtualization (Detlef Drewanz)
June 2012: Oracle VM VirtualBox (Detlef Drewanz)
July 2012: Oracle Virtual Desktop Infrastructure (VDI) (Matthias Pfützner)
August 2012: OpsCenter as Management Tool for Virtualization (Matthias Pfützner)
If you have questions, feel free to contact me: Matthias Pfützner
|>>> Part 2: Oracle VM Server for SPARC|