YOUR FEEDBACK
Robert Z. Cashman wrote: I'll be the first one to cry foul once someone does something wrong with the pat...


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP LINKS YOU MUST CLICK ON


Hyper-V Terminology: Microsoft's Virtualization Lexicon
Virtual PC, Virtual Server and Windows Virtualization


Virtual PC Guy's WebLog

Well, I just realized that I had dived into talking about how to do things with Hyper-V without first taking the time to orient you on some of the terminology used. So I would now take the time to correct that. Note that many of these terms are not used in the user interface / documentation for Hyper-V. The reason for this is that from an operational 'getting things done' point of view you do not need to know about most of this. However, once you start discussing architecture it becomes necessary to know about this stuff.

However, once you start discussing architecture it becomes necessary to know about this stuff:

  • Hypervisor
    The hypervisor is to Hyper-V what the kernel is to Windows.  The hypervisor is not all of Hyper-V, it is just the lowest level component that is responsible for interaction with core hardware.  The hypervisor is responsible for creating, managing and destroying partitions.  It directly controls access to processor resource and enforces an externally delivered policy on memory and device access.  To give some perspective: the hypervisor is just over 100k in size, the entire Hyper-V role is around 100mb in size and a full installation of Windows Server 2008 with Hyper-V will be multiple gigabytes in size.  Once you have installed the Hyper-V role the hypervisor is loaded as a boot critical device.
  • Virtualization Stack
    The virtualization stack is everything else that makes up Hyper-V.  This is the user interface, management services, virtual machine processes, emulated devices, etc...
  • Partition
    A partition is the basic entity that is managed by the hypervisor.  It is an abstract container that consists of isolated processor and memory resources - with policies on device access.  A partition is a lighter weight concept than a virtual machine - and could be used outside of the context of virtual machines to provide a highly isolated execution environment.
  • Root Partition
    This is the first partition on the computer.  Specifically this is the partition that is responsible for initially starting the hypervisor.  It is also the only partition that has direct access to memory and devices.
  • Parent Partition
    The parent partition is a partition that is capable of calling the hypervisor and requesting that new partitions be created.  In the first release of Hyper-V the parent and root partitions are one and the same - and there can only be one parent partition.
  • Child Partition
    Child partitions are partitions that have been made by the hypervisor in response to a request from the parent partition.  There are a couple of key differences between a child partition and a parent / root partition.  Child partitions are unable to create new partitions.  Child partitions do not have direct access to devices (any attempt to interact with hardware directly is routed to the parent partition).  Child partitions do not have direct access to memory (when a child partition tries to access memory the hypervisor / virtualization stack re-map the request to different memory locations).
  • Virtual Machine
    A virtual machine is a super-set of a child partition.  A virtual machine is a child partition combined with virtualization stack components that provide functionality such as access to emulated devices, and features like being able to save state a virtual machine.  As a virtual machine is essentially a specialized partition, I (and many members on the team) tend to use the terms "partition" and "virtual machine" interchangeably.  But, while a virtual machine will always have a partition associated with it - a partition may not always be a virtual machine.
  • Guest Operating System
    This is the operating system / runtime environment that is present inside a partition.  Historically with Virtual Server / Virtual PC we would talk about a "host operating system" and a "guest operating system" where the host ran on the physical hardware and the guest ran on the host.  With Hyper-V all operating systems on the physical computer are running on top of the hypervisor so the correct equivalent terms are actually "parent guest operating system" and "child guest operating system".  Having said that, most people (apart from architectural die hards) find these terms confusing and instead use "physical operating system" and "guest operating system" to refer to parent and child guest operating systems respectively.
  • Emulated Device
    Emulated devices are the hardware that is presented inside of the virtual machine.  If you have used Virtual Server / Virtual PC you will be quite familiar with this hardware.  It includes things like a Intel 440bx motherboard and an Intel 21140 network adapter.  These devices are handled through emulation that runs in the parent partition.  The advantage of emulated devices is that most operating systems have in-box drivers for them and are able to install and boot using them.  The disadvantage of emulated devices is that because they were not designed with virtualization in mind they do not perform well.
  • Synthetic Device
    Synthetic devices are the new high performance devices that are available with Hyper-V.  Here, rather than emulating an existing hardware device we expose a new hardware device that has been designed for optimal performance in a virtualized environment (I will not go into a performance discussion of synthetic versus emulated devices here - as that is quite a lengthy discussion and can wait for another day).  Generally speaking you will never see reference to a "synthetic" or "emulated" device in our user interface as we have tried to hide this from the user as much as possible. 

    Most of our devices (IDE, video, mouse, etc...) support booting in emulated mode, but then switching across to synthetic mode once appropriate drivers are loaded.  There are some exceptions to this though.  On networking you have to choose to use a "Network Adapter" or a "Legacy Network Adapter".  The former is a synthetic device while the latter is an emulated device.  With storage the "SCSI controller" only exists as a synthetic device.  And finally there are a handful of devices where performance is not really a problem (like COM ports) so we only offer emulated devices for them.
  • Integration Services
    Integration services are user mode processes that run in the child guest operating system to provide some level of "integration" between the parent and child environments.  Some examples include: time synchronization, child guest operating system shutdown messaging and backup support.
  • Integration Services Setup Disk
    This is a CD image that contains the installer for both the integration services and the synthetic device driver.  You use it to get these components on your virtual machine so that you can have the fastest / best user experience.
  • Enlightenment
    Now here there is even some contention inside the virtualization team as to the correct usage of this term.  Some people use this term to refer to changes / intelligence in the guest operating system kernel that allow it to perform faster / with less overhead inside a virtual machine.  While others use it to refer to synthetic devices and integration services as well.  Those of us who use the broader definition will often use the terms "device enlightenment" and "kernel enlightenment" to differentiate between the concepts. 

    I personally fall into the first camp and when I say "enlightenment" I mean "kernel enlightenment".  (There is a whole conversation around enlightenment as a concept, but I am leaving that too for another day).
  • Virtual Machine Snapshot
    As discussed here - a virtual machine snapshot is a point in time image of a virtual machine that includes its disk, memory and device state at the time that the snapshot was taken.  It can be used to return a virtual machine to a specific moment in time - at any time.  Virtual machine snapshots can be taken no matter what child guest operating system is being used and no matter what state the child guest operating system is in.
  • VSS Snapshot
    Unfortunately the term "snapshot" is also used in the Windows world in the context of VSS.  VSS snapshots are complete system backups that should be used for protecting your system against unplanned data loss / hardware failure.
  • Physical Processor
    This is simple.  It is the squarish chip that you put in your computer to make it go.  This is sometimes also referred to as a "package" or a "socket".
  • Logical Processor
    This is a single execution pipeline on the physical processor.  In the "good old days" someone could tell you that they had a two processor system - and you new exactly what they had.  Today if someone told you that they had a two processor system you do not know how many cores each processor has, or if hyperthreading is present.  A two processor computer with hyperthreading would actually have 4 execution pipelines - or 4 logical processors.  A two processor computer with quad-core processors would in turn have 8 logical processors.
  • Processor topology
    This is the concept of how your logical processors correlate to your physical processors.  For instance, a two processor quad core system and a four processor dual core system both have 8 logical processors - but they have different processor topologies.
  • Virtual Processor
    A virtual processor is a single logical processor that is exposed to a partition by the hypervisor.  Virtual processors can be mapped to any of the available logical processors in the physical computer and are scheduled by the hypervisor to allow you to have more virtual processors than you have logical processors.

That seems like a good set to start with.  If there are some that I have forgotten - I will do another terminology post at some time in the future.

About Ben Armstrong
Ben Armstrong is a Program manager on the core virtualization team at Microsoft. His popular "Virtual PC Guy's Weblog" is at http://blogs.msdn.com/virtual_pc_guy/.

LATEST LINUX STORIES
The two-year anniversary of the Novell-Microsoft alliance that scandalized the open source community passed quietly enough earlier this month. The pair waited a couple of weeks to mark the occasion and then said that in the second year of their arrangement they added upwards of 200 new...
Besides SUSE and its own brand of Linux, rPath is now supporting the Ubuntu and CentOS Linux operating systems as part of its rBuilder and rPath Lifecycle Management Platform. The move broadens the start-up’s options for deploying and managing applications in traditional, virtualized...
SCO filed a notice of appeal with the United States Court of Appeals for the 10th Circuit in Denver Tuesday. Yes, miracle of miracles it finally got a final judgment out of Utah District Court Judge Dale Kimball. That's the hall pass it needs to challenge his devastating summary judgme...
Fedora 10 is out and about. Fedora of course is Red Hat's freebie community OS and testbed for coming attractions in Red Hat Enterprise Linux. The new rev is supposed to have substantial virtualization improvements for remotely installing and managing storage provisioning and includes ...
The Fedora Project, a Red Hat sponsored and community-supported open source collaboration project, has announced the availability of Fedora 10, the latest version of its free open source operating system distribution. Fedora 10 features numerous leading-edge technologies and continues ...
rPath has announced support for the Ubuntu and CentOS Linux operating systems as part of rBuilder and the rPath Lifecycle Management Platform. rBuilder is the category-defining build and release management system for creating virtual appliances and application images. The rPath Lifecyc...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE